From Fedora Project Wiki

m (fixed MIDI)
m (→‎How It All Fits Together: created placeholder text)
 
Line 27: Line 27:


== How It All Fits Together ==
== How It All Fits Together ==
 
(This is where we will attempt to show how the parts work together.)


== Troubleshooting ==
== Troubleshooting ==

Latest revision as of 21:11, 21 July 2014

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

(This is where we will attempt to show how the parts work 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: Package-x-generic-16.pngkernel, Package-x-generic-16.pngalsa-lib, Package-x-generic-16.pngalsa-plugins-pulseaudio
  • Permissions on device files are managed by HAL
    • Relevant packages: Package-x-generic-16.pnghal, Package-x-generic-16.pnghal-libs
    • See what ACLs are set with getfacl /dev/snd/pcmC0D0c
      • Users with active sessions should have write privilege
  • Pulseaudio backend is in package Package-x-generic-16.pngalsa-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

PulseAudio daemon

  • Relevant packages: Package-x-generic-16.pngpulseaudio
  • 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
    • Relevant packages: Package-x-generic-16.pnghal, Package-x-generic-16.pnghal-libs
    • Use hal-find-by-capability --capability alsa to list them
  • Run verbose pulseaudio on foreground to see detailed messages
  • Kill running pulseaudio pulseaudio -k or pkill -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 Package-x-generic-16.pngalsa-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 Package-x-generic-16.pngalsa-plugins-pulseaudio package.

GStreamer

  • Relevant packages: Package-x-generic-16.pnggstreamer, Package-x-generic-16.pnggstreamer-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:

http://labs.adobe.com/downloads/flashplayer11.html

  • 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