This wiki tries to capture some of the sound issue corner cases. For general information regarding debugging sound issues, please refer to:

https://help.ubuntu.com/community/DebuggingSoundProblems

Compatibility

A word about compatibility: even though most sound cards are claimed to be SoundBlaster compatible, very few currently sold cards are compatible enough to work with the Linux SoundBlaster driver. [1]

Manual installation of sound drivers

Now figure out which module you need go to Sound Drivers and pick the manufacturer. With the information provided by previous commands it should be easy to find the right module.

To see if this module is available on your system (it usually is) try the following command:

 $ modinfo [modulename]

This will also list the possible parameters for the module. For example some ISA cards require you to pass isapnp=0 to modprobe. It may also require the IRQ and IO of the card if that's the case, these can be found in the output of the aadebug script.

Now that you've figured out all this information, lets try loading the module

 #modprobe example
$ sudo modprobe snd_es18xx isapnp=0 port=0x220 mpu_port=0x330 dma1=1 dma2=5 irq=5 fm_port=0x388

If this doesn't return any errors, we can save the parameters.

 $ echo options [module-name] [module-options] | sudo tee /etc/modprobe.d/[module-name]

Now we can test our setup

 #aplay should now list your sound card
root@ubuntu:/etc # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ES1878 [ESS AudioDrive ES1878], device 0: ES1878 [ESS AudioDrive ES1878]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
#the speaker should beep
$ /usr/bin/speaker-test  

Other problems & troubleshooting

PulseAudio

The recommended method is to use the pulseaudio daemon (esd replacement) and to leave/set applications to use ESounD output. See the Sound section in /usr/share/doc/mozilla-firefox/README.Debian

Flash

If you have issues with Flash playback and sound, see Restricted Formats - Troubleshooting.

Software Mixing

A much better way of getting esd to work with non-esd-aware apps is to make alsa use its software mixer.

 sudo /etc/init.d/alsa-utils stop

Then edit

 /var/lib/alsa/asound.state

and add the following text verbatim to the start of this file

 # This text should be added to the beginning of
  # /var/lib/alsa/asound.state.  You only need to add
  # it once -- it is saved across reboots.

  pcm.asymed {
        type asym
        playback.pcm dmix
        capture.pcm dsnoop
  }
  pcm.default {
        type plug
        slave.pcm asymed
  }
  pcm.dmix {
        type dmix
        ipc_key 5678293
        ipc_key_add_uid yes
        slave {
                pcm 'hw:0,0'
                period_time 0
                period_size 128
                buffer_size 2048
                format S16_LE
                rate 48000
        }
  }
  pcm.dsnoop {
        type dsnoop
        ipc_key 5778293
        ipc_key_add_uid yes
        slave {
                pcm 'hw:0,0'
                period_time 0
                period_size 128
                buffer_size 2048
                format S16_LE
                rate 48000
        }
  }

then

 sudo /etc/init.d/alsa-utils start

Now as many programs as you want can all use the sound card simultaneously, both the output and the microphone! ESD-aware apps can use ESD, other apps will still work fine.

One notable misfeature of ESD is that it often ruins the A/V sync when playing videos. After setting up the software mixer, you might find it useful to turn esd off altogether (in tthe Sound control panel uncheck "Enable Software Mixing"). Now, especially with GStreamer 0.10, your movies should have perfect A/V sync.

It's a shame that software mixing isn't enabled on Ubuntu by default.

More on Software Mixing

A problem is the default config is OSS doesn't let 2 apps make sound at the same time. Here is a report of how it was dealt with: Basically get esd to relinquish control of the sound when its not in use. Then add mixing for oss so you can use multiple oss programs at once, like Quake3 and Teamspeak, or in my case, Wolfenstein and Teamspeak

First use section 3 here: Restricted Formats then do this: http://alsa.opensrc.org/index.php?page=DmixPlugin

References

[1] http://www.tldp.org/HOWTO/Sound-HOWTO/x96.html#AEN120

DebuggingSoundProblemsMisc (last edited 2008-07-24 17:11:15 by localhost)