4
submitted 1 month ago* (last edited 1 month ago) by [email protected] to c/[email protected]

I am having audio issues on NixOS. I have tried enabling all firmware. I've also tried both pipewire and pulseaudio. The audio is confirmed working on CachyOS live image.

Here is the error message found in the system log:

`Aug 01 01:43:19 nixos kernel: sof-audio-pci-intel-tgl 0000:00:1f.3: error: sink MIXER1.0g623.1 not found

Aug 01 01:43:19 nixos kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: topology: add_route failed: -22

Aug 01 01:43:19 nixos kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: topology: could not load header: -22

Aug 01 01:43:19 nixos kernel: sof-audio-pci-intel-tgl 0000:00:1f.3: error: tplg component load failed -22

Aug 01 01:43:19 nixos kernel: sof-audio-pci-intel-tgl 0000:00:1f.3: error: failed to load DSP topology -22

Aug 01 01:43:19 nixos kernel: sof-audio-pci-intel-tgl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -22

Aug 01 01:43:19 nixos kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: failed to instantiate card -22

Aug 01 01:43:19 nixos kernel: skl_hda_dsp_generic skl_hda_dsp_generic: probe with driver skl_hda_dsp_generic failed with error -22`

Here is configuration.nix

top 10 comments
sorted by: hot top controversial new old
[-] [email protected] 1 points 1 month ago* (last edited 1 month ago)

I don't know that you want sound.enable = true and pipewire also enabled. Set sound.enable = false;

If that doesn't work I'd try with a standard kernel.

You also have security.rtkit.enable = true; and I wonder if there is some conflict with can kernel.

[-] [email protected] 1 points 1 month ago

I tried the stock kernel. It didn't make a difference. I will try disabling sound.enable.

[-] [email protected] 1 points 1 month ago

Yeah doing sound.enable = false fixed it for a little bit, but it's broken again now.

[-] [email protected] 1 points 1 month ago

Well that is weird what's the error?

[-] [email protected] 1 points 1 month ago

Error is the same as last time. Turns out even the live Nix image can't do audio on this machine. Switched to a Linux distro that actually works. Still would be interesting to find out why this happened.

[-] [email protected] 1 points 1 month ago

Well if you ever get back to nixos,

(1) use fwupd to make sure the firmware is up to date (2) seems like you need a kernel param, something like what is here: https://discourse.nixos.org/t/realtek-audio-sound-card-not-recognized-by-pipewire/36637

[-] [email protected] 1 points 1 month ago

It's clearly not a UEFI problem when it works fine on another Linux distro. Likewise I don't think it's a needed kernel parameter, because I didn't add anything to CachyOS to make it work, though I will double check the current parameters. It's a fairly standard Intel audio device as well, not anything weird or even that new (tigerlake).

I think this is an issue with how NixOS build their kernel and kernel modules. It's not like it's the only problem I have had with NixOS unfortunately.

[-] [email protected] 1 points 1 month ago

NixOS ships a very minimal kernel and relies on you to declare what modules you want to load (or sometimes relies on nixos-generate-hardware to find some of those modules), so even if it is really standard hardware that "just works" on other distros, you still may need to dig out some kernel modules and explicitly load them.

But if CachyOS works for you and makes you comfortable, that is good and you should use it.

However "it worked on other distro X, thus is should work on other distro Y" probably isn't a helpful way of thinking to get things working.

[-] [email protected] 1 points 1 month ago

However "it worked on other distro X, thus is should work on other distro Y" probably isn't a helpful way of thinking to get things working.

I am talking about the kernel here. It tells me that the device is actually supported. If something works on other distros driver wise, that means the one it doesn't work on either has an old kernel or is doing something strange.

NixOS ships a very minimal kernel and relies on you to declare what modules you want to load (or sometimes relies on nixos-generate-hardware to find some of those modules), so even if it is really standard hardware that "just works" on other distros, you still may need to dig out some kernel modules and explicitly load them.

That explains it. Still is an odd choice. The whole point of Linux being modular, and knowing how to load stuff automatically, is that shit like this isn't necessary. I can understand if this was Gentoo and we were talking about manually compiling kernels, but this is a pre compiled generic kernel. The expectation is that it just works.

Do you have a source on where to configure these kernel settings?

[-] [email protected] 1 points 1 month ago

Yes it's ```` boot.kernelParams = [ "snd-intel-dspcfg.dsp_driver=1" ];

this post was submitted on 01 Aug 2024
4 points (100.0% liked)

Nix / NixOS

1641 readers
1 users here now

Main links

Videos

founded 1 year ago
MODERATORS