AlmaLinux / raspberry-pi

AlmaLinux Raspberry Pi
122 stars 17 forks source link

Workaround for Raspberry Pi 400 Wi-Fi not working #23

Closed metalefty closed 1 year ago

metalefty commented 1 year ago

Let me leave here a workaround for the record. It is similar to #18 but a little bit different issue.

Wi-Fi doesn't work on Raspberry Pi 400 fresh AlmaLinux 9 image (20221116). Unfortunately, linux-firmware package doesn't contain any firmware for BCM43456 so it fails to load proper firmware.

# dmesg | grep brcmfmac
[   19.848452] brcmfmac: F1 signature read @0x18000000=0x15294345
[   19.859149] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[   19.886424] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.raspberrypi,400.bin failed with error -2
[   19.902527] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.bin failed with error -2
[   19.968835] usbcore: registered new interface driver brcmfmac
[   20.926139] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

Download the following 3 files from here: https://github.com/bsdkurt/brcm-supplemental

Then put them in /lib/firemware/brcm and reboot. Other firmware files are xz compressed but compression is not necessary.

After reboot, Wi-Fi firmware will be loaded successfully and you'll get Wi-Fi working. Try nmcli device wifi list.

[    8.911175] brcmfmac: F1 signature read @0x18000000=0x15294345
[    8.963376] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[    9.065806] usbcore: registered new interface driver brcmfmac
[    9.226089] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[    9.256216] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/9 wl0: May 14 2020 17:26:08 version 7.84.17.1 (r871554) FWID 01-3d9e1d87
[   13.425989] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[   13.986762] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[   17.410402] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
andrewlukoshko commented 1 year ago

I think we can package this and include in our image. Is it also necessary for AlmaLinux 8?

metalefty commented 1 year ago

I haven't checked AlmaLinux 8 but maybe yes. I'll have a look tomorrow.

metalefty commented 1 year ago

@andrewlukoshko It was the same on AlmaLinux 8. The same workaround worked with 8. I'll help with anything making the package.

Ubuntu packages such files as linux-firmware-raspi2. https://packages.ubuntu.com/jammy/arm64/linux-firmware-raspi/filelist

openSUSE packages such files as bcm43xx-firmware: https://software.opensuse.org/package/bcm43xx-firmware

metalefty commented 1 year ago

I had a talk with Andrew, we'll create a new package named linux-firmware-raspberrypi for this.

metalefty commented 1 year ago

Addressed in #27.

metalefty commented 1 year ago

Now the issue is solved at 20230615 image. https://repo.almalinux.org/development/almalinux/9/raspberrypi/