Which Linux distro are you using?
Fedora 42 Workstation latest up-to-date w/ GNOME
Which kernel are you using?
6.16.8-200.fc42
Which BIOS version are you using?
LFK30.03.04
Which Framework Laptop 13 model are you using?
AMD Ryzen AI 340
Just got my new DIY Laptop 13 a few days ago and installed Fedora 42 and almost everything has been great, with one exception: the built-in mic doesn’t work in a usable way. Framework’s own audio-diagnostic.sh script shows there are three input choices:
3) Available audio devices
Output devices (Sinks):
• 57. Family 17h/19h/1ah HD Audio Controller Speaker [vol: 1.00] ← DEFAULT
Input devices (Sources):
• 58. Family 17h/19h/1ah HD Audio Controller Headset Mono Microphone [vol: 0.75] ← DEFAULT
• 59. Family 17h/19h/1ah HD Audio Controller Digital Microphone [vol: 1.00]
• 66. Laptop Webcam Module (2nd Gen) (V4L2) ← DEFAULT
Fedora’s sound settings app shows the same:
The default (first) one – headset mono microphone – does nothing. If I switch to the second one (digital microphone), I still get nothing. If I switch to the third input choice, something bad immediately happens – I suddenly lose output devices.
If I ignore that (and the corresponding fact that I can no longer hear anything), I can record audio with the mic. Then I can do systemctl --user restart wireplumber to get output back and listen to what I recorded, but of course that resets the input device.
Doing something like journalctl -f --user -u wireplumber -u pipewire -u pipewire-pulse before changing the input shows no new logs, but one error/warning is always shown when restarting wireplumber:
Sep 30 22:22:42 fedora wireplumber[7048]: wp-device: SPA handle 'api.alsa.acp.device' could not be loaded; is it installed?
Sep 30 22:22:42 fedora wireplumber[7048]: s-monitors: Failed to create 'api.alsa.acp.device' device
Sep 30 22:22:42 fedora wireplumber[7048]: [1:00:01.342764699] [7048] INFO Camera camera_manager.cpp:327 libcamera v0.4.0
I’d appreciate any help or suggestions. Thanks!
PS: As an aside, there’s a flaw in Framework’s audio-diagnostic.sh from this article. Take a look:
✅ Default Output: Family 17h/19h/1ah HD Audio Controller Speaker (ID: 44)
✅ Default Input: Family 17h/19h/1ah HD Audio Controller Digital Microphone (ID: 42)
Output Device Technical Details:
ℹ️ • Connection: Analog/Built-in
awk: cmd. line:1: /Name:.*Family 17h/19h/1ah HD Audio Controller Speaker/{flag=1} flag && /^$/{flag=0} flag
awk: cmd. line:1: ^ syntax error
Of course, it’s not correctly expecting and escaping the forward-slashes for that awk command, e.g.:
$ diff audio-diagnostic.sh.orig audio-diagnostic.sh
349c349,350
< local sink_info=$(pactl list sinks 2>/dev/null | awk "/Name:.*${DEF_SINK_NAME//./\\.}/{flag=1} flag && /^$/{flag=0} flag")
---
> local def_sink_name=$(sed -e 's@\.@\\.@g' -e 's@/@\\/@g' <<<$DEF_SINK_NAME)
> local sink_info=$(pactl list sinks 2>/dev/null | awk "/Name:.*${def_sink_name}/{flag=1} flag && /^$/{flag=0} flag")




