DebuggingSoundProblems

Differences between revisions 1 and 28 (spanning 27 versions)
Revision 1 as of 2005-05-28 20:38:13
Size: 4980
Editor: adsl-213-190-44-43
Comment: imported from the old wiki
Revision 28 as of 2008-09-12 05:07:09
Size: 8899
Editor: 208-58-69-5
Comment: fixing typo
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= DebuggingSoundProblems = #### do not move or rename as the Ubuntu Bug Control team uses this page extensively ####
#title Debugging Sound Problems
<<Include(Debugging/Header)>>
||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; background-repeat: no-repeat; background-position: 98% 0.5ex; margin: 0 0 1em 1em; padding: 0.5em;"><<TableOfContents>>||
Line 3: Line 6:
Do not report problems on this page; use the normal support channels. '''Notes for triagers:'''
 * Only mark against "alsa-driver" source package if they are using the alsa-source binary package with module-assistant OR if there is a blacklist or index configuration wishlist change.
 * In all other cases, the bug should be marked against the "linux" source package.
Line 5: Line 10:
 * Check that sound is unmuted and that the volume is turned up
  * I found it hard to find these controls: its not the "sound" in preferences; click on panel; add to panel; volume controls; speaker icon appears on panel; left click on icon; preferences; played around here and it worked
= Basic troubleshooting =
Line 8: Line 12:
 * Most sound problems are the result of failed hardware detection, so see DebuggingHardwareDetection
 * When reporting a problem, include (in addition to the information requested in DebuggingHardwareDetection):
  * Output of `aplay -l`
=== Preliminary checks ===
 1. Is your sound system plugged in and switched on. I spent an hour trying to diagnose a sound issue when the problem was that I had switched off the speakers to answer a phone call and forgot that I had done so. :-(

=== Checking volume levels ===
 1. From command line: Open a terminal window and launch ''alsamixer'' then make sure sound is unmuted and that the volume is turned up. Unmute everything, sometimes a muted channel will be the problem, even if the description doesn't seem immediately relevant.
 1. From GUI: This can be done by running something like ''gnome-alsamixer'' from a terminal window or navigating to your your Volume Control. Again, at this point make sure sound is unmuted and that the volume is turned up. Unmute everything, sometimes a muted channel will be the problem, even if the description doesn't seem immediately relevant. Also check that your switches are set correctly - for instance that if you use the analog output the analog switch is set ON or that the digital or S/PDIF switch is set OFF. You can select which tracks/switches are visible in Volume Control (see above) under Edit->Preferences.
  * Note: These controls have equivalent functionality to alsamixer but with a graphical interface. Checking or unchecking devices in the these accomplishes the exact same thing as unmuting or muting devices, respectively, in alsamixer.
  * Starting with Ubuntu 7.04, the sound volume control is also accessible from Menu->Sound&Video->Volume Control. It may be hidden in your menus but can be shown by going to System > Preferences > Main Menu and under Applications > Sound&Video ticking Volume Control.

=== Checking sound device assignment ===
 1. Most sound applications output to card0 by default. In some cases, other audio devices (like a USB MIDI Keyboard) might be recognized as a soundcard and take card0, bumping your real soundcard to card1. To see which devices are connected to which cards, do the following:
  * {{{
 cat /proc/asound/cards
}}}
 1. You can manipulate the device number assignment by adding snd-usb-audio to /etc/modprobe.d/alsa-base . Next boot, the snd-usb-audio device will get index 1.
  * {{{
 options snd-usb-audio index=1
}}}

=== Checking permissions and resources ===
  1. Make sure that all users needing access to the Sound Device can "Use audio devices" in the "User Privileges" tab of users-admin (System->Administration->Users and Groups).
  1. Test different "Sound Servers": Go to System > Preferences > Sound ("Multimedia Systems Selector" in earlier editions of Ubuntu). From there, you can test the different options. In some scenarios several different sound servers may be installed, and only one may work. This is probably the origin of the problem if you cannot play audio with xine or rhythmbox, but you can with xmms or helix/realplayer.
  1. If you application sounds works, but your system sounds does not (login, logout, error sounds...) try removing the .asoundrc* files from your own directory (e.g. with 'rm .asoundrc*'). It should make the system sounds work without a reboot.
  1. If you can get absolutely no sound and you have an onboard sound chip you can try to disable it in the BIOS. This solves the problem is some cases.
  1. If you have no sound and you have a regular sound card type "lsmod | grep snd" in the terminal and see if there is more than one card listed. It's possible that you have a motherboard sound chip that is interfering. Add it to the bottom of the blacklist file. For example, sudo nano /etc/modprobe.d/blacklist then add "blacklist snd_via82xx" to the bottom.
Line 13: Line 39:
== Contributed by Carl Karsten == = Reporting Sound Bugs =
Line 15: Line 41:
Here are the commands and web sites I found helpful in getting sound working. Please do not report problems on this page; use the normal support channels instead. See http://www.ubuntu.com/support
Line 17: Line 43:
carl@ubuntu:~$ aplay -l If you feel you have encountered a software bug, please report the bug at https://launchpad.net/ubuntu/+source/linux/+filebug. Also, be sure to include the following information to your report. Please be sure to add each file as a separate attachment:
 1. Output of 'uname -a'
   * {{{
 uname -a > uname-a.log
}}}
 1. Output of 'sudo lspci -vvnn'
  * {{{
 sudo lspci -vvnn > lspci-vvnn.log
}}}
 1. Output of 'dpkg -s linux-ubuntu-modules-$(uname -r)'
  * {{{
 dpkg -s linux-ubuntu-modules-$(uname -r)
}}}
  * various sound drivers are provided by the linux-ubuntu-modules package
 1. Sound Information (see below for how to gather)
Line 19: Line 59:
=== Automatic Sound Information Collection ===
This is the preferred method for gathering the appropriate sound information from you system. It's helps ensure that you gather the sound information correctly and completely. The following script gathers all required information in one go [[http://alsa-project.org/alsa-info.sh]] . By default, the script uploads the information to alsa-project.org . This information can be used by ALSA developers to improve current support for some cards. If you do not wish your information to be uploaded, please use the --no-upload argument when running the script. The script was written to aid the alsa developers, and also to help the people in #alsa to sort out sound issues. Please download and run the script as follows:
 1. {{{
 bash alsa-info.sh
}}}
 1. The script will generate a URL. Please add this URL to your bug report.
 1. If for some reason the script does not generate a URL, please use the --pastebin option (our original upload method)
 1. The alsa-info.sh script can either be run as 'bash alsa-info.sh' _or_ made executable and run as './alsa-info.sh'.

=== Manual sound configuration collection ===
This is the information gathered from the automated sound information collection script. We highly recommend you use the automated script when gathering the sound information regarding your system. Manually collection of the information by hand is a tedious process and is more prone to user error.

 1. You can use aplay to get a list of soundcards configured by alsa
  * {{{
 $ aplay --list-devices
Line 20: Line 75:
}}}
 1. The following commands can help to figure out what sound card (chip set) you have (Look for lines that contain 'Multimedia audio controller'). The actual {sub,}{vendor,device} IDs are important. That's how we track whether something exists as a quirk or needs to be added/modified.
  * {{{
 $ lspci -vvnn
$ lspnp -v
}}}
 1. The following command lists the codecs involved. The output from this command is ''vital''. Different codecs pushing the same driver (say, intel8x0, emu10k1, or hda-intel) exhibit a huge variation in errata.
  * {{{
 tail -2 /proc/asound/oss/sndstat
}}}
 1. It is ''imperative'' that you include the amixer output from your preferred (the one that's giving problems) audio device. The community has spent years documenting known mixer issues on http://alsa.opensrc.org/ (see drivers). For instance, many of the codecs driving cs46xx, emu10k1, and intel8x0 require multiple elements to be selected, unmuted, and raised to audible levels.
  * {{{
 amixer
}}}
 1. This script command (which is really just filtered cat /proc/asound/cards) lists the enumerated sound devices on your system.
  * {{{
 asoundconf list
}}}
 1. We need to know if you've modified any runtime configuration files that affect how alsa-lib interacts with your sound devices. The nonexistence of the above files is not a problem.
  * {{{
 cat /etc/asound.conf ~/.asoundrc*
}}}
 1. Many codecs and drivers, upon initialization, will spit something via printk() into the kernel ring buffer. Any diagnostic messages will appear in this output.
  * {{{
 dmesg
}}}
 1. Sound devices require resources. We need to see if those resources are properly assigned, the above command lists interrupts used.
  * {{{
 cat /proc/interrupts
}}}
Line 21: Line 106:
Script to gather specs about sound things:
http://alsa.opensrc.org/index.php?page=aadebug
= Further sound troubleshooting =
Line 24: Line 108:
To try to figure out what sound card (chip set) you have:

$ lspci -v and lspnp -v, look for lines like this:

0000:01:05.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)

or

06 ESS1878 multimedia controller: audio

“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. “ - http://www.tldp.org/HOWTO/Sound-HOWTO/x96.html#AEN120

If you have an ISA card, you MUST pass isapnp=0 to modprobe.

If you have an ISA card, you may need to get the IRQ and IO ranges.
IRQ 5, DMA channel 1 and 0, IO 0x0220-0x022f, 0x0388-0x0388, 0x0330-0x0331

Now figure out which module you need.

http://www.alsa-project.org/alsa-doc/

Pick the manufacturer, Go – This should make it clear what module you need.

http://www.alsa-project.org/alsa-doc/doc-php/template.php?company=ESS+Technology&card=.&chip=ES18xx&module=es18xx

snd-es18xx

Between that, modinfo <module>, and linux/Documentation/sound/alsa/ALSA-Configuration.txt:

  Module snd-es18xx

    Module for ESS AudioDrive ES-18xx soundcards.

    port - port # for ES-18xx chip (0x220,0x240,0x260)
    mpu_port - port # for MPU-401 port (0x300,0x310,0x320,0x330), -1 = disable (default)
    fm_port - port # for FM (optional, not used)
    irq - IRQ # for ES-18xx chip (5,7,9,10)
    dma1 - first DMA # for ES-18xx chip (0,1,3)
    dma2 - first DMA # for ES-18xx chip (0,1,3)
    isapnp - ISA PnP detection - 0 = disable, 1 = enable (default)

    Module supports up to 8 cards ISA PnP and autoprobe (without MPU-401 port
    if native ISA PnP routines are not used).
    When dma2 is equal with dma1, the driver works as half-duplex.

    The power-management is supported.

You should be able to figure out a line like this:

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

Hopefully no errors. If so, save the parameters

root@ubuntu:/etc # cat /etc/modprobe.conf
alias sound-card-0 snd-es18xx
options snd-es18xx isapnp=0 port=0x220 mpu_port=0x330 dma1=1 dma2=5 irq=5 fm_port=0x388

This works, but has an alarming side effect: on boot I saw "warning! /etc/modprobe.conf exists but does not include /etc/rc.modules" (or something... it scrolled off and I can't find it in dmesg or messages... where should I look?) So I am guessing there is a better pace to put module parameters.

== Revised by DanielTChen ==

Use /etc/modprobe.d/<module name> instead, e.g.,

$ echo "options snd-es18xx isapnp=0 port=0x220 mpu_port=0x330 dma1=1 dma2=5 irq=5 fm_port=0x388" | sudo tee -a /etc/modprobe.d/snd-es18xx

==

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

/usr/bin/speaker-test (beep...)

Hoary - I have sound with aplay, speaker-test and xmms, but not flash-mozilla firefox plugin

crimsun: carl: you can create an .asoundrc and overload pcm.dsp0

(never got any more on this tip)

== Revised by DanielTChen ==

The recommended method is to use the polypaudio daemon (esd replacement) and to leave/set applications to use ESounD output. See the Sound section in /usr/share/doc/mozilla-firefox/README.Debian
After reporting a bug you might want to see the community documentation:
 * https://help.ubuntu.com/community/Sound
 * https://help.ubuntu.com/community/SoundTroubleshooting
 * https://help.ubuntu.com/community/DebuggingSoundProblemsMisc
Line 110: Line 114:
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: http://www.ubuntulinux.org/wiki/RestrictedFormats, then do this: http://alsa.opensrc.org/index.php?page=DmixPlugin

----
Handy links:

http://alsa.opensrc.org/index.php?page=OssEmulation
CategoryDocumentation CategoryBugSquad CategoryDebugging

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

Notes for triagers:

  • Only mark against "alsa-driver" source package if they are using the alsa-source binary package with module-assistant OR if there is a blacklist or index configuration wishlist change.
  • In all other cases, the bug should be marked against the "linux" source package.

Basic troubleshooting

Preliminary checks

  1. Is your sound system plugged in and switched on. I spent an hour trying to diagnose a sound issue when the problem was that I had switched off the speakers to answer a phone call and forgot that I had done so. Sad :-(

Checking volume levels

  1. From command line: Open a terminal window and launch alsamixer then make sure sound is unmuted and that the volume is turned up. Unmute everything, sometimes a muted channel will be the problem, even if the description doesn't seem immediately relevant.

  2. From GUI: This can be done by running something like gnome-alsamixer from a terminal window or navigating to your your Volume Control. Again, at this point make sure sound is unmuted and that the volume is turned up. Unmute everything, sometimes a muted channel will be the problem, even if the description doesn't seem immediately relevant. Also check that your switches are set correctly - for instance that if you use the analog output the analog switch is set ON or that the digital or S/PDIF switch is set OFF. You can select which tracks/switches are visible in Volume Control (see above) under Edit->Preferences.

    • Note: These controls have equivalent functionality to alsamixer but with a graphical interface. Checking or unchecking devices in the these accomplishes the exact same thing as unmuting or muting devices, respectively, in alsamixer.
    • Starting with Ubuntu 7.04, the sound volume control is also accessible from Menu->Sound&Video->Volume Control. It may be hidden in your menus but can be shown by going to System > Preferences > Main Menu and under Applications > Sound&Video ticking Volume Control.

Checking sound device assignment

  1. Most sound applications output to card0 by default. In some cases, other audio devices (like a USB MIDI Keyboard) might be recognized as a soundcard and take card0, bumping your real soundcard to card1. To see which devices are connected to which cards, do the following:
    •  cat /proc/asound/cards
  2. You can manipulate the device number assignment by adding snd-usb-audio to /etc/modprobe.d/alsa-base . Next boot, the snd-usb-audio device will get index 1.
    •  options snd-usb-audio index=1

Checking permissions and resources

  1. Make sure that all users needing access to the Sound Device can "Use audio devices" in the "User Privileges" tab of users-admin (System->Administration->Users and Groups).

  2. Test different "Sound Servers": Go to System > Preferences > Sound ("Multimedia Systems Selector" in earlier editions of Ubuntu). From there, you can test the different options. In some scenarios several different sound servers may be installed, and only one may work. This is probably the origin of the problem if you cannot play audio with xine or rhythmbox, but you can with xmms or helix/realplayer.

  3. If you application sounds works, but your system sounds does not (login, logout, error sounds...) try removing the .asoundrc* files from your own directory (e.g. with 'rm .asoundrc*'). It should make the system sounds work without a reboot.
  4. If you can get absolutely no sound and you have an onboard sound chip you can try to disable it in the BIOS. This solves the problem is some cases.
  5. If you have no sound and you have a regular sound card type "lsmod | grep snd" in the terminal and see if there is more than one card listed. It's possible that you have a motherboard sound chip that is interfering. Add it to the bottom of the blacklist file. For example, sudo nano /etc/modprobe.d/blacklist then add "blacklist snd_via82xx" to the bottom.

Reporting Sound Bugs

Please do not report problems on this page; use the normal support channels instead. See http://www.ubuntu.com/support

If you feel you have encountered a software bug, please report the bug at https://launchpad.net/ubuntu/+source/linux/+filebug. Also, be sure to include the following information to your report. Please be sure to add each file as a separate attachment:

  1. Output of 'uname -a'
    •  uname -a > uname-a.log
  2. Output of 'sudo lspci -vvnn'
    •  sudo lspci -vvnn > lspci-vvnn.log
  3. Output of 'dpkg -s linux-ubuntu-modules-$(uname -r)'
    •  dpkg -s linux-ubuntu-modules-$(uname -r)
    • various sound drivers are provided by the linux-ubuntu-modules package
  4. Sound Information (see below for how to gather)

Automatic Sound Information Collection

This is the preferred method for gathering the appropriate sound information from you system. It's helps ensure that you gather the sound information correctly and completely. The following script gathers all required information in one go http://alsa-project.org/alsa-info.sh . By default, the script uploads the information to alsa-project.org . This information can be used by ALSA developers to improve current support for some cards. If you do not wish your information to be uploaded, please use the --no-upload argument when running the script. The script was written to aid the alsa developers, and also to help the people in #alsa to sort out sound issues. Please download and run the script as follows:

  1.  bash alsa-info.sh
  2. The script will generate a URL. Please add this URL to your bug report.
  3. If for some reason the script does not generate a URL, please use the --pastebin option (our original upload method)
  4. The alsa-info.sh script can either be run as 'bash alsa-info.sh' _or_ made executable and run as './alsa-info.sh'.

Manual sound configuration collection

This is the information gathered from the automated sound information collection script. We highly recommend you use the automated script when gathering the sound information regarding your system. Manually collection of the information by hand is a tedious process and is more prone to user error.

  1. You can use aplay to get a list of soundcards configured by alsa
    •  $ aplay --list-devices
      aplay: device_list:200: no soundcards found...
  2. The following commands can help to figure out what sound card (chip set) you have (Look for lines that contain 'Multimedia audio controller'). The actual {sub,}{vendor,device} IDs are important. That's how we track whether something exists as a quirk or needs to be added/modified.
    •  $ lspci -vvnn 
      $ lspnp -v 
  3. The following command lists the codecs involved. The output from this command is vital. Different codecs pushing the same driver (say, intel8x0, emu10k1, or hda-intel) exhibit a huge variation in errata.

    •  tail -2 /proc/asound/oss/sndstat
  4. It is imperative that you include the amixer output from your preferred (the one that's giving problems) audio device. The community has spent years documenting known mixer issues on http://alsa.opensrc.org/ (see drivers). For instance, many of the codecs driving cs46xx, emu10k1, and intel8x0 require multiple elements to be selected, unmuted, and raised to audible levels.

    •  amixer
  5. This script command (which is really just filtered cat /proc/asound/cards) lists the enumerated sound devices on your system.
    •  asoundconf list
  6. We need to know if you've modified any runtime configuration files that affect how alsa-lib interacts with your sound devices. The nonexistence of the above files is not a problem.
    •  cat /etc/asound.conf ~/.asoundrc*
  7. Many codecs and drivers, upon initialization, will spit something via printk() into the kernel ring buffer. Any diagnostic messages will appear in this output.
    •  dmesg
  8. Sound devices require resources. We need to see if those resources are properly assigned, the above command lists interrupts used.
    •  cat /proc/interrupts

Further sound troubleshooting

After reporting a bug you might want to see the community documentation:


CategoryDocumentation CategoryBugSquad CategoryDebugging

DebuggingSoundProblems (last edited 2014-07-26 11:08:14 by penalvch)