PulseAudio: Difference between revisions

From NixOS Wiki
imported>HLandau
mNo edit summary
imported>Gleber
→‎Enabling PulseAudio: Use nixos configuration.nix to add user to audio group instead of `usermod` command
Line 11: Line 11:
You may need to add users to the <tt>audio</tt> group for them to be able to use audio devices:
You may need to add users to the <tt>audio</tt> group for them to be able to use audio devices:


  $ sudo usermod -a -G audio <em>username</em>
<syntaxHighlight lang="nix">
users.extraUsers.alice.extraGroups = [ "audio" ... ];
</syntaxHighlight>


==Troubleshooting PulseAudio==
==Troubleshooting PulseAudio==

Revision as of 21:44, 8 November 2017

PulseAudio is a popular sound server for Linux. It is now required by a number of applications, and should be enabled if audio support is desired on NixOS. Enabling PulseAudio is sufficient to enable audio support on NixOS in most cases.

Enabling PulseAudio

Add to your configuration:

hardware.pulseaudio.enable = true;
hardware.pulseaudio.support32Bit = true;    ## If compatibility with 32-bit applications is desired.

You may need to add users to the audio group for them to be able to use audio devices:

users.extraUsers.alice.extraGroups = [ "audio" ... ];

Troubleshooting PulseAudio

Before troubleshooting PulseAudio, determine that the kernel-level sound APIs (ALSA) are functional; see ALSA.

If ALSA-level audio is working, determine whether audio is being routed via PulseAudio.

To determine what processes are using the sound devices:

$ sudo lsof /dev/snd/*
COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 14080 goibhniu   30u   CHR  116,7      0t0 5169 /dev/snd/controlC0
pulseaudi 14080 goibhniu   37u   CHR  116,7      0t0 5169 /dev/snd/controlC0

In this example, only pulseaudio processes are using sound devices.

If other processes (such as plugin-container) are using sound devices, this indicates they are bypassing PulseAudio; check that you don't have a local ~/.asoundrc file directing audio to somewhere else.

Explicit PulseAudio support in applications

Normally, the system-wide ALSA configuration (/etc/asound.conf) redirects the audio of applications which use the ALSA API through PulseAudio. For this reason, most applications do not need to be PulseAudio-aware. Some NixOS packages can be built with explicit PulseAudio support which is disabled by default. This support can be enabled in all applicable packages by setting:

nixpkgs.config.pulseaudio = true;

See also