Build pfSense 2.0.3 without ixgbe driver built-in



  • I'm trying to build pfSense 2.0.3 without the ixgbe driver built-in because I have a 10g nic based on the intel 82599es chipset which is supported in ixgbe 2.5.8 but not in 2.2.0.

    To do so, I installed a FreeBSD-8.1 and followed the tutorial DevelopersBootStrapAndDevIso to get the pfSense building environment.

    In "/home/pfsense/tools/builder_scripts/conf/", I removed the “device ixgbe” references from all the kernel configuration files.

    Yet when I build an iso, the kernel still has the ixgbe driver built-in…

    What did I miss ?

    Best Regards,



  • You have buiild time configuration options to specify the nodevice ixgbe option that will remove it from the kernel.
    You do not have to manual tinker the options.
    Also it depends on which kernel config you removed the device from.

    Without more information its not very help it can be given.



  • Ok, got it to work. Thanks. ;D

    I've replace the "device ixgbe" line with "nodevice ixgbe".

    Took me a while to realise custom configuration include the generic configuration and assume you'll override the default settings if you need it.

    @ermal:

    You have buiild time configuration options to specify the nodevice ixgbe option that will remove it from the kernel.
    You do not have to manual tinker the options.

    That would be marvelous ? how can I do that ?

    @ermal:

    Also it depends on which kernel config you removed the device from.

    Without more information its not very help it can be given.

    I'm building pfsense 2.0 for BSD 8.1 on amd64 plateform.
    What else can I give you ?


  • Netgate Administrator

    Can you not just build this as a kernel module and load it at boot time? I have done that with other NIC drivers and it successfully overrides the in-kernel driver.

    Steve



  • @stephenw10:

    Can you not just build this as a kernel module and load it at boot time? I have done that with other NIC drivers and it successfully overrides the in-kernel driver.

    Steve

    I got```
    kldload: can't load if_ixgbe: File exists

    
    Maybe I missed something ???

  • Netgate Administrator

    You can't load it after boot, by that time it's already running the in-kernel driver.

    You have to load it at boot time by adding:

    if_ixgbe_load="yes"
    

    to /boot/loader.conf.local

    As long as your new module is in /boot/modules or /boot/kernel it should load up. I have never used that driver but I know it works for the msk(4) driver and I've seen reports of it working for updated em(4) drivers.

    Steve



  • Nice ! It works. Thanks.

    At least, I've learn how to build my own pfsense iso and mess with the kernel :)

    What about pfSense upgrades ?

    Shall they leave my driver and loader.conf.local untouched ?

    Best,


  • Netgate Administrator

    @Altar:

    What about pfSense upgrades ?

    Shall they leave my driver and loader.conf.local untouched ?

    loader.conf.local will be copied across an update but the module will not. This is only sensible when you think about it as an update may render the module incompatible and could potentially stop the system booting.

    It would be interesting to find some way around this though as most updates do not change the kernel. You could keep a copy of it in /root/ which is preserved across an update (in Nano at least) for easy copying back to /boot/modules. I haven't tried that.

    Steve