audio: select the pipewire backend explicitly and ban the pulse one
Full-system audit findings: without an explicit provider selection the image installed real PulseAudio (Plasma Mobile hard-path), which claims the card and ships a wireplumber fragment disabling hardware.audio - zero sinks forever. Mirror the dev phone's world: pipewire backend meta + pipewire-pulse + echo-cancel in extra_packages, pulse meta banned via apk conflict in fp6-device-tweaks. The two hand-made /etc audio fragments (wireplumber no-ACP rule, AEC pair for VoLTE speakerphone) move into soc-fairphone-fp6-audio. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
ff69f4d913
commit
30f2778fc4
5 changed files with 58 additions and 3 deletions
|
|
@ -11,12 +11,16 @@
|
||||||
# libssc crash on unconfigured SSC
|
# libssc crash on unconfigured SSC
|
||||||
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
||||||
pkgname=fp6-device-tweaks
|
pkgname=fp6-device-tweaks
|
||||||
pkgver=2
|
pkgver=3
|
||||||
pkgrel=0
|
pkgrel=0
|
||||||
pkgdesc="Fairphone 6 device-critical system configuration"
|
pkgdesc="Fairphone 6 device-critical system configuration"
|
||||||
url="https://forgejo.catcrafts.net/Catcrafts/fp6-img"
|
url="https://forgejo.catcrafts.net/Catcrafts/fp6-img"
|
||||||
arch="noarch"
|
arch="noarch"
|
||||||
license="MIT"
|
license="MIT"
|
||||||
|
# apk-native ban: with this meta installed, the resolver routes Plasma
|
||||||
|
# Mobile's audio through real PulseAudio, which claims the card and runs
|
||||||
|
# wireplumber in a video-only profile - no sinks, ever
|
||||||
|
depends="!postmarketos-base-ui-audio-backend-pulseaudio"
|
||||||
options="!check"
|
options="!check"
|
||||||
source="
|
source="
|
||||||
inv-icm42600.conf
|
inv-icm42600.conf
|
||||||
|
|
|
||||||
30
aports/device/soc-fairphone-fp6-audio/50-echo-cancel.conf
Normal file
30
aports/device/soc-fairphone-fp6-audio/50-echo-cancel.conf
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
# Acoustic echo cancellation for VoLTE speakerphone calls (journal/ims.md s43).
|
||||||
|
# Creates a virtual pair: ec_sink (play here; forwarded to the speakers and
|
||||||
|
# used as the AEC reference) and ec_source (mic with the speaker signal
|
||||||
|
# subtracted, WebRTC AEC). capture/playback are pinned to the hardware nodes
|
||||||
|
# so making ec_* the defaults cannot loop the module into itself.
|
||||||
|
context.modules = [
|
||||||
|
{ name = libpipewire-module-echo-cancel
|
||||||
|
args = {
|
||||||
|
library.name = aec/libspa-aec-webrtc
|
||||||
|
source.props = {
|
||||||
|
node.name = "ec_source"
|
||||||
|
node.description = "Echo-cancelled microphone"
|
||||||
|
}
|
||||||
|
sink.props = {
|
||||||
|
node.name = "ec_sink"
|
||||||
|
node.description = "Echo-cancelled speakers"
|
||||||
|
}
|
||||||
|
capture.props = {
|
||||||
|
node.name = "ec_capture"
|
||||||
|
target.object = "alsa_input.platform-sound.capture.1.0"
|
||||||
|
node.passive = true
|
||||||
|
}
|
||||||
|
playback.props = {
|
||||||
|
node.name = "ec_playback"
|
||||||
|
target.object = "alsa_output.platform-sound.playback.0.0"
|
||||||
|
node.passive = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
11
aports/device/soc-fairphone-fp6-audio/51-fp6-ucm.conf
Normal file
11
aports/device/soc-fairphone-fp6-audio/51-fp6-ucm.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
monitor.alsa.rules = [
|
||||||
|
{
|
||||||
|
matches = [ { device.name = "alsa_card.platform-sound" } ]
|
||||||
|
actions = {
|
||||||
|
update-props = {
|
||||||
|
api.alsa.use-acp = false
|
||||||
|
api.alsa.soft-mixer = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
# The tplg/UCM target filenames contain spaces, hence the safe source names.
|
# The tplg/UCM target filenames contain spaces, hence the safe source names.
|
||||||
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
||||||
pkgname=soc-fairphone-fp6-audio
|
pkgname=soc-fairphone-fp6-audio
|
||||||
pkgver=1
|
pkgver=2
|
||||||
pkgrel=0
|
pkgrel=0
|
||||||
pkgdesc="Fairphone 6 audio topology, amp firmware and UCM profile"
|
pkgdesc="Fairphone 6 audio topology, amp firmware and UCM profile"
|
||||||
url="https://forgejo.catcrafts.net/Catcrafts/audioreach-topology"
|
url="https://forgejo.catcrafts.net/Catcrafts/audioreach-topology"
|
||||||
|
|
@ -17,6 +17,8 @@ source="
|
||||||
aw88261_acf.bin
|
aw88261_acf.bin
|
||||||
ucm-milos-fp6.conf
|
ucm-milos-fp6.conf
|
||||||
HiFi.conf
|
HiFi.conf
|
||||||
|
51-fp6-ucm.conf
|
||||||
|
50-echo-cancel.conf
|
||||||
"
|
"
|
||||||
|
|
||||||
package() {
|
package() {
|
||||||
|
|
@ -28,6 +30,12 @@ package() {
|
||||||
"$pkgdir/usr/share/alsa/ucm2/conf.d/milos/Fairphone (Gen. 6).conf"
|
"$pkgdir/usr/share/alsa/ucm2/conf.d/milos/Fairphone (Gen. 6).conf"
|
||||||
install -Dm644 "$srcdir"/HiFi.conf \
|
install -Dm644 "$srcdir"/HiFi.conf \
|
||||||
"$pkgdir"/usr/share/alsa/ucm2/Fairphone/fp6/HiFi.conf
|
"$pkgdir"/usr/share/alsa/ucm2/Fairphone/fp6/HiFi.conf
|
||||||
|
# wireplumber: no ACP/soft-mixer for the UCM-driven card
|
||||||
|
install -Dm644 "$srcdir"/51-fp6-ucm.conf \
|
||||||
|
"$pkgdir"/etc/wireplumber/wireplumber.conf.d/51-fp6-ucm.conf
|
||||||
|
# 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="
|
sha512sums="
|
||||||
|
|
@ -35,4 +43,6 @@ sha512sums="
|
||||||
a84b0595ae71b0bb594034a9f5fd77b984c9086cd917f32524c4b5172bc72a426e5d188d18dbccdb587f66d60fa15cad441fffcd48a3a1ce66335199b61e0350 aw88261_acf.bin
|
a84b0595ae71b0bb594034a9f5fd77b984c9086cd917f32524c4b5172bc72a426e5d188d18dbccdb587f66d60fa15cad441fffcd48a3a1ce66335199b61e0350 aw88261_acf.bin
|
||||||
3bb268f9fcb8d1c0b42741b67da42b6361bab259e7211d9930919995ebe7dcf67826e6d4f00ff5e4fe5b52067fe90d00212158c3b4879d1bee481e87f0623206 ucm-milos-fp6.conf
|
3bb268f9fcb8d1c0b42741b67da42b6361bab259e7211d9930919995ebe7dcf67826e6d4f00ff5e4fe5b52067fe90d00212158c3b4879d1bee481e87f0623206 ucm-milos-fp6.conf
|
||||||
2a189c3141fedc43f8eb19f4df1e43487223d524e27da3f948556d224cca1f493f6815ada191953fb79a19d5c5abadb21de7b3ece7b74b0929338c216e21e84a HiFi.conf
|
2a189c3141fedc43f8eb19f4df1e43487223d524e27da3f948556d224cca1f493f6815ada191953fb79a19d5c5abadb21de7b3ece7b74b0929338c216e21e84a HiFi.conf
|
||||||
|
28a301e7eed738408660c1a303771a6cd1bc2bdd493bac95602f17c9b2cb56a0b9c0001b8002a99b0b1bd3dc1d2ee3f6696a8b629b86818d64605c643d2eec29 51-fp6-ucm.conf
|
||||||
|
ec63fa5363738a43c9eee4b1be70201e2d2076ec817031fda087e61d781e81dc67351be44faf8b056a2939875a139cd909f7c311115bb1150e17ad4493846606 50-echo-cancel.conf
|
||||||
"
|
"
|
||||||
|
|
|
||||||
2
build.sh
2
build.sh
|
|
@ -151,7 +151,7 @@ aports = $WORK/pmaports
|
||||||
device = fairphone-fp6
|
device = fairphone-fp6
|
||||||
ui = plasma-mobile
|
ui = plasma-mobile
|
||||||
systemd = always
|
systemd = always
|
||||||
extra_packages = soc-fairphone-fp6-audio,callaudioshim,imsd,fp6-device-tweaks
|
extra_packages = soc-fairphone-fp6-audio,callaudioshim,imsd,fp6-device-tweaks,postmarketos-base-ui-audio-backend-pipewire,pipewire-pulse,pipewire-echo-cancel
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
pmbootstrap checksum linux-postmarketos-qcom-milos
|
pmbootstrap checksum linux-postmarketos-qcom-milos
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue