fp6-img/aports/device/soc-fairphone-fp6-audio/APKBUILD
Jorijn van der Graaf 66f6e86623
soc-fairphone-fp6-audio 5: install the topology and UCM under the 7.3 card model
Kernel 7.3 names the FP6 sound card "MILOS-Fairphone-Gen6" (upstream's DTS;
7.2 said "Fairphone (Gen. 6)"). The q6apm topology loader requests
qcom/milos/<model>-tplg.bin and alsa-ucm resolves conf.d/milos/<model>.conf,
so the two files are installed under the new name, with the old name as a
symlink to each; the file contents are unchanged. The files either kernel
asks for are present, the one still running between an upgrade and the
reboot included, so the package carries no version bound to the kernel.
A new pkgver rather than a pkgrel, so the kernel can name the floor:
pmbootstrap resolves a versioned dependency on an aport by pkgver alone.

Dev phone with these files: on 7.3 the card MILOS-Fairphone-Gen6 is up with
UCM verb HiFi, its playback PCM runs under pw-play and capture passes;
booted into 7.2 the card Fairphone (Gen. 6) finds its UCM through the link
and capture passes as well.
2026-11-01 02:09:36 +01:00

63 lines
3.3 KiB
Text

# Audio userspace files for the Fairphone 6 that no upstream package ships
# yet: the AudioReach topology (built from Catcrafts/audioreach-topology
# branch fp6), the UCM profile, and pipewire config. Files are
# byte-identical to the ones deployed and tested on the development FP6.
# The tplg/UCM target filenames carry the sound card model string from the
# board DTS: the q6apm topology loader requests qcom/milos/<model>-tplg.bin
# and alsa-ucm resolves conf.d/milos/<model>.conf. Kernel 7.3 names the card
# "MILOS-Fairphone-Gen6", 7.2 named it "Fairphone (Gen. 6)"; both files are
# installed under the new name with the old name as a symlink, so the package
# serves either kernel - the one still running after an upgrade included.
#
# The proprietary AW88261 amp config blob (aw88261_acf.bin) is NOT shipped
# since pkgver 4: fp6-vendor-blobs extracts it from the stock vendor
# partition on-device (manifest fragment below), so nothing proprietary is
# distributed. Provenance/design: fp6 repo journal/blobs/.
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
pkgname=soc-fairphone-fp6-audio
pkgver=5
pkgrel=0
pkgdesc="Fairphone 6 audio topology and UCM profile"
url="https://forgejo.catcrafts.net/Catcrafts/audioreach-topology"
arch="noarch"
license="BSD-3-Clause"
depends="fp6-vendor-blobs"
install="$pkgname.post-install $pkgname.post-upgrade"
options="!check"
source="
fp6-tplg.bin
aw88261-acf.manifest
ucm-milos-fp6.conf
HiFi.conf
50-echo-cancel.conf
"
package() {
install -Dm644 "$srcdir"/fp6-tplg.bin \
"$pkgdir"/usr/lib/firmware/qcom/milos/MILOS-Fairphone-Gen6-tplg.bin
ln -s MILOS-Fairphone-Gen6-tplg.bin \
"$pkgdir/usr/lib/firmware/qcom/milos/Fairphone (Gen. 6)-tplg.bin"
install -Dm644 "$srcdir"/aw88261-acf.manifest \
"$pkgdir"/usr/share/fp6-vendor-blobs/manifest.d/10-aw88261-acf.manifest
install -Dm644 "$srcdir"/ucm-milos-fp6.conf \
"$pkgdir"/usr/share/alsa/ucm2/conf.d/milos/MILOS-Fairphone-Gen6.conf
ln -s MILOS-Fairphone-Gen6.conf \
"$pkgdir/usr/share/alsa/ucm2/conf.d/milos/Fairphone (Gen. 6).conf"
install -Dm644 "$srcdir"/HiFi.conf \
"$pkgdir"/usr/share/alsa/ucm2/Fairphone/fp6/HiFi.conf
# NOTE deliberately NO wireplumber fragment: the old dev-phone's
# 51-fp6-ucm.conf (api.alsa.use-acp=false) kills node creation outright
# on a virgin wireplumber state - ACP reads the UCM verbs natively and
# produces correct ports (verified 2026-08-09 on a from-scratch install).
# AEC pair (ec_sink/ec_source) for VoLTE speakerphone calls
install -Dm644 "$srcdir"/50-echo-cancel.conf \
"$pkgdir"/etc/pipewire/pipewire.conf.d/50-echo-cancel.conf
}
sha512sums="
51071c574b9f5899c78ba9fe1b6f3bbda2195e6d274014a05869ae56ed0ff18e15678bd7d78cd68846900d3c579556328e229842152cffd943186d43344ed33c fp6-tplg.bin
0240a36e6fae76f6df576c5ffc93241f6d59e03db429811d61c746561743ddb4690cb925028546a6c3d69dcc867aead5ddf1c85b12a0065195ea9c6621fa847f aw88261-acf.manifest
3bb268f9fcb8d1c0b42741b67da42b6361bab259e7211d9930919995ebe7dcf67826e6d4f00ff5e4fe5b52067fe90d00212158c3b4879d1bee481e87f0623206 ucm-milos-fp6.conf
2a189c3141fedc43f8eb19f4df1e43487223d524e27da3f948556d224cca1f493f6815ada191953fb79a19d5c5abadb21de7b3ece7b74b0929338c216e21e84a HiFi.conf
ec63fa5363738a43c9eee4b1be70201e2d2076ec817031fda087e61d781e81dc67351be44faf8b056a2939875a139cd909f7c311115bb1150e17ad4493846606 50-echo-cancel.conf
"