Developers and pfSense 2.2 building
-
I can't figure out how to build pfSense 2.2, and it looks like no-one else really knows how to either. Are the devs even working on a build guide?? There's absolutely no documentation for the build process for pfSense 2.2. Because of this, I'm stuck using a kernel that has no hardware support for an adapter that SHOULD have support. I edited the driver and added my hardware support, but now I'm just stuck on the process of actually building the kernel module (the driver is the if_run driver). Since run is a kernel module, I can't remove it in any pfSense shell because it's part of the kernel. I'm stuck, and have received no help so far, even with my multiple posts.
-
There's no "toll" for any development things, we don't even offer a product to sell any of it. The source is freely-available under an open source license to anyone who completes the CLA. Build documentation is generally only needed by people building their own products, and we really don't care to put a bunch of effort into helping competitors. devwiki went away because it was so outdated it was useless. Even if it were perfectly documented, the build system is touchy, the chances you'd succeed without knowing enough about things to not need documentation are pretty slim. You really don't want to go through building an entire release because you want a driver update.
You can kldload kernel modules on top of in-kernel drivers, they take precedence. That's the best way to accomplish a driver update.
Better yet, what's the change required to make your card work? It's something that should be added upstream in stock FreeBSD, so we get it in the future, and it's probably something we could put into 2.2.
-
The chipset the my Wifi adapter uses is a Ralink rt3070, so it should be supported by the run driver. I discovered that it wasn't, and then found that it wasn't included in the usbdevs file. I added
product HAWKING HAWNU1 0017 HAWNU1 to usbdevs and
RUN_DEV(HAWKING, HAWNU1), to if_run.c.I then compiled the run driver and tried to kldload it on pfSense. It wasn't working because "kldload: cannot load: file exists", which suggests that it is already running and in the kernel. I built a kernel using FreeBSD 8.3 and a working pfSense developer environment. I also configured my kernel to not run the run driver, using "nodevice run" in the kernel configuration file. After I get home from work, I'm going to work a little more on it, but right now it isn't working. Any ideas?
Also, getting this change committed to 2.2 would be great. Thanks!
-
@cmb:
Build documentation is generally only needed by people building their own products
Well - no.
I've contrbuted to pfSense 2.0.x, 2.1.x and 2.2.x. However, I cannot work on the 2.2.x branch any more as I cannot check my planned enhancements.
One of the cool things about pfSense ws that I could fix issues. Compary that to your typical closed-source router where you are at the mercy of the manucafturer's support and development.
–---
Edit: Kernel patches, of course. I wouldn't need a build environment if I just wanted to tweak the PHP code. -
I then compiled the run driver and tried to kldload it on pfSense. It wasn't working because "kldload: cannot load: file exists", which suggests that it is already running and in the kernel…......Any ideas?
Were you trying to load the kernel at the console? You can't do that if an in kernel driver already exists but you can load it at boot time to override the in kernel driver. However I'm not sure that will work for a usb device which requires editing the usbdevs file as you've done.
Steve