From eff3c45849a79e7e8d8815e0ee5146689bed701d Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Wed, 24 Jun 2026 18:10:59 -0700 Subject: [PATCH] Fix onboard audio: use amixer instead of broken alsaucm for DSP routing alsaucm set _verb HiFi runs without error but doesn't actually apply mixer controls on this board. Use direct amixer cset commands instead. - RX_MACRO RX0/RX1 MUX = AIF1_PB - RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1 = 1 - RX INT0_1/INT1_1 INTERP = MIX1 - RX INT0_1/INT1_1 MIX1 INP0 = RX0/RX1 --- scripts/start-synth.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/start-synth.sh b/scripts/start-synth.sh index 677f3dc..2024aea 100755 --- a/scripts/start-synth.sh +++ b/scripts/start-synth.sh @@ -64,13 +64,18 @@ fi if [ "$MODE" = "onboard" ] || [ "$MODE" = "i2s" ]; then info "Mode: Onboard audio (PMIC headphone / line out on JMISC)" AUDIO_OPTS=(-audiooutdev 0 -inchannels 0 -outchannels 1) - # Apply ALSA UCM HiFi verb to configure DSP routing (required for audio) - if command -v alsaucm &>/dev/null; then - alsaucm -c hw:0 set _verb HiFi 2>/dev/null && \ - info " UCM HiFi verb applied" || \ - info " UCM HiFi verb failed" + # Configure ALSA mixer for onboard audio (jack detection broken, set manually) + if command -v amixer &>/dev/null; then + amixer -c 0 cset name='RX_MACRO RX0 MUX' AIF1_PB 2>/dev/null + amixer -c 0 cset name='RX_MACRO RX1 MUX' AIF1_PB 2>/dev/null + amixer -c 0 cset name='RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1' 1 2>/dev/null + amixer -c 0 cset name='RX INT0_1 INTERP' 'RX INT0_1 MIX1' 2>/dev/null + amixer -c 0 cset name='RX INT1_1 INTERP' 'RX INT1_1 MIX1' 2>/dev/null + amixer -c 0 cset name='RX INT0_1 MIX1 INP0' RX0 2>/dev/null + amixer -c 0 cset name='RX INT1_1 MIX1 INP0' RX1 2>/dev/null + info " ALSA mixer configured for onboard audio" else - info " alsaucm not found — skipping UCM config" + info " amixer not found — skipping mixer config" fi fi