3 Commits

Author SHA1 Message Date
Leon Anavi
aaf976a665 linux-firmware-rpidistro: Update and stabilize
Update to 20240709-2~bpo12+1+rpt3 and add brcmfmac module
parameters for stability.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-01 08:19:47 +03:00
Joshua Watt
8d786f646e linux-firmware-rpidistro: Fix WiFi on Raspberry Pi 5
Switches the Raspberry Pi 5 to use the standard cyfman43455-sdio
firmware by default. The minimal firmware on this device is unable to
connect to a WiFi access point.

This also matches the behavior of Raspberry Pi OS, which defaults to the
standard firmware

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-01 08:19:47 +03:00
Omri Sarig
2597651049 linux-firmware-rpidistro: Fix wireless error message on RPi
Fixes: #1396

Signed-off-by: Omri Sarig <omri.sarig@prevas.dk>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-01 08:19:47 +03:00
3 changed files with 100 additions and 38 deletions

View File

@@ -1,28 +0,0 @@
From b9db43e36ad0942d33cb4db5b394abd722862568 Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei.gherzan@huawei.com>
Date: Fri, 9 Sep 2022 20:28:06 +0200
Subject: [PATCH] Default 43455 firmware to standard variant
The firmware for 43455 is loaded as a symlink: brcmfmac43455-sdio.bin.
This symlink is now broken as the debian package handles the right
target of this symlink through a postinstall. We don't have that logic
here so we default to the standard variant.
Upstream-Status: Inappropriate [issue reported at https://github.com/RPi-Distro/firmware-nonfree/issues/26]
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
---
debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
index 9c39208..b914838 120000
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
@@ -1 +1 @@
-../cypress/cyfmac43455-sdio.bin
\ No newline at end of file
+../cypress/cyfmac43455-sdio-standard.bin
\ No newline at end of file
--
2.25.1

View File

@@ -0,0 +1,79 @@
From 20741d848c32e0fb2e4841cf8bbc9ec3d198bb6b Mon Sep 17 00:00:00 2001
From: Omri Sarig <omri.sarig@prevas.dk>
Date: Thu, 9 Jan 2025 19:00:10 +0100
Subject: [PATCH 2/2] Default all RPi 43455 boards to standard variant
As the patch above explains, the symlink that is being used by the
brcmfmac43455-sdio.* files is one that is created by the Debian system,
which we do not have in our implementation. Therefore, when the system
tries to load these files, an error message is generated.
By changing the symlinks to be to the standard variant, the problem is
solved for the build.
The code is also working without this patch - when the driver is unable
to load the board-specific file (such as
brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin), it reverts to using
the base file (brcmfmac43455-sdio.bin), which is a correct link (as it
is fixed in the patch above). However, the driver is still generating an
error message in this case, which is being solved by linking the
board-specific files to the standard variant as well.
Upstream-Status: Inappropriate [issue reported at https://github.com/RPi-Distro/firmware-nonfree/issues/26]
Signed-off-by: Omri Sarig <omri.sarig@prevas.dk>
---
.../brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin | 2 +-
.../brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin | 2 +-
.../brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin | 2 +-
.../brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin | 2 +-
.../brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
index 9c39208..b914838 120000
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
@@ -1 +1 @@
-../cypress/cyfmac43455-sdio.bin
\ No newline at end of file
+../cypress/cyfmac43455-sdio-standard.bin
\ No newline at end of file
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
index 9c39208..b914838 120000
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
@@ -1 +1 @@
-../cypress/cyfmac43455-sdio.bin
\ No newline at end of file
+../cypress/cyfmac43455-sdio-standard.bin
\ No newline at end of file
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
index 9c39208..b914838 120000
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
@@ -1 +1 @@
-../cypress/cyfmac43455-sdio.bin
\ No newline at end of file
+../cypress/cyfmac43455-sdio-standard.bin
\ No newline at end of file
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
index 9c39208..b914838 120000
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
@@ -1 +1 @@
-../cypress/cyfmac43455-sdio.bin
\ No newline at end of file
+../cypress/cyfmac43455-sdio-standard.bin
\ No newline at end of file
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
index 9c39208..b914838 120000
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
@@ -1 +1 @@
-../cypress/cyfmac43455-sdio.bin
\ No newline at end of file
+../cypress/cyfmac43455-sdio-standard.bin
\ No newline at end of file
--
2.34.1

View File

@@ -7,7 +7,7 @@ SECTION = "kernel"
LICENSE = "GPL-2.0-only & binary-redist-Cypress-rpidistro & Synaptics-rpidistro"
LIC_FILES_CHKSUM = "\
file://debian/copyright;md5=291ee5385b4cf74b10c5fb5a46a7bbc6 \
file://debian/copyright;md5=454e44c688dc909e16223e4aee63568c \
"
# Where these are no common licenses, set NO_GENERIC_LICENSE so that the
# license files will be copied from the fetched source.
@@ -16,10 +16,10 @@ NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/copyright"
LICENSE_FLAGS = "synaptics-killswitch"
SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bookworm;protocol=https \
file://0001-Default-43455-firmware-to-standard-variant.patch \
file://0002-Default-all-RPi-43455-boards-to-standard-variant.patch \
"
SRCREV = "4b356e134e8333d073bd3802d767a825adec3807"
PV = "20230625-2+rpt3"
SRCREV = "c9d3ae6584ab79d19a4f94ccf701e888f9f87a53"
PV = "20240709-2~bpo12+1+rpt3"
S = "${WORKDIR}/git"
inherit allarch
@@ -27,6 +27,11 @@ inherit allarch
do_configure[noexec] = "1"
do_compile[noexec] = "1"
# The minimal firmware doesn't work with Raspberry Pi 5, so default to the
# standard firmware
CYFMAC43455_SDIO_FIRMWARE ??= "minimal"
CYFMAC43455_SDIO_FIRMWARE:raspberrypi5 ??= "standard"
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/brcm ${D}${nonarch_base_libdir}/firmware/cypress
@@ -43,8 +48,12 @@ do_install() {
done
cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/cypress/* ${D}${nonarch_base_libdir}/firmware/cypress/
ln -s cyfmac43455-sdio-${CYFMAC43455_SDIO_FIRMWARE}.bin ${D}${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.bin
rm ${D}${nonarch_base_libdir}/firmware/cypress/README.txt
install -d ${D}${sysconfdir}/modprobe.d
install -m 0644 debian/rpi-brcmfmac.conf ${D}${sysconfdir}/modprobe.d/
}
PACKAGES = "\
@@ -55,6 +64,7 @@ PACKAGES = "\
${PN}-bcm43455 \
${PN}-bcm43456 \
${PN}-license \
${PN}-module-conf \
"
LICENSE:${PN}-bcm43430 = "binary-redist-Cypress-rpidistro"
@@ -85,13 +95,14 @@ FILES:${PN}-bcm43455 = " \
"
FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*"
FILES:${PN}-license = "${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro"
FILES:${PN}-module-conf = "${sysconfdir}/modprobe.d"
RDEPENDS:${PN}-bcm43430 += "${PN}-license"
RDEPENDS:${PN}-bcm43436 += "${PN}-license"
RDEPENDS:${PN}-bcm43436s += "${PN}-license"
RDEPENDS:${PN}-bcm43439 += "${PN}-license"
RDEPENDS:${PN}-bcm43455 += "${PN}-license"
RDEPENDS:${PN}-bcm43456 += "${PN}-license"
RDEPENDS:${PN}-bcm43430 += "${PN}-license ${PN}-module-conf"
RDEPENDS:${PN}-bcm43436 += "${PN}-license ${PN}-module-conf"
RDEPENDS:${PN}-bcm43436s += "${PN}-license ${PN}-module-conf"
RDEPENDS:${PN}-bcm43439 += "${PN}-license ${PN}-module-conf"
RDEPENDS:${PN}-bcm43455 += "${PN}-license ${PN}-module-conf"
RDEPENDS:${PN}-bcm43456 += "${PN}-license ${PN}-module-conf"
RCONFLICTS:${PN}-bcm43430 = "linux-firmware-raspbian-bcm43430"
RCONFLICTS:${PN}-bcm43436 = "linux-firmware-bcm43436"