This wiki article is all about the audio system in Fedora Linux. (Please help us flesh this out with quality input.)
The Audio System
The latest releases of Fedora have standardized upon PulseAudio as the audio system of choice. It handles all sounds that come out of the computer, except for beeps during boot up.
But PulseAudio does not stand alone. It uses other systems as part of its total system so as to reach down to the hardware level and up thru any shared network mechanisms. It cannot do everything itself, and so other subparts come into play by tying in with it.
These include parts like ALSA, OSS, Jack, MIDI, etc., etc..
PulseAudio
PulseAudio is the part the tries to bridge the gap between all the other parts and bring a more centralized point of control to the user. However, as of 2014, it is still in its infancy with regard to user-friendliness, and that makes it a little difficult to use.
ALSA
The name ALSA stands for Advanced Linux Sound Architecture, and it basically makes a software connection to the hardware of your sound circuitry, whether a sound card or sound components built into your computer's motherboard. It handles the code snippets we might usually call "drivers" which help the system recognize the hardware components. It supplies inputs, outputs, recording or capture channels and features that each hardware sound system brings to the table.
OSS
OSS stand for the Open Sound System. It was very much like ALSA in its function. It has been around long enough that some things require it. It also works on other than Linux.
Jack
The name is an acronym for Jack Audio Connection Kit. It adds an intermediary layer between PulseAudio and other applications that need more specially defined "connections" or "jacks" for various processes before sending the sound information to the next program.
GStreamer
GStreamer is much like the function of PulseAudio. It is an intermediary that can make proprietary codecs (coder/decoder) function in Linux. It is used by the GTK programming environment, and it also handles things like video.
MIDI
MIDI is short for Musical Instrument Digital Interface. It is the standard way of communication in some parts of the audio spectrum where digital instruments are used; such as electronic keyboards. This interface standard makes it possible for these instruments to work with other digital devices, such as computers.
How It All Fits Together
Troubleshooting
This section helps you identify and correct issues with sound on your system, and helps you report problems so they can be prevented in the future.
This explains information that should be included when filing bugs related to sound. General sound problems - where the problem is observed across multiple applications - should usually be filed against the kernel, or PulseAudio (see below for instructions on determining whether the problem is PulseAudio-related). If the problem is observed only in a specific application, or only in applications which use a single sound library (such as SDL or OpenAL), the bug should be filed against that component.
Use the list below to identify the component at fault and to help you provide the debugging information when you file a bug report. Please add output of relevant commands to the report:
1. Add shorter texts, such as getfacl
output or fact that aplay
did not play sound as comments
1. Attach longer outputs, such as pulseaudio -vvv
log as attachments
Feel free to improve this text to reflect your experience, or mail suggestions to lkundrak@redhat.com. Thanks!
Hardware information
It is always useful to include detailed information on your sound hardware when filing a sound-related bug. To produce this information, run this command:
alsa-info.sh --no-upload
It will generate a file containing detailed information about your sound hardware with the name /tmp/alsa-info.txt
. Attach this file to your bug report.
ALSA
- Relevant packages:
kernel
,alsa-lib
,alsa-plugins-pulseaudio
- Permissions on device files are managed by HAL
- Relevant packages:
hal
,hal-libs
- See what ACLs are set with
getfacl /dev/snd/pcmC0D0c
- Users with active sessions should have write privilege
- Relevant packages:
ConsoleKit
,ConsoleKit-libs
- Check which sessions are active with
ck-list-sessions
- Relevant packages:
- Users with active sessions should have write privilege
- Relevant packages:
- Pulseaudio backend is in package
alsa-plugins-pulseaudio
- Volume settings are adjusted with
alsamixer -c 0
- You can play sound with
aplay -D hw:0 /usr/share/sounds/startup3.wav
- When pulseaudio is running, use
pasuspender /usr/bin/aplay -- -D hw:0 /usr/share/sounds/startup3.wav
- When pulseaudio is running, use
PulseAudio daemon
- Relevant packages:
pulseaudio
- Starts with the session
- In GNOME see System->Preferences->Personal->Sessions
- In KDE, you should have
kde-settings-pulseaudio</code installed
- Check if it runs with
ps aux |grep pulseaudio
grep pulseaudio /var/log/messages
to see if it had any problems- Audio devices are discovered by HAL
- Run verbose pulseaudio on foreground to see detailed messages
- Kill running pulseaudio
pulseaudio -k
orpkill -KILL pulseaudio
- Clean up the leftover temporary files
rm -rf /tmp/pulse-*
- Run
pulseaudio -vvv
- You can play sound with
paplay /usr/share/sounds/startup3.wav
Is it PulseAudio?
The easiest way to determine if a bug is related to PulseAudio or not is to temporarily disable PulseAudio. You can do this by removing the alsa-plugins-pulseaudio
package:
yum remove alsa-plugins-pulseaudio
It may be necessary to log out and log back in after making this change. If the application you are testing with is configured to output directly to PulseAudio, you should re-configure it to output to ALSA. Now see if you can reproduce the problem. If you can still reproduce the problem, it is likely not a PulseAudio issue. If you cannot, it is likely a PulseAudio issue. If you determine that the issue seems to be related to PulseAudio, see the PulseAudio debugging page. To restore PulseAudio functionality after doing this test, simply re-install the alsa-plugins-pulseaudio
package.
GStreamer
- Relevant packages:
gstreamer
, gstreamer-plugins-pulse
- Default sound devices is set by
gnome-sound-properties
- Either ALSA or pulse should work. Also default.
- Check the values with
gconftool-2 --recursive-list /system/gstreamer/0.10/default
- You can play sound with
gst-launch audiotestsrc \! autoaudiosink
- Also try
pulsesink
instead
Mixer settings
If your problem is that you cannot hear any sound, or sound is at too low or too high a volume, you should try adjusting your mixer (volume control) settings. In KDE for all Fedora releases, and in GNOME for Fedora releases prior to Fedora 11, there is a volume control application accessible from a panel icon that can control all available volumes.
In GNOME on Fedora 11, you can find a mixer application that can control all volumes under System / Preferences / Advanced Volume Control in the menu system. If all else fails, you can use the command line alsamixer application: run it as alsamixer -c0
, use the left and right arrow keys to scroll through all available channels, and the up and down arrow keys to raise or lower the volume of a channel. The M key toggles between muted and unmuted.
If you find that adjusting one of the non-standard volume controls (anything but Master or PCM) resolves your problem, please file a bug according to the instructions here.
Model parameter
If your problem is that you cannot hear any sound, or that some input or output jacks on your card are not working, the instructions in the Mixer settings section above did not help, and you have an Intel HDA-type sound adapter (almost all laptops, and most desktops, sold since 2007 do), you can try this. If these instructions seem too complex for you, don't worry: just file a bug with all the information you can provide.
In the /tmp/alsa-info.txt
file you generated earlier, the Advanced information - PCI Vendor/Device/Subsystem ID's section should contain a Subsystem ID for your sound device, of the form 1412:1724 (two four-character ids separate by a colon). Do a web search for "(your-ID)" alsa - e.g. "1412:1724" alsa. This may turn up previous reports from other people with the same problem. Often you will find advice to set a particular model= parameter for your sound driver. To do this, create a file named /etc/modprobe.d/sound.conf
, with the following contents:
options snd_hda_intel model=(recommended parameter)
For example:
options snd_hda_intel model=3stack
if the recommended model was '3stack'. After creating this file, reboot. If you find you can solve the problem this way, please include this information in your bug report.
Firefox / Flash / Amazon.com Preview Issues in x86_64
- This pertains to Firefox / Amazon.com music previews that sound horrible, or mixed with 'Pac-Man' noise:
- The problem may be that your flash player is old or not installed properly (as was my case).
- Open firefox and navigate to Adobe's flash download site for Linux:
- Download the latest flashplayer for your installation
For example: flashplayer11_b2_install_lin_64_080811.tar.gz
- Close firefox and all of its Download / Properties windows.
- Applications -> System Tools -> Terminal
- Enter the following commands:
$ su (switch to root authority--enter the root password)
# cd /home/<your user id>/Downloads/
# tar -xzf flashplayer11_b2_install_lin_64_080811.tar.gz
# cp -i ./bin/flash-player-properties /usr/bin/
# cp -i ./usr/lib/kde4/kcm_adobe_flash_player.so /usr/lib/kde4/
# cp -i ./usr/share/applications/flash-player-properties.desktop /usr/share/applications/
# cp -i ./usr/share/icons/hicolor/16x16/apps/flash-player-properties.png /usr/share/icons/hicolor/16x16/apps/
# cp -i ./usr/share/icons/hicolor/24x24/apps/flash-player-properties.png /usr/share/icons/hicolor/24x24/apps/
# cp -i ./usr/share/icons/hicolor/32x32/apps/flash-player-properties.png /usr/share/icons/hicolor/32x32/apps/
# cp -i ./usr/share/icons/hicolor/48x48/apps/flash-player-properties.png /usr/share/icons/hicolor/48x48/apps/
# cp -i ./usr/share/pixmaps/flash-player-properties.png /usr/share/pixmaps/
- Restart firefox