Broadcom B43 wifi firmware installed, but boot messages say still not found?

I’ve just installed Tumbleweed on a Late 2008 Unibody MacBook (13"), and am seeing the following output on startup (i.e., before the KDE login prompt):


    5.185886] b43-phy0 ERROR: Firmware file "b43/ucode16_mimo.fw" not found
    5.185895] b43-phy0 ERROR: Firmware file "b43-open/ucode16_mimo.fw" not found
    5.185901] b43-phy0 ERROR: Please open a terminal and enter the command "sudo /usr/sbin/install_bcm43xx_firmware" to download the correct firmware for this driver version. For an off-line installation, go to http://en.opensuse.org/HCL/Network_Adapters_(Wireless)/Broadcom_BCM43xx and follow the instructions in the "Installing firmware from the RPM packages" section.

If I run hwinfo (per this guide), I get no output. So then I run the aforementioned install_bcm43xx_firmware command, and everything looks successful – output ends with the following lines:


b43 firmware successfully installed.
b43legacy firmware successfully installed.

Once installation is complete, I can see b43/ucode16_mimo.fw in the /lib/firmware directory (though /lib/firmware/b43-open/ucode16_mimo.fw does not exist). What’s more, hwinfo now shows the adapter:


$ /usr/sbin/hwinfo --wlan --short
network:                                                        
  wlan0                Apple AirPort Extreme

and dmesg | grep firmware shows the following:


$ dmesg | grep firmware
    5.251187] b43 ssb0:0: Direct firmware load for b43/ucode16_mimo.fw failed with error -2
    5.251210] b43 ssb0:0: Direct firmware load for b43/ucode16_mimo.fw failed with error -2
    5.256280] b43 ssb0:0: Direct firmware load for b43-open/ucode16_mimo.fw failed with error -2
    5.256304] b43 ssb0:0: Direct firmware load for b43-open/ucode16_mimo.fw failed with error -2
    5.256323] b43-phy0 ERROR: Please open a terminal and enter the command "sudo /usr/sbin/install_bcm43xx_firmware" to download the correct firmware for this driver version. For an off-line installation, go to http://en.opensuse.org/HCL/Network_Adapters_(Wireless)/Broadcom_BCM43xx and follow the instructions in the "Installing firmwar from RPM packages" section.
 4545.478826] b43-phy0: Loading firmware version 784.2 (2012-08-15 21:35:19)
 4546.242757] b43-phy0: Loading firmware version 784.2 (2012-08-15 21:35:19)

But then if I restart, it’s like none of it ever happened – I keep getting the same ‘firmeware not found’ messages on boot, and hwinfo shows no output until I run install_bcm43xx_firmware again.

What’s going on, and how can I resolve these boot messages? (Thanks in advance.)

Run “sudo mkinitrd”, that should copy the firmware files to the initrd.

There was a similar thread (and a bug report) recently, the problem seems to be that b43 is in the initrd and will therefore be loaded before the root partition is mounted. The firmware files therefore need to be part of the initrd too.
But the initrd likely hasn’t been recreated yet since you installed the firmware files. This is normally only done by certain updates like the kernel.
That install_bcm43xx_firmware script obviously doesn’t do that either (probably it was not necessary in the past).

Yep, that did it! Thanks, @wolfi323. I’ve added a reference to this issue to the openSUSE wiki (SDB: Installation on a Mac).

(Is there a way to mark this thread SOLVED or closed? Sorry, I’m new to this.)

No specific action needed here, but if you desire to do so you can reflect this in the title of your reply.