Nonfree firmware in initrd?

Matthew Pounsett matt at
Fri Mar 26 18:36:31 CET 2021

I'm having some issues getting FAI to boot Debian Buster on an old
Dell PowerEdge R210 II with Broadcom NetXTreme II interfaces.  The
interfaces need the bnx2 (nonfree) drivers, which I have in my
nfsroot, but I don't think they're getting included in the initrd.

The necessary driver is present:
-rw-r--r-- 1 root root 103904 Aug 23 2019

When the kernel goes to load the driver, it's failing with an "error
-2".  The only references I can find to this during firmware load are
suggestions that the driver file isn't found.   Once the boot
completely fails and I end up at the initrd's emergency shell, this is
what I can get from dmesg (re-typed by hand due to crappy Java

bnx2: QLogic bnx2 Gigabit Ethernet Driver v2.2.2.6 (January 29, 2014)
bnx2 0000:01:00.0 eth0: Broadcom NetXtreme II BCM5716 1000Base-T(C0)
PCI Express found at mem c0000000, IRQ 16, node addr d4:ae:52:cd:08:19
bnx2 0000:01:00.1 eth1: Broadcom NetXtreme II BCM5716 1000Base-T(C0)
PCI Express found at mem c0000000, IRQ 17, node addr d4:ae:52:cd:08:1a
bnx2 0000:01:00.0: firmware: failed to load bnx2/bnx2-mips-09-6.2.1b.fw (-2)
bnx2 0000:01:00.0: Direct firmware load for
bnx2/bnx2-mips-09-6.2.1b.fw failed with error -2

There's a screencap of the original text here:

Looking in /usr/lib in the emergency shell I do not find
/usr/lib/firmware at all.

I've added the drivers to the dracut config in nfsroot, just in case:
% cat nfsroot/etc/dracut.conf.d/50-bnx2.conf

The following block appears in my /etc/fai/NFSROOT file (indented here
for readability):
   PACKAGES install-norec NONFREE
   firmware-bnx2 firmware-bnx2x firmware-realtek

And I'm invoking fai-make-nfsroot as:
# fai-make-nfsroot -kv -c NONFREE

After running fai-make-nfsroot, it looks to me like the initrd image
isn't being updated.
-rw-r--r-- 1 root root 38329616 Mar  5 17:12

Am I missing a step somewhere?

More information about the linux-fai mailing list