September 22, 20242 yr For Armbian-24.11.0 RPi ubuntu noble based builds wlan interface is missing Issue is present in Rpi3 B plus, RPi4 for current (kernel 6.6.x) and edge (kernel 6.10.x) armbian builds OS info ================ pi@rpi4b:~$ cat /etc/os-release PRETTY_NAME="Armbian-unofficial 24.11.0-trunk noble" NAME="Ubuntu" VERSION_ID="24.04" VERSION="24.04 LTS (Noble Numbat)" VERSION_CODENAME=noble ID=ubuntu ID_LIKE=debian HOME_URL="https://duckduckgo.com/" SUPPORT_URL="https://community.armbian.com/" BUG_REPORT_URL="https://armbian.atlassian.net/" PRIVACY_POLICY_URL="https://duckduckgo.com/" UBUNTU_CODENAME=noble LOGO="armbian-logo" ARMBIAN_PRETTY_NAME="Armbian-unofficial 24.11.0-trunk noble" pi@rpi4b:~$ uname -a Linux rpi4b 6.10.10-edge-bcm2711 #1 SMP PREEMPT Fri Sep 13 15:35:16 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux ================ wlan interface is missing (at all): =============== pi@rpi4b:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether d8:3a:dd:8e:79:9a brd ff:ff:ff:ff:ff:ff inet 192.168.1.139/24 metric 100 brd 192.168.1.255 scope global dynamic end0 valid_lft 25034sec preferred_lft 25034sec inet6 fe80::da3a:ddff:fe8e:799a/64 scope link valid_lft forever preferred_lft forever =============== The reason is incorrect firmware files format inside /lib/firmware. Firmware files are zstd packed (has *.zst extensons). Broadcom driver is unable to load such files =================== pi@rpi4b:~$ dmesg|grep -i brcmfmac [ 4.387851] brcmfmac: F1 signature read @0x18000000=0x15264345 [ 4.395645] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6 [ 4.403229] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin failed with error -2 [ 4.403347] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.bin failed with error -2 [ 5.407124] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50 =================== Files from /lib/firmware: ============================ ls -l /lib/firmware/brcm | egrep "raspberrypi,4-model-b" lrwxrwxrwx 1 root root 17 Sep 21 22:27 BCM4345C0.raspberrypi,4-model-b.hcd.zst -> BCM4345C0.hcd.zst lrwxrwxrwx 1 root root 35 Sep 21 22:27 brcmfmac43455-sdio.raspberrypi,4-model-b.bin.zst -> ../cypress/cyfmac43455-sdio.bin.zst lrwxrwxrwx 1 root root 40 Sep 21 22:27 brcmfmac43455-sdio.raspberrypi,4-model-b.clm_blob.zst -> ../cypress/cyfmac43455-sdio.clm_blob.zst lrwxrwxrwx 1 root root 26 Sep 21 22:27 brcmfmac43455-sdio.raspberrypi,4-model-b.txt.zst -> brcmfmac43455-sdio.txt.zst ls -l /lib/firmware/cypress | egrep "cyfmac43455*" lrwxrwxrwx 1 root root 38 Sep 21 22:27 cyfmac43455-sdio.bin.zst -> /etc/alternatives/cyfmac43455-sdio.bin -rw-r--r-- 1 root root 1261 Apr 11 00:46 cyfmac43455-sdio.clm_blob.zst -rw-r--r-- 1 root root 384405 Apr 11 00:46 cyfmac43455-sdio-minimal.bin.zst -rw-r--r-- 1 root root 453440 Apr 11 00:46 cyfmac43455-sdio-standard.bin.zst ls -l /etc/alternatives/cyfmac43455-sdio.bin lrwxrwxrwx 1 root root 55 Apr 11 00:46 /etc/alternatives/cyfmac43455-sdio.bin -> /lib/firmware/cypress/cyfmac43455-sdio-standard.bin.zst ============================ To fix this issue following steps have to be done: 1) install zstd package 2) unpack *.zst files inside /lib/firmware using unzstd 3) recreate all symlinks inside /lib/firmware from symlink_src(*.zst) => to symlink_dst(*.zst) to (no *.zst) 4) recreate /etc/alternatives/cyfmac43455-sdio.bin symlink /etc/alternatives/cyfmac43455-sdio.bin -> -> /lib/firmware/cypress/cyfmac43455-sdio-standard.bin.zst to /etc/alternatives/cyfmac43455-sdio.bin -> -> /lib/firmware/cypress/cyfmac43455-sdio-standard.bin The recipe is proven to be working - wlan interface is back. Tested for Rpi3 B plus, RPi4 current (kernel 6.6.x) and edge (kernel 6.10.x) armbian builds Edited September 22, 20242 yr by Dave
September 23, 20242 yr Author Probably the core reason is following Kernel options defining firmware files compression: CONFIG_FW_LOADER_COMPRESS_ZSTD CONFIG_FW_LOADER_COMPRESS Check https://github.com/armbian/build/blob/main/config/kernel/linux-bcm2711-current.config https://github.com/armbian/build/blob/main/config/kernel/linux-bcm2711-edge.config So there have to be one of the following cases: case 1 (compressed): kernel firmware compression options set CONFIG_FW_LOADER_COMPRESS_ZSTD CONFIG_FW_LOADER_COMPRESS firmware files are compressed (*.zst) case 2 (not compressed): kernel firmware compression options CONFIG_FW_LOADER_COMPRESS_ZSTD CONFIG_FW_LOADER_COMPRESS not set firmware files are not compressed (no *.zst files) By the way "bad" *.zst firmware files come from the linux-firmware-raspi ubuntu package: https://launchpad.net/ubuntu/+source/linux-firmware-raspi https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/linux-firmware-raspi/12-0ubuntu1/linux-firmware-raspi_12.orig-nonfree.tar.gz Check https://github.com/armbian/build/blob/main/config/sources/families/bcm2711.conf pre_install_distribution_specific__add_rpi_packages() function Edited September 23, 20242 yr by Dave
November 16, 20241 yr decompress `/usr/lib/firmware/cypress/cyfmac43455-sdio-standard.bin.zst` to `/usr/lib/firmware/cypress/` , then run `update-alternatives --install /lib/firmware/cypress/cyfmac43455-sdio.bin cyfmac43455-sdio.bin /lib/firmware/cypress/cyfmac43455-sdio-standard.bin 60` now `cyfmac43455-sdio.bin` is updated.
November 18, 20241 yr after install armbian-firmware ,this issue solved . the .zst files were introduced by package linux-firmware-raspi Edited November 18, 20241 yr by may
January 10, 20251 yr Hi 'may', i followed your instructions on RPi5 everything seemed to go ok but still no option for built in wifi adapter. You say in your next post to install Armbian firmware i am not sure how to do this, perhaps that is why it is not working! could you please explain?
January 12, 20251 yr Solution https://github.com/armbian/build/pull/7694 patrick@rpi4b:~$ dmesg | grep brcmfmac [ 3.443168] brcmfmac: F1 signature read @0x18000000=0x15264345 [ 3.444363] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6 [ 3.444650] usbcore: registered new interface driver brcmfmac [ 3.673499] brcmfmac: brcmf_c_process_txcap_blob: no txcap_blob available (err=-2) [ 3.673793] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234 (4ca95bb CY) FWID 01-996384e2 [ 8.815477] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save disabled
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.