Jump to content

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


Dave

Recommended Posts

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

  • Dave changed the title to Armbian-24.11.0 RPi ubuntu noble based wlan interface is missing (*.zst firmware files)

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