-
-
Notifications
You must be signed in to change notification settings - Fork 94
Description
Description
I am experiencing a complete loss of built-in speaker audio on my MacBook Pro 13" M1 (J293) running Fedora 42 Asahi. The hardware works perfectly under macOS, ruling out physical damage.
The issue seems to have two layers:
-
Kernel/Hardware level: The
tas2770amplifier fails to probe (error -5), causingsnd-soc-macaudioinstantiation to fail. -
ALSA UCM level: Attempting to manually trigger the UCM state results in a
${CardId}undefined error, and the UCM path seems broken or missing variables.
Environment
-
Hardware: MacBook Pro (13-inch, M1, 2020) - J293
-
OS: Fedora Linux 42 (Asahi)
-
Kernel:
6.18.10-402.asahi.fc42.aarch64+16k -
PipeWire/WirePlumber Version: 1.4.10
-
External Audio: Occasionally use a USB audio interface (KT_USB_AUDIO), but the issue persists even when completely disconnected during a cold boot.
Steps to Reproduce
-
Perform a deep cold boot (completely shut down, disconnect all USB devices, wait, and power on).
-
Check
dmesgfortas2770andmacaudiostatuses. -
Check
wpctl status. Theaudio_effect.j293-convolverfilter exists, but the physical speaker sink is missing or stuck in "Headphones" mode. -
Run the ALSA UCM command to force the speaker state:
alsaucm -c AppleMCA set _verb HiFi set _enadev Speaker
Expected Behavior
-
macaudioandtas2770should probe successfully on boot. -
Built-in speakers should appear in
wpctl statusas an available sink and output audio properly. -
alsaucmshould execute without variable substitution errors.
Actual Behavior / Logs
1. Kernel Error (sudo dmesg | grep -iE 'macaudio|tas2770'):
Plaintext
[ 2.901220] tas2770 2-0031: ASoC error (-6): at soc_component_write_no_lock() on tas2770.2-0031 for register: [0x00000001]
[ 2.903198] tas2770 2-0031: ASoC error (-5): at snd_soc_component_update_bits() on tas2770.2-0031 for register: [0x0000000f]
[ 2.903199] tas2770 2-0031: ASoC error (-5): at snd_soc_component_probe() on tas2770.2-0031
[ 2.903211] snd-soc-macaudio sound: ASoC: failed to instantiate card -5
[ 2.923070] snd-soc-macaudio sound: probe with driver snd-soc-macaudio failed with error -5
2. ALSA UCM Error:
When running alsaucm -c AppleMCA set _verb HiFi set _enadev Speaker, it fails with:
Plaintext
ALSA lib ucm_subs.c:965:(uc_mgr_get_substituted_value) [error.ucm] variable '${CardId}' is not defined in this context!
ALSA lib main.c:1804:(snd_use_case_mgr_open) [error.ucm] failed to import AppleMCA use case configuration -22
alsaucm: error failed to open sound card AppleMCA: Invalid argument
Troubleshooting Steps Already Taken
I have tried extensive debugging to rule out user error or corrupted packages:
-
Firmware Update: Ran
sudo asahi-fwupdatesuccessfully. No change. -
Cold Booting: Shut down the system, unplugged all Type-C/USB devices, waited, and booted to ensure the DCP/I2C bus wasn't locked by external peripherals. No change.
-
Reinstalling Audio Packages: Executed
sudo dnf reinstall alsa-ucm-asahi asahi-audioand restarted PipeWire services. -
UCM Path Fixing (Workarounds Attempted):
-
Found that
/usr/share/alsa/ucm2/AppleMCAwas missing a direct entry point. -
Manually created symlinks to point
AppleMCAto/usr/share/alsa/ucm2/conf.d/macaudio. -
Specifically linked
MacBook Pro J293.confasAppleMCA.conf. -
To bypass the
${CardId}error, I usedsedto hardcodeDefine.CardId "AppleJ293"into the config, and even tried replacing all instances of${CardId}withAppleJ293across the entiremacaudiodirectory usingfindandsed. -
Despite these aggressive workarounds, ALSA still fails to parse the context and the hardware remains muted.
-
Any guidance on whether this is a known regression in the 6.18 kernel or a missing component in the Fedora 42 alsa-ucm-asahi package for the J293 hardware would be greatly appreciated.