On the Linux LTS kernel, PulseAudio works fine. However, on Linux Zen, which I’ve been using, and on Linux 7.0.0, pulseaudio fails to start with:
× pulseaudio.service - Sound Service
Loaded: loaded (/run/current-system/sw/share/systemd/user/pulseaudio.service; enabled; preset: ignored)
Active: failed (Result: exit-code) since Sat 2026-04-25 14:02:36 BST; 14s ago
Invocation: 9fcde13744c64a978bd05db7529c3081
TriggeredBy: × pulseaudio.socket
Process: 1344 ExecStart=/nix/store/ayyvjk40psf3ix62j9q1jw06a87ravhb-pulseaudio-17.0/bin/pulseaudio --daemonize=no --log-target=journal (code=exited, status=1/FAILUR>
Main PID: 1344 (code=exited, status=1/FAILURE)
Mem peak: 2M
CPU: 34ms
Apr 25 14:02:36 nixos systemd[1202]: pulseaudio.service: Scheduled restart job, restart counter is at 5.
Apr 25 14:02:36 nixos systemd[1202]: pulseaudio.service: Start request repeated too quickly.
Apr 25 14:02:36 nixos systemd[1202]: pulseaudio.service: Failed with result 'exit-code'.
Apr 25 14:02:36 nixos systemd[1202]: Failed to start Sound Service.
When I manually run pulseaudio --daemonize=no, I get the error:
E: [pulseaudio] main.c: Daemon startup without any loaded modules, refusing to work.
This has the consequence of pactl not working, and some Proton games not playing audio at all. (Pipewire and Wireplumber still work fine, so until I realized this was dependent on the kernel version, I bypassed it by replacing pactl with wpctl in my WM keybindings.)
If I want to go back to using Linux Zen, how should I fix this? My audio configuration is the default one:
{
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
}
Maybe it’s not NixOS-specific at all.