Missing QLogic FastlinQ driver
-
Hello,
I have a new Dell MX740c server that I’m trying to image through FOG. The initial IPXE boot proceeds smoothly and I’m able to get to the FOG boot menu, however attempting to push/pull an image fails in the FOG kernel with a no network device / missing driver error.
The server has QLogic FastlinQ ethernet controllers. PCI ID:
I have tried both the 5.6.18 kernel and default kernel in FOG 1.5.9 to no avail. I’m somewhat at a loss given the appropriate drivers should have been in the kernel since 4.4 or so.
Appreciate any help,
Thanks! -
@ewojcik The focus of FOG is for workstation imaging. With that said we do make one-off kernels for certain circumstances. I can say that most of the 10G stuff has not been enabled.
I do see the qlogic qed network adapter enabled in the latest kernel (later that 5.6.18). Would you run the command again with
lspci -nn -k | more
Is there a kernel driver listed after device 3b:00? If so I need to know the name. -
@ewojcik device 1077:8070 was first added to the linux kernel in version 4.12 and exists today. Current kernels should work. 4.19 and 5.6.
Boot into debug mode and lets see what we can get.
ip a s
what is the output? -
@george1421 Thanks for the quick reply.
The ip command only shows the loopback interface; no other Ethernet adapters/interfaces.
-
@ewojcik I would guess a firmware blob needs to be added to the kernel for this specific NIC. While in the FOS debug console please run
dmesg | less
and check through the whole output to see if you find a hint on firmware needed. Not sure what we are looking for exactly but I guess if you search through the whole output forqla
you’ll find the right place and information. -
@sebastian-roth I think I have a lead:
The driver is looking for and failing to find firmware file qed_init_values_zipped-8.42.2.0.bin
-
@ewojcik Building a one off kernel binary for you including that firmware blob just now. Will upload in a few minutes.
Update:
Download https://fogproject.org/kernels/bzImage-qlogic-fw and put in/var/www/html/fog/service/ipxe/
on your FOG server. Then edit this host’s settings and set Host Kernel tobzImage-qlogic-fw
. That should do the trick. -
@ewojcik When you get to the point of the utility of the one off kernel that Sebastian built. It IS safe to update your global kernel setting to
bzImage-qlogic-fw
because the only difference between the standard bzImage and bzImage-qlogic-fw is that bzImage-qlogic-fw has the firmware drivers needed for your hardware. There is no impact on computers that don’t have this hardware.You will need to either manually register these computers (because the default bzImage doesn’t contain the firmware) or change your default kernel to bzImage-qlogic-fw if you want to out of the box pxe boot, inventory and image these systems.
For testing I would manually register a host, set the kernel to bzImage-qlogic-fw and then pxe boot the target computer to run the hardware compatibility tester. We need to answer the question, does it work to start with.
-
Good points George are bringing up and I need to add that I build the one off kernel from the very latest 5.10.12 kernel version I am working on right now. So it is a bit different to what you have by default installed in FOG 1.5.9. Though my first tests were all fine and I would hope you don’t see issues with that kernel.
-
@sebastian-roth That did it, we’re in business! Thanks for the quick turnaround.
Thinking long-term sustainment, are there user methods for getting additional firmware (or drivers) built in? I found the wiki instructions for building custom kernels but those don’t cover additional firmware blobs.
-
@ewojcik said in Missing QLogic FastlinQ driver:
are there user methods for getting additional firmware (or drivers) built in?
If you want to build your own custom FOS linux kernel you can (it takes a linux computer and a few commands). The default FOG issues FOS Linux kernel has the common firmware and drivers built in. We use the one-off route for special hardware. The developers don’t want to add all firmware to the kernel because it would make the kernel huge. So they keep it small and make the one off kernel s for special cases.
-
@ewojcik said in Missing QLogic FastlinQ driver:
Thinking long-term sustainment, are there user methods for getting additional firmware (or drivers) built in? I found the wiki instructions for building custom kernels but those don’t cover additional firmware blobs.
Sure, good point. Unfortunately the wiki has several articles on kernel buildung and some are very dated. As well you are right, even the latest one does not include information on how to add binary firmware blobs: https://wiki.fogproject.org/wiki/index.php?title=Build_TomElliott_Kernel#Build_TomElliott_Kernel_for_FOG_0.33b_and_newer
I’ll give you the hints here in the forum and will add this to the wiki soon:
- Follow the steps in the wiki article up where it says you should run
make menuconfig
ormake oldconfig
. - Now either edit that file manually, search for
CONFIG_EXTRA_FIRMWARE
, simply add the relative path of the firmware blob you want to that line (separated by spaces) and runmake oldconfig
or runmake menuconfig
, navigate to Device Drivers -> Generic Driver Options -> Firmware loader and edit the second option starting with(bnx2x/...
(a list of files) - Save config and build the kernel
We are also working towards updating all the documentation (wiki) and move it to readthedocs. You are very welcome to help if you like.
- Follow the steps in the wiki article up where it says you should run