Hi all,
I'm trying to get the in built WiFi device working on an RPi 4, but it looks like something is broken in the latest firmware package. When I boot I get an error in dmesg about a missing firmware file:
$this->bbcode_second_pass_code('', '
brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.txt failed with error -2
brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
')
This happens early on in the boot sequence, while still in the initramfs, and sure enough that file is missing:
$this->bbcode_second_pass_code('', '
$ bsdtar tvf /boot/initramfs-linux.img | grep 43455-sdio
-rw-r--r-- 0 0 0 643651 Jan 1 1970 usr/lib/firmware/brcm/brcmfmac43455-sdio.bin
')
It has a .bin file, but not the .txt file.
I tried reloading the driver once the system had booted, and this worked:
$this->bbcode_second_pass_code('', '
$ rmmod brcmfmac
$ modprobe brcmfmac
$ dmesg | grep brcm
brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234 (4ca95bb CY) FWID 01-996384e2
')
At this point I get a wlan0 device appearing and everything seems to work.
While a workaround would be to remove and re-add the module on each boot once the main root filesystem has been mounted, it would seem that a better solution would be to get those .txt files into the initramfs image along with the .bin files, but I'm not sure how to go about this. Are you supposed to list those .txt files in an initramfs config file somewhere, or is it meant to be handled automatically in the same way as how the .bin files get included?
Everything on the system is up to date as of posting this message:
$this->bbcode_second_pass_code('', '
$ pacman -Syu
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
alarm is up to date
aur is up to date
:: Starting full system upgrade...
there is nothing to do
')