-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue with ALSA when enabled via PipeWire #330606
Comments
This issue has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/issue-after-sound-option-was-removed-in-unstable/49394/9 |
Seems to me the logical thing to do would be to add an option for pipewire |
I think this type of thing is prone to cause a lot of confusion by having the same option aliased in different places. +1 on the overall issue though. Even the old sound.enable was insufficiently documented and a lot of conflicting info around it existed, such as needing to set it to false to make pipewire/pulseaudio work. EDIT: On a slightly different note, I was under the impression that PipeWire had a sound state saving mechanism that clashed with ALSA's. Is that not the case? |
TL;DR: PipeWire does handle persistence on its own without ALSA, but it is probably broken for many cards (see link below); enabling ALSA persistence is not the solution.
One can consult There is this problem where many (especially USB) devices have mixer controls with names PipeWire doesn't recognize. With cards that don't suffer from this, when you set the volume in PipeWire, you can observe this:
E.g. this is the case for my builtin Intel HDA audio, but not for my USB DAC, which simply has one control named "PCM". So I think this, & potentially other issues similar to it (if any), are the crux of the problem, as exemplified by PipeWire handling persistence on its own for my Intel HDA card just fine & not for my USB DAC. So yes, PipeWire does have persistence, just…make sure it's actually working with your hardware! EDIT: simpler test for whether your card may not be using PipeWire volume persistence:
This tests for the existence of |
Recently I updated my flake configuration inputs and lost any sound devices with pipewire, probably it's the same problem. BTW option Update: found an issue #330685, kernel update solved no sound devices |
I'm haven't tried PipeWire yet, still using ALSA and PulseAudio, however after
EDIT: Well, I've switched over to PipeWire and so far so good. Audio levels persist after reboot. |
Here's a thread where this problem was originally posted:
https://discourse.nixos.org/t/issue-after-sound-option-was-removed-in-unstable/49394
When enabling PipeWire, we can also enable ALSA support using the option
services.pipewire.alsa.enable
. However, this setting does not include sound card state persistence, potentially leading to various hardware issues.To fix this problem, the option
hardware.alsa.enablePersistence = true;
needs to be included in the configuration.The current NixOS Wiki lacks information about the potential problems caused by not saving sound card state when using PipeWire, which may cause confusion among users:
https://wiki.nixos.org/wiki/PipeWire
The ALSA article does mention state persistence, but the information is outdated since
sound.enable = true;
is being deprecated.https://wiki.nixos.org/wiki/ALSA
It might be beneficial to update the Wiki documentation, add details in the option descriptions, or include the persistence option as part of
services.pipewire.alsa.enable
to prevent hardware issues and/or point users in the right direction.Add a 👍 reaction to issues you find important.
The text was updated successfully, but these errors were encountered: