Watch
1
0
Fork
You've already forked SouveraineOS
0

docs: audio boot-profile regression and fix

kernel r162 routed capture strictly mono 48k; undeclared UCM Mic
probe failed, no profiles formed at boot, card fell to pro-audio.
CaptureChannels/CaptureRate in both Mic devices restores the probe;
probe mechanics recorded for the next time.
This commit is contained in:
Fimeg 2026-08-16 13:56:51 -04:00
commit 77c44aba3c
2 changed files with 64 additions and 2 deletions

View file

@ -31,6 +31,57 @@ name `souveraine-callaudio`), `pkgs/souveraine-callaudiod`, and
Everything below is the evidence ledger. Headings such as “still open” describe
the date beneath them unless the current block above repeats the defect.
## UCM PROFILE GONE AT BOOT — 2026-08-16, fixed same day
Boot-time music died after kernel `7.1.1.r162.g457a667bd3eb` (installed
2026-08-13, first boot 08-16 00:46): the card came up with only `off` and
`pro-audio`, no UCM profiles, so no HiFi sink existed at boot. In-session
audio (calls, STT mic) kept working — the regression only hit the fresh-boot
state, which is why it surfaced as “music at boot”.
Measured chain, all on-device:
- **Kernel made routed capture strictly mono 48k.** The wcd934x
recorder-state work in r162 (`b30e849be` “program all DMIC interface pads”,
`9610ef9cf` “replay complete blueline recorder state”) rejects stereo
capture hw_params on the routed MultiMedia2 (`CHANNELS: [1 4]` advertised,
but `arecord -c 2` → -EINVAL, `-c 1` → fine).
- **ACP probes with declared UCM values.** The Mic devices declared no
`CaptureChannels`/`CaptureRate`, so ACP assumed stereo at the FE-default
rate → capture probe failed -EINVAL → every profile “not supported” → ACP
fell back to `pro-audio` (priority 1) at boot.
- **Secondary lock, not the cause:** `90-blueline.conf` sets
`session.suspend-timeout-seconds = 0` on `~alsa_output.*`, so the pro-audio
sink never released hw:0,0; later probes died “Device or resource busy”.
The persisted `default-profile` state (wireplumber saves the selected
profile, by design) then re-pinned `pro-audio` each boot.
- **Fix:** declared `CaptureChannels 1` + `CaptureRate 48000` in both Mic
devices (HiFi + VoiceCall). ACP probe now succeeds; all three UCM profiles
form; card activates HiFi at boot. Tone verified audible on glass; mic
capture nonzero through the UCM source. Shipped as
`souveraine-ucm-blueline 0.1.0-2` (commit `9f0f103`, CI run 1696);
rootfs-overlay UCM copies kept identical to the package.
- **Not shipped, known hardening:** scope the never-suspend output rule to
`~alsa_output.platform-sound.*__sink` (the UCM sinks) so a stray pro-audio
fallback can never hold hw:0,0 forever.
Probe mechanics learned (canonical, 2026-08-16):
- `spa-acp-tool -v -v hw:0` is the ACP probe; “Probing profile X” with no
failure lines after it = supported. The trailing “unknown command hw:0” is
a harmless arg-parsing quirk.
- `alsaucm -c hw:0 set _verb HiFi` is the real-card UCM branch; it runs the
verb EnableSequence (and enables devices — TX5 mapping included). `-c G3`
and `-c "Google Pixel 3"` hit the *no-hw* branch (conf.virt.d / legacy
paths) and fail ENOENT even when UCM is healthy — red herrings.
- `alsaucm list profiles` / `get _verbs` fail with ENOENT quirks on this
box; they are not valid probes.
- `cat /proc/asound/card0/pcm*p/sub0/status` shows `owner_pid` — the way to
find who holds a PCM.
- Raw `arecord -D hw:0,1` only works while the verb routes are applied;
`spa-acp-tool` runs DisableSequence on exit and tears them. Re-apply the
verb before raw capture tests.
## PIPEWIRE RESTORED — 2026-07-19 late evening
The PA-native arrangement is retired. Live state, all verified on-device:

View file

@ -18,8 +18,19 @@ stale the same way for the same reason. The packages are now cured
archive, so `pacman -Sl souveraine-aarch64` is the manifest. The surface gap
(a souveraine overlay host for the subconscious views) is still open.
Last updated: 2026-08-15 (the charge lane and the machined handoff; see
below).
Last updated: 2026-08-16 (audio: boot-time UCM profiles restored; see
below and `PAF/audio.md`).
## 2026-08-16 — boot-time audio regression fixed
Kernel r162 (`g457a667bd3eb`, installed 08-13, first boot 08-16) made the
routed MultiMedia2 capture strictly mono 48k; the UCM Mic devices declared
no channels/rate, so ACP's probe failed -EINVAL, no UCM profile formed, and
the card booted into `pro-audio` (no HiFi sink → boot-time music dead).
Declared `CaptureChannels 1` + `CaptureRate 48000` in both Mic devices;
profiles probe clean and HiFi activates at boot again. Shipped as
`souveraine-ucm-blueline 0.1.0-2` (Pixel3Arch commit `9f0f103`); full chain
and probe mechanics in `PAF/audio.md`.
## 2026-08-15 — charge becomes a sensor source; machined is handed over