FreeBSD 12.1 sees a QLogic FastLinQ QL41112 SFP+ card on PCI but attaches no driver
I look after a small pool of FreeBSD boxes and I am adding 10G to one of them. The card went in, the machine boots fine, but the OS refuses to make an interface out of it.
- Server on FreeBSD 12.1-RELEASE-p1, stock GENERIC kernel
- QLogic FastLinQ QL41112 dual-port 10GbE SFP+ adapter
- SFP+ optics in both cages, switch side is configured and waiting
- Nothing custom in /boot/loader.conf beyond the defaults
The card is on the bus, and that is where it stops, identically for both functions:
pci7: <network, ethernet> at device 0.0 (no driver attached)
No interface is created, so there is nothing to configure and no way to read transceiver status at all.
What I have already done:
- reseated the card in a different slot, same message
- swapped the optics between the two cages in case one was dead
- went through ifconfig looking for anything that is not lo0 or the onboard NIC
Since the PCI device is clearly enumerated I assume this is a driver problem rather than an optics problem, but I cannot work out whicch driver serves this card on this release. Which module do I need, and is it something I have to build myself?
Comments 3
That card is served by qlnxe(4), and on that release it is not pulled in automatically, which is exactly why you get the PCI line and nothing after it. Put the module in the loader and reboot:
in /boot/loader.conf. After the reboot, check in this order, it saves a lot of guessing:
kldstatproves the module is really loaded and not just written into a config file,dmesgshould now carry attach messages instead of no driver attached, andpciconf -lconfrims the device is still where you left it. Once the interfaces exist you can go back to worrying about the optics.One caveat: the driver covers a specific set of FastLinQ models, so read the release notes that come with the vendor driver package for your exact board rather than assuming. Someone with a 25GbE QL41000-series card loaded the driver and still had nothing, which is why the sequence above is worth running properly instead of as a formality. For a 10G QL41112 on 12.1 it is the standard fix.
Before anything else, pin down what the machine actually sees. Post the output of
and confirm what is loaded with
kldstat. On a stock GENERIC kernel there is a fair chance the answer is simply that the module for that family is not autoloaded, and a missing interface is exactly wat that looks like. Until a driver attaches, the optics are irrelevant, so stop swapping them.Fair enough.
uname -aconfirms 12.1-RELEASE-p1.pciconf -llists both functions with none as the device name rather than a driver name, so nothing has claimed them.kldstatshows the kernel and the usual handful of modules, nothing that looks QLogic related. So it does look like a plain missing-driver case rather than dead hardware.