Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've been trying to install pulseaudio, and I can't seem to find a straight answer about what to do about ALSA. Does PulseAudio run on top of ALSA? Should I get rid of ALSA first? ALSA is a sound server, right? So is PulseAudio... As you can tell I'm somewhat confused. Anyway right now I seem to have both - except neither seems to be working :-\

/etc/asound.conf contains:

pcm.pulse {
    type pulse
}

ctl.pulse {
    type pulse
}

pulseaudio is indeed running. However, trying "amixer -Dpulse" results in

ALSA lib control.c:874:(snd_ctl_open_conf) Cannot open shared library
/usr/lib64/alsa-lib/libasound_module_ctl_pulse.so
amixer: Mixer attach pulse error: No such file or directory`

I checked and the file is indeed not there. I do however have
/usr/lib32/alsa-lib/libasound_module_ctl_pulse.so

Playing a song in VLC will make the stream show up in pavucontrol, but no audio will make its way to my speakers... I am in groups pulse and pulse-access (not entirely sure what they're for, but figured they can't hurt), and have followed the guide http://pulseaudio.org/wiki/PerfectSetup to the letter.

Update:

Oddly enough, when I delete /etc/asound.conf, audio streams still show up in pavucontrol... so... is pulseaudio actually running? Am I using it? How can I tell?

share|improve this question

3 Answers 3

up vote 4 down vote accepted

Here's a straight answer: PulseAudio is a sound server; ALSA is a kernel sound subsystem. They do different things -- ALSA provides chipset drivers for your soundcard or onboard sound chip; PulseAudio routes sound between programs, sound chips, and even systems.

PulseAudio is a sound server for POSIX systems. A sound server is basically a proxy for your sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server.

To use PulseAudio, you need a sound driver somewhere. This can be ALSA or OSS; these provide the kernel sound drivers to output sound signals from the computer.

Follow the steps at the First Steps page to bring up a PulseAudio commandline; you can use the CLI to test whether things are running right.

# get a pulseaudio commandline
$ pulseaudio -nC

Welcome to PulseAudio! Use "help" for usage information.

# run this to see what sinks are configured
>>> list-sinks

Also check your /etc/pulse/daemon.conf and /etc/pulse/default.pa config files (they may be installed to /usr/local/etc/pulse if you compiled & installed PA yourself).

share|improve this answer
    
I had a look through those files and they seem fine to me - but I don't really know what to look for. list-sinks, on the other hand, returns "0 sink(s) available". Is this bad? I don't really know what a sink is... –  Mala Jan 5 '10 at 15:00
    
an audio sink is someplace that PA sends audio. it could be a soundcard/chipset output; it could be another program. but in this case, you haven't defined any. sounds like you need to check your default.pa, this is where you'd put the commands to setup PA to talk to your hardware. use those links above for details and examples. –  quack quixote Jan 5 '10 at 15:11

I must admit that I've been very lucky and not had any pulseaudio problems and so don't really know how to solve them.

I can, however, give you a basic idea about what pulseaudio is...

Basically pulseaudio is an extra layer in the sound system, that sits inbetween the existing sound sources and outputs. As such, you still need ALSA on your sytem, but the idea is that the program that wants to make a noise has a (virtual) pulseaudio device. Pulseaudio then deals with the ALSA stuff.

So rather than configure a lot of programs to deal with the ALSA drivers, you configure a lot of programs to deal with pulseaudio and configure pulseaudio to deal with the ALSA drivers. This is supposedly "a good thing".

share|improve this answer

I had similar error after upgrading some ALSA-related packages under Arch Linux.

amixer set Master 5%+

returned

ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get)
Cannot open shared library /usr/lib/alsa-lib/libasound_module_ctl_pulse.so
amixer: Mixer attach default error: No such device or address

Package versions:

  • pulseaudio 4.0-2
  • lib32-libpulse 4.0-2
  • alsa-lib 1.0.27.2-1
  • lib32-alsa-lib 1.0.27.2-1
  • alsa-utils 1.0.27.2-1
  • alsa-plugins 1.0.27-2
  • lib32-alsa-plugins 1.0.27-1
  • pulseaudio-alsa 2-2

The solution was to update the package json-c (from 0.10-2 to 0.11-1).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.