Jump to content

Armbian-24.11.0 RPi ubuntu noble based wlan interface is missing (*.zst firmware files)


Recommended Posts

Posted (edited)

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 by Dave
Posted (edited)

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 by Dave
  • Dave changed the title to Armbian-24.11.0 RPi ubuntu noble based wlan interface is missing (*.zst firmware files)
Posted

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.

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines