fp6-vendor-blobs 1-r4: build the ath11k board data from the stock modem partition
The device tree asks ath11k for the Fairphone_Gen_6 board data entry. Upstream linux-firmware's WCN6750 board-2.bin has no Fairphone entry, so the driver silently falls back to the generic board-id 255 data; the FP6 Plus does not associate on it (user report 2026-10-14), the FP6 happens to. The stock modem partition carries the device's own calibration as image/qca6750/bdwlan.elf. New manifest directive ath11k-bdf: copy that ELF and wrap it into a container under /lib/firmware/updates (searched first by the loader) that is upstream's board-2.bin with every entry kept plus one BOARD entry under the requested name. Verified structurally (ELF magic, size, the container magic), no hash pin: calibration data is OEM data and the WLAN firmware checks what it is given. If the base already carries the name the override is not built and a stale one is removed. --refresh re-derives it. The fragment re-probes ath11k as the fallback for a driver that probed before extraction (WPSS restart, the association comes back via NetworkManager). zstd joins the dependencies to read the compressed base. On the dev phone the built container is byte-identical to the one hand-made from the stock image by the reporter (sha256 186202ee...), built in 1.2 s.
This commit is contained in:
parent
2c317d9e2e
commit
04695c128a
3 changed files with 103 additions and 4 deletions
|
|
@ -21,19 +21,20 @@
|
|||
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
||||
pkgname=fp6-vendor-blobs
|
||||
pkgver=1
|
||||
pkgrel=3
|
||||
pkgrel=4
|
||||
pkgdesc="On-device extraction of vendor blobs from the stock Android partitions"
|
||||
url="https://forgejo.catcrafts.net/Catcrafts/fp6-img"
|
||||
arch="noarch"
|
||||
license="MIT"
|
||||
# fallback mapper for when the initramfs didn't map the dynamic partitions
|
||||
depends="make-dynpart-mappings"
|
||||
depends="make-dynpart-mappings zstd"
|
||||
install="$pkgname.post-upgrade"
|
||||
options="!check"
|
||||
source="
|
||||
fp6-vendor-blobs-extract
|
||||
fp6-vendor-blobs.service
|
||||
fp6-vendor-blobs.preset
|
||||
30-ath11k-board-data.manifest
|
||||
"
|
||||
|
||||
package() {
|
||||
|
|
@ -58,11 +59,13 @@ package() {
|
|||
# extracted, no sound card. See journal/blobs/ 2026-08-28.
|
||||
install -Dm644 "$srcdir"/fp6-vendor-blobs.preset \
|
||||
"$pkgdir"/usr/lib/systemd/system-preset/50-fp6-vendor-blobs.preset
|
||||
mkdir -p "$pkgdir"/usr/share/fp6-vendor-blobs/manifest.d
|
||||
install -Dm644 "$srcdir"/30-ath11k-board-data.manifest \
|
||||
"$pkgdir"/usr/share/fp6-vendor-blobs/manifest.d/30-ath11k-board-data.manifest
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
e9618b4a1ccbe0913a608b32a1a9e87337e3da79a3d7ccc7f49292ae9aaa9406d2ea9817d63b3cfff2c4346b80dd2476c10725f4f0f95c859acd17b22ec03a16 fp6-vendor-blobs-extract
|
||||
2aa740a2c4999d7e09c328664fe9c03e8a4ac8ddf1215b2d2b2755b12383dce873b9eafbce4706e87405cf2b0aa2e29ed582f31d9ee085346f911c11269c1f22 fp6-vendor-blobs-extract
|
||||
b4c290095d9f39515378dfef08de720ce49324210342aa13c131dfce1103785e796e6f821f0c659671a4c44b46f466ce0e03f11f216fdcdee2a99db5e7970800 fp6-vendor-blobs.service
|
||||
9e79dd0aed13f11a71282aa24b2a26331e85c105e25ab0c0fed6189b8c300769a5f4308b18b91d9855868d658ad3a57c03e26c9b11bd27fd5e03f9a5decbbd6a fp6-vendor-blobs.preset
|
||||
1265a0f78aa4d9566e4a9f7827c8cead3a1848dc8bbd4288165085e87a824ea0c0940a16e5426f74074fcb29c1fddccf76f6dd3b16efa7ddffc2c437b9531439 30-ath11k-board-data.manifest
|
||||
"
|
||||
|
|
|
|||
Loading…
Reference in a new issue