Intel X553 NICs (on C3758 SoC) not detected by pfSense 2.4/2.4.1
-
The driver exists, was just not added in PFSense.
Working fine in FreeNAS beta, just need to find out how to export the driver…https://bugs.freenas.org/issues/26292
-
Ok, so I finally got it to work but still need to find some better way to do it, limited freebsd knowledge over here.
I installed freebsd 11.1 RELEASE, same as pfsense 2.4.1, which doesn't have the updated driver (STABLE already includes it).
Downloaded the 10Gb freebsd driver from intel website:
https://downloadcenter.intel.com/download/14688/Intel-Network-Adapters-Driver-for-PCIe-10-Gigabit-Network-Connections-Under-FreeBSD-Compiled the driver and saved to an usb stick.
Then installed pfsense 2.4.1, copied the driver to /boot/modules/ but got an error trying to load it
module_register: cannot register pci/ix from if_ix_updated.ko; already loaded from if_ix.ko
Then I ran
kldunload /boot/kernel/if_ix.ko
Followed by the load command again
kldload -v /boot/modules/if_ix_updated.ko
I know this is far from ideal but how can I make this work in boot?
Do I need to compile a new kernel with the driver built in or is there a way to "tell" the kernel to load this module instead?
I guess replacing it in /boot/kernel/ folder is not a good idea?Thanks.
-
I know this is far from ideal but how can I make this work in boot?
Try out to run a script that is unloading and loading this for you after booting.
Do I need to compile a new kernel with the driver built in or is there a way to "tell" the kernel to load this module instead?
This would be not so easy as you could think about.
/boot/modules is the right position here.At least only to be sure, now the NIC is running fine and able to use for you?
A small thread about that and worth the time to read it too -
Turn off VT-d support in the A2SDI BIOS and pfSense will find all the NIC:s
-
Well, that would be interesting but not working here…
Can you be more specific regarding the options to disable? -
Can you be more specific regarding the options to disable?
@Mullet Scandinavia AB said:
Turn off VT-d support in the A2SDI BIOS and pfSense will find all the NIC:s
-
wow, thanks…
But of course I did that already and even reinstalled pfsense.
NICs are not there, the only way I can make it work is with the newer driver... -
This is weird. I had it up an running this morning with VT-d off but now it don't work again!
And there are so few tools in the pfsense image so it's hard to debug no lspci and no network to fetch it either…
Have tried new beta BIOS und updated LAN EEPROM but still not working. Strange that it works sometimes.
-
Guys any news on X553 driver?
It's still not working on 2.4.2_1 and it'a January already.
I've bought 6 pcs SYS-E200-9A with A2SDi-4C-HLN4F boards.
It's perfect all in all even Windows 2016 server works perfectly there, but not pfsense.
Any updates of manually putting FreeBSD drivers in there?
disabling virtualization or VT-d in BIOS does nothing for pfsense and NIC detection. -
The drivers were not in 11.1 release which is what we build on so until they are included in our base we may not get them.
You can build the kernel module yourself as explained by EditioN above. To load it at boot time just create the file /boot/loader.conf.local and then put in that file:
if_ix_load="YES"
Steve
-
Thanks for the answer ,
Will it survive the updates then? I mean how frequent PFsense updates modules in /boot? or it's more like image updates for the whole partition?
So for now we may use that solution, but if will need to put it manually to /boot on every update i'm not sure it's usable as those will be in remote offices with hardly proper IT personnel avail. -
The imported kernel module will be specific to that version. It probably won't work in 11.2 for example. We won't have tested anything against it so there's no guarantees that any pfSense update won't break it.
Really you should wait for support to be included in the release. Certainly before deploying it in any critical application in my opinion.
Steve
-
Managed to get it working somehow.
Anyhow, we have bought those appliances already for all the offices, sadly before checking if it's supported yet! :)
I failed to find a proper way to disable existing module, so i just rename it and load a module manually compiled from Intel sources.
After that don't forget to fix permissions chmod 555 /boot/kernel/if_ix.ko and u'r good to go. (reboot)So yeah, it works just fine after that, but don't survive upgrades as far as i understand pfsense updates kernel also, along with modules apparently.
Instructions:
on 1st boot after install press any key on PFsense logo
boot in Single User mode
press enter for /bin/sh shell#connect your USB stick (Fat32 formatted) with driver
#check what's it's name
ls /dev/da*
#mount usb
mount_msdosfs /dev/da0s1 /media
#unload existing if_ix module - check it's ID if necessary /sbin/kldstat )
/sbin/kldunload -i 2
#mount root as RW
mount -rw /
#rename existing if_ix.ko module
mv /boot/kernel/if_ix.ko /boot/kernel/if_ix.ko.blacklisted
#copy new module from USB
cp /media/if_ix.ko /boot/modules/
#fix permissions
chmod 555 /boot/modules/if_ix.ko
#make loader.conf.local
echo 'if_ix_load="YES"' >> /boot/loader.conf.local
#enjoy
rebootIn case somebody needs it - here's yandex.cloud direct link (compiled for FreeBSD 11.1 release) https://yadi.sk/d/F92wgHSy3RNDS9
-
You sir, have saved my bacon. Your instructions and file has worked perfectly for me.
Cheers.
Managed to get it working somehow.
Anyhow, we have bought those appliances already for all the offices, sadly before checking if it's supported yet! :)
I failed to find a proper way to disable existing module, so i just rename it and load a module manually compiled from Intel sources.
After that don't forget to fix permissions chmod 555 /boot/kernel/if_ix.ko and u'r good to go. (reboot)So yeah, it works just fine after that, but don't survive upgrades as far as i understand pfsense updates kernel also, along with modules apparently.
Instructions:
on 1st boot after install press any key on PFsense logo
boot in Single User mode
press enter for /bin/sh shell#connect your USB stick (Fat32 formatted) with driver
#check what's it's name
ls /dev/da*
#mount usb
mount_msdosfs /dev/da0s1 /media
#unload existing if_ix module - check it's ID if necessary /sbin/kldstat )
/sbin/kldunload -i 2
#mount root as RW
mount -rw /
#rename existing if_ix.ko module
mv /boot/kernel/if_ix.ko /boot/kernel/if_ix.ko.blacklisted
#copy new module from USB
cp /media/if_ix.ko /boot/modules/
#fix permissions
chmod 555 /boot/modules/if_ix.ko
#make loader.conf.local
echo 'if_ix_load="YES"' >> /boot/loader.conf.local
#enjoy
rebootIn case somebody needs it - here's yandex.cloud direct link (compiled for FreeBSD 11.1 release) https://yadi.sk/d/F92wgHSy3RNDS9
-
You sir, have saved my bacon. Your instructions and file has worked perfectly for me.
Cheers.
Glad it worked and happy to help! Guess we'd wait for official support now and upgrade afterwards…
-
Managed to get it working somehow.
Anyhow, we have bought those appliances already for all the offices, sadly before checking if it's supported yet! :)
I failed to find a proper way to disable existing module, so i just rename it and load a module manually compiled from Intel sources.
After that don't forget to fix permissions chmod 555 /boot/kernel/if_ix.ko and u'r good to go. (reboot)So yeah, it works just fine after that, but don't survive upgrades as far as i understand pfsense updates kernel also, along with modules apparently.
Instructions:
on 1st boot after install press any key on PFsense logo
boot in Single User mode
press enter for /bin/sh shell#connect your USB stick (Fat32 formatted) with driver
#check what's it's name
ls /dev/da*
#mount usb
mount_msdosfs /dev/da0s1 /media
#unload existing if_ix module - check it's ID if necessary /sbin/kldstat )
/sbin/kldunload -i 2
#mount root as RW
mount -rw /
#rename existing if_ix.ko module
mv /boot/kernel/if_ix.ko /boot/kernel/if_ix.ko.blacklisted
#copy new module from USB
cp /media/if_ix.ko /boot/modules/
#fix permissions
chmod 555 /boot/modules/if_ix.ko
#make loader.conf.local
echo 'if_ix_load="YES"' >> /boot/loader.conf.local
#enjoy
rebootIn case somebody needs it - here's yandex.cloud direct link (compiled for FreeBSD 11.1 release) https://yadi.sk/d/F92wgHSy3RNDS9
This is very clear thanks !!!
Do we know when this is going to be in the live and stable builds ? Its working for now but don't want to put it into production until its part of the default kernel.
Hopefully its soon before the power supply in the old Dell R300 changes its mind about not being on fire :)
-
The drivers were not in 11.1 release which is what we build on so until they are included in our base we may not get them.
You can build the kernel module yourself as explained by EditioN above. To load it at boot time just create the file /boot/loader.conf.local and then put in that file:
if_ix_load="YES"
Steve
or just i beleve it was ```
if_ix_updated_load=yes -
Hey guys,
The new XG-7100 model includes the Atom C3000.
I guess this is a good sign that the drivers will be built in soon?I must say that I have no issues so far with the driver I compiled but official support would be quite good to have.
-
Managed to get it working somehow.
Anyhow, we have bought those appliances already for all the offices, sadly before checking if it's supported yet! :)
I failed to find a proper way to disable existing module, so i just rename it and load a module manually compiled from Intel sources.
After that don't forget to fix permissions chmod 555 /boot/kernel/if_ix.ko and u'r good to go. (reboot)So yeah, it works just fine after that, but don't survive upgrades as far as i understand pfsense updates kernel also, along with modules apparently.
Instructions:
on 1st boot after install press any key on PFsense logo
boot in Single User mode
press enter for /bin/sh shell#connect your USB stick (Fat32 formatted) with driver
#check what's it's name
ls /dev/da*
#mount usb
mount_msdosfs /dev/da0s1 /media
#unload existing if_ix module - check it's ID if necessary /sbin/kldstat )
/sbin/kldunload -i 2
#mount root as RW
mount -rw /
#rename existing if_ix.ko module
mv /boot/kernel/if_ix.ko /boot/kernel/if_ix.ko.blacklisted
#copy new module from USB
cp /media/if_ix.ko /boot/modules/
#fix permissions
chmod 555 /boot/modules/if_ix.ko
#make loader.conf.local
echo 'if_ix_load="YES"' >> /boot/loader.conf.local
#enjoy
rebootIn case somebody needs it - here's yandex.cloud direct link (compiled for FreeBSD 11.1 release) https://yadi.sk/d/F92wgHSy3RNDS9
Hello Everybody
I would like to chime in and report aswell. I have e SuperMicro SuperServer E200-9A with the new C3558 in it. It also has four X553 NICs which I cannot get running under pfSense. I tried your instructions but they didn't work. Seems like I need to give myself permission somewhere (see attached picture). I set the system up with ZFS but I tried it with UFS and it didn't work aswell. Maybe I'm just missing something?
Can anybody give me a tip here? Any help would be appreciated.
-
You don't need unload ix as it's not running as a module.
It failed to remount / as read-write because it doesn't recognise the file system, you will need to specify it. Though ufs should have worked there. Try:
mount -rw -t zfs /
It would still be better to wait for a pfSense build based on a FreeBSD version that includes the driver though.
Steve