No more audio (pipewire) on steam deck (unstable flakes)

hellooooo!!! sry im very tired at the moment

so um i know i shouldnt have updated this early, but i did, there is no audio at all now on my steam deck lcd :sob: :sob: (this has never happened before™) at the moment i just rolled back and chilling on previous gens. anyway i tried looking my problem up in the issues, nope, nothing there (even in the jovian-nixos repo)

this is all i have, hope this helps:

  security.rtkit.enable = true;
  # ...
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    jack.enable = true;
    pulse.enable = true;
    wireplumber.enable = true;
  };

did something change here? any renames? any incompatibilities? anything? maybe something is deprecated?

~ wpctl status

PipeWire 'pipewire-0' [1.4.9, user@deck, cookie:2815725670]
 └─ Clients:
        33. .xdg-desktop-portal-wrapped         [1.4.9, user@deck, pid:1864]
        34. WirePlumber                         [1.4.9, user@deck, pid:1946]
        40. .xdg-desktop-portal-hyprland-wrapped [1.4.9, user@deck, pid:1952]
        43. WirePlumber [export]                [1.4.9, user@deck, pid:1946]
        48. pipewire                            [1.4.9, user@deck, pid:1985]
        49. waybar                              [1.4.9, user@deck, pid:1848]
        58. wpctl                               [1.4.9, user@deck, pid:2986]

Audio
 ├─ Devices:
 │      44. Radeon High Definition Audio Controller [Rembrandt/Strix] [alsa]
 │
 ├─ Sinks:
 │  *   50. Dummy Output                        [vol: 1.00]
 │
 ├─ Sources:
 │
 ├─ Filters:
 │
 └─ Streams:

Video
 ├─ Devices:
 │
 ├─ Sinks:
 │
 ├─ Sources:
 │
 ├─ Filters:
 │
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_loopback_device.alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Speaker__sink
         1. Audio/Source  alsa_input.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Mic__source

this is all i have: Dummy Output both for speakers/headphones and the microphone locked at 100%

the configured Settings section i believe is from me disabling the internal microphone via wireplumber, but i tried removing that config and nothing did change… so it wasnt my fault this time :innocent: i think. unless its not even about that and im mistaken

~ pw-link -iol

Midi-Bridge:Midi Through Port-0 (capture)
Midi-Bridge:Midi Through Port-0 (playback)
auto_null:monitor_FL
auto_null:monitor_FR
auto_null:playback_FL
auto_null:playback_FR
bluez_midi.server:out
bluez_midi.server:in

oh i just realised its actually all the same. okay, so i compared them to the working session output:

~ pw-link -iol

Midi-Bridge:Midi Through Port-0 (capture)
Midi-Bridge:Midi Through Port-0 (playback)
bluez_midi.server:out
bluez_midi.server:in
alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Headphones__sink:monitor_FL
alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Headphones__sink:monitor_FR
alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Headphones__sink:playback_FL
alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Headphones__sink:playback_FR

yeah

~ pw-top

S   ID  QUANT   RATE    WAIT    BUSY   W/Q   B/Q  ERR FORMAT           NAME
S   30      0      0    ---     ---   ---   ---     0                  Dummy-Driver
S   31      0      0    ---     ---   ---   ---     0                  Freewheel-Driver
S   45      0      0    ---     ---   ---   ---     0                  Midi-Bridge
S   50      0      0    ---     ---   ---   ---     0                  auto_null
S   51      0      0    ---     ---   ---   ---     0                  bluez_midi.server

(i know playback node appears when something is producing sound, it does set the properties correctly and it even links, but to a null device

so yeah… dunno what else i can do really. external dacs work. i know i could just wait a month or two for this to be magically fixed after updating anew, but um

edit: oh also! no, restarting the services doesnt help (they are green) and there is nothing in the logs of the services or the kernel (only unrelated stuff, will add tmrw if i wont forget), just nothing. maybe i dont remember where to look anymore :sob:

eediit: sooo ive tried searching auto_null up and guess wat? nothing. ugh. unfortunately im too stupid to have checked or took notes of the changes made with the update, but i remember seeing a bunch of kernel modules being removed, rtl* something, as well as some firmware related stuff too, i think? dont trust my memory, this is maybe not important. i wish there was a way to see the package changes again afterwards. could i revert or pin a specific package/driver that is responsible for the audio or something (never done this before, i hope its not an overlay)? its most likely pipewire piping again im sure of it

eeedit: instead of auto_null it should be alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Headphones__sink which is not to be confused with alsa_loopback_device.alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Speaker__sink or alsa_input.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__Mic__source which all are on the same kernel module/driver btw

Looks like your soundcard disappeared. Are you sure there’s nothing in dmesg? That sounds like a kernel regression.

Any chance you could share more of your config?

ugh. my baaad. yeah this is everything related to audio/sound, the acp5x chip and anything snd*

[    7.243635] snd_pci_acp5x 0000:04:00.5: enabling device (0000 -> 0002)
[    7.342435] snd_hda_intel 0000:04:00.1: enabling device (0000 -> 0002)
[    7.342573] snd_hda_intel 0000:04:00.1: Handle vga_switcheroo audio client
[    7.383733] snd_hda_intel 0000:04:00.1: bound 0000:04:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[    7.485270] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:08.1/0000:04:00.1/sound/card0/input5
[    7.485381] input: HD-Audio Generic HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:08.1/0000:04:00.1/sound/card0/input6
[    7.485467] input: HD-Audio Generic HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:08.1/0000:04:00.1/sound/card0/input7
[    7.485538] input: HD-Audio Generic HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:08.1/0000:04:00.1/sound/card0/input8
[   18.497589] platform acp5x_mach.0: deferred probe pending: acp5x_mach: Register card (acp5x) failed

aaand thats it. it just “failed” lol. nothing interesting in between, i just sat through every line. why would it be “delayed” though? :face_with_monocle:

comparison with my working session:

[    7.204054] snd_pci_acp5x 0000:04:00.5: enabling device (0000 -> 0002)
[    7.236456] snd_hda_intel 0000:04:00.1: Handle vga_switcheroo audio client
[    7.236456] snd_hda_intel 0000:04:00.1: Handle vga_switcheroo audio client
[    7.368212] snd_hda_intel 0000:04:00.1: bound 0000:04:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[    7.410419] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:08.1/0000:04:00.1/sound/card0/input5
[    7.410550] input: HD-Audio Generic HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:08.1/0000:04:00.1/sound/card0/input6
[    7.410632] input: HD-Audio Generic HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:08.1/0000:04:00.1/sound/card0/input7
[    7.410723] input: HD-Audio Generic HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:08.1/0000:04:00.1/sound/card0/input8
[    7.672608] acp5x_mach acp5x_mach.0: ASoC: CPU DAI acp5x_i2s_playcap.1 not registered
[    7.675072] input: acp5x Headset Jack as /devices/pci0000:00/0000:00:08.1/0000:04:00.5/acp5x_mach.0/sound/card1/input12

but would you look at this, i found these threads

https://bbs.archlinux.org/viewtopic.php?id=310344

https://forums.gentoo.org/viewtopic-p-8850927.html?sid=8c1756b8b272ffc4e025a9729d95d639

and they seem to have the same situation huh. very recent! im gonna read it in a minute

here’s lspci audio stuff

04:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Radeon High Definition Audio Controller [Rembrandt/Strix]
04:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] Audio Coprocessor (rev 50)

and hold on i will compare this on my working session… edit: nvm its the same smiley face

also, why are they talking about iommu in this particular case?

i was and still am always using

  boot.kernelPackages = pkgs.linuxPackages_latest;

WAIT im sorry to ask you a VERY silly question, but how do you comment out lines in boot.extraModprobeConfig again? its as if # dont work anymore?

edit: oh nevermind. its not that. but i still wanna know the answer lol (i had a few blacklisted modules and options). anyway did another full update (with flakes) just now. still deferred. you know what? im gonna reset my uefi settings just in case, if that wont work, then ill try the "iommu=soft" parametre (i do however have "amd_iommu=off" but afaik even valve recommends it), which sounds useless, but hey, ill try it. oh, and i will try the lts kernel, sure why not

edit2: well, IOMMU is disabled by default in uefi, so this wouldnt have made any difference. trying the lts kernel now…

yep. kernel problem. works now. just dont

  boot.kernelPackages = pkgs.linuxPackages_latest;

instead use (rollback to) the default 6.12 LTS (at the moment):

  boot.kernelPackages = pkgs.linuxPackages;

and you’re sorted. will try _latest again in a month or two :wilted_flower:

also it should probably still work with the jovian-nixos kernel/options

i should also probably investigate iommu= kernel parametres and also steam deck’s UEFI IOMMU (i/o memory management unit) setting, as it is disabled by default by valve. i mean, it isnt just all about the virtualisation, right?

1 Like

FWIW, you’re not really gaining much from running _latest. The current default (6.17) has that cool wine ntsync support that’s all the rage, there’s no real other reason to run a cutting edge kernel on a steamdeck, it’s not like you’re waiting for new hardware support.

1 Like

no, i use my steam deck as a desktop. im weird, so i NEED the latest fixes and drivers for the periphery connected. its not just a mobile-portable energy-saving gaming thingie anymore, i maxed it out to be a stationary computer, you know, all the cpu governing/scheduling/performance whatever smiley face