to set levels, Tab to switch between the Playback/Capture (Output/Input) views, M to mute, and Escape to exit.

Figure 2-23. AlsaMixer display 

2.6.2. How Does It Work?

Fedora uses the Advanced Linux Sound Architecture system (ALSA), which has replaced the Open Sound System (OSS) used in older Linux kernels. The ALSA interface is generally more advanced than the OSS interface; however, OSS is used on many Unix systems, so ALSA also provides an OSS-compatible sound interface for the convenience of cross-platform software developers.

ALSA uses devices in the /dev/snd directory such as /dev/snd/controlC0 , which is used by the Volume Control and KMix tools to control the first sound card (C0). Devices for OSS compatibility are in the /dev directory and include /dev/dsp , /dev/audio , and /dev/mixer .

Most sound chips have several inputsin some cases, a few dozen inputswhich are routed through various sound paths to arrive at one or more outputs. Most of these inputs have a description assigned by the chip designer, but it's not necessary for the sound card designer to use a particular input for its designated purpose, and it's also not guaranteed that the system builder will connect a given signal source to the appropriate input on the sound card. Since the ALSA drivers generally use the designations provided by the chip documentation, you may find situations where the Video control manages the CD-ROM volume, or the Headset control affects the main speaker output.

It's not uncommon for different sound card models to use the same chipsets, with the support circuitry for some features left off of the budget models. In these cases, ALSA has no idea which features are wired up and which ones have been omitted, which explains why there are so many controls that don't do anything.

The Soundcard Detection tool is a Python script named system-config-soundcard . This script configures the file /etc/asound.conf with the selected default PCM device.

When the system is shut down, the script /etc/rc.d/init.d/halt saves the sound configuration (including mixer settings) to /etc/asound.state . The state is restored by the Udev subsystem using the program /etc/dev.d/sound/alsa.dev when the sound devices are detected during system boot.

2.6.3. What About...

2.6.3.1. ...allowing multiple users to use a sound device at the same time?

When a user logs in, Fedora assigns ownership of the sound devices to that user and sets the permissions so that only that user can open them. If you want to allow several users (including those remotely logged in) to use sound at the same time, you can change the permissions of the sound devices so that they're universally accessible:

$ chmod 0777 /dev/snd/* /dev/mixer* /dev/audio* /dev/dsp*

To make this the default configuration, add this line to the end of the system-wide login script, /etc/profile .

2.6.3.2. ...controlling the volume levels from the command line or a script?

The amixer utility provides command-line access to the sound controls. Run without arguments, it will tell you all of the current settings (which can run into hundreds of lines of output):

$ amixer

Simple mixer control 'Master',0

 Capabilities: pvolume pswitch pswitch-joined

 Playback channels: Front Left - Front Right

 Limits: Playback 0 - 31

 Mono:

 Front Left: Playback 17 [55%] [on]

 Front Right: Playback 17 [55%] [on]

Simple mixer control 'Master Mono',0

 Capabilities: pvolume pvolume-joined pswitch pswitch-joined

 Playback channels: Mono

 Limits: Playback 0 - 31

 Mono: Playback 14 [45%] [on]

Simple mixer control 'Headphone',0

 Capabilities: pvolume pswitch pswitch-joined

 Playback channels: Front Left - Front Right

 Limits: Playback 0 - 31 

 Mono:

 Front Left: Playback 20 [65%] [on]

 Front Right: Playback 20 [65%] [on]

...(Lines snipped)...

You can generate a more compact list of just the simple mixer control names using the scontrols subcommand as an argument:

$ amixer scontrols

Simple mixer control 'Master',0

Simple mixer control 'Master Mono',0

Simple mixer control 'Headphone',0

Simple mixer control '3D Control - Center',0

Simple mixer control '3D Control - Depth',0

Simple mixer control '3D Control - Switch',0

Simple mixer control 'PCM',0

...(Lines snipped)...

To get the setting for a single control, use the get subcommand:

$ amixer get Master

Simple mixer control 'Master',0

 Capabilities: pvolume pswitch

Вы читаете Fedora Linux
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату