Difference between revisions of "Advanced Linux Sound Architecture (Русский)"

From ArchWiki
Jump to navigation Jump to search
m
m (Поьзовательские утилиты)
Line 16: Line 16:
 
ALSA включено в ядро 2.6 и есть во всех пакетах '''kernel26*'''. Если вы компилируете ядро самостоятельно, не забудьте включить ALSA модуль, который вам нужен.
 
ALSA включено в ядро 2.6 и есть во всех пакетах '''kernel26*'''. Если вы компилируете ядро самостоятельно, не забудьте включить ALSA модуль, который вам нужен.
 
Все необходимые модули будут найдены и загружены автоматически с помощью udev. Никакой особой настройки не требуется, если вы не используете ISA карты. '''НИКОГДА''' не используйте <code>alsaconf</code>, если у вас PCI или ISAPNP звуковая карта: строчки, добавленные в modprobe.conf могут сломать автоопределение udev.
 
Все необходимые модули будут найдены и загружены автоматически с помощью udev. Никакой особой настройки не требуется, если вы не используете ISA карты. '''НИКОГДА''' не используйте <code>alsaconf</code>, если у вас PCI или ISAPNP звуковая карта: строчки, добавленные в modprobe.conf могут сломать автоопределение udev.
=== Поьзовательские утилиты ===   
+
=== Пользовательские утилиты ===   
 
* Необходимо для родных ALSA программ и управления:
 
* Необходимо для родных ALSA программ и управления:
 
   
 
   

Revision as of 08:21, 9 March 2007

Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n links end

Этот документ описывает процесс настройки ALSA для ядер версии 2.6. Посмотрите также, как разрешить одновременно проигрывать звук нескольким программам.

Установка

Модули ядра

ALSA включено в ядро 2.6 и есть во всех пакетах kernel26*. Если вы компилируете ядро самостоятельно, не забудьте включить ALSA модуль, который вам нужен. Все необходимые модули будут найдены и загружены автоматически с помощью udev. Никакой особой настройки не требуется, если вы не используете ISA карты. НИКОГДА не используйте alsaconf, если у вас PCI или ISAPNP звуковая карта: строчки, добавленные в modprobe.conf могут сломать автоопределение udev.

Пользовательские утилиты

  • Необходимо для родных ALSA программ и управления:
 # pacman -Sy alsa-lib alsa-utils
  • Рекомендуется, если вы хотите использовать приложения с поддержкой OSS в комбинации с dmix:
 # pacman -S alsa-oss

У всех alsa программ в качестве зависимости есть alsa-lib.

Настройка

Проверка загруженных модулей

Вы можете рассчитывать, что udev автоматически найдёт вашу звуковую карту, включая модули совместимости OSS. Вы можете проверить это с помощью следующей команды:

$ lsmod|grep '^snd'
snd_usb_audio          69696  0 
snd_usb_lib            13504  1 snd_usb_audio
snd_rawmidi            20064  1 snd_usb_lib
snd_hwdep               7044  1 snd_usb_audio
snd_seq_oss            29412  0 
snd_seq_midi_event      6080  1 snd_seq_oss
snd_seq                46220  4 snd_seq_oss,snd_seq_midi_event
snd_seq_device          6796  3 snd_rawmidi,snd_seq_oss,snd_seq
snd_pcm_oss            45216  0 
snd_mixer_oss          15232  1 snd_pcm_oss
snd_intel8x0           27932  0 
snd_ac97_codec         87648  1 snd_intel8x0
snd_ac97_bus            1792  1 snd_ac97_codec
snd_pcm                76296  4 snd_usb_audio,snd_pcm_oss,snd_intel8x0,snd_ac97_codec
snd_timer              19780  2 snd_seq,snd_pcm
snd                    43776  12 snd_usb_audio,snd_rawmidi,snd_hwdep,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer
snd_page_alloc          7944  2 snd_intel8x0,snd_pcm

Если вывод имеет похожий вид, то ваши звуковые модули успешно обнаружились (обратите внимание, что в этом случае, snd_intel8x0 и snd_usb_audio являются драйверами для устройств). Вы также можете проверить каталог /dev/snd на правильные права:

$ ls -l /dev/snd/
total 0
crw-rw----  1 root audio 116,  0 Apr  8 14:17 controlC0
crw-rw----  1 root audio 116, 32 Apr  8 14:17 controlC1
crw-rw----  1 root audio 116, 24 Apr  8 14:17 pcmC0D0c
crw-rw----  1 root audio 116, 16 Apr  8 14:17 pcmC0D0p
crw-rw----  1 root audio 116, 25 Apr  8 14:17 pcmC0D1c
crw-rw----  1 root audio 116, 56 Apr  8 14:17 pcmC1D0c
crw-rw----  1 root audio 116, 48 Apr  8 14:17 pcmC1D0p
crw-rw----  1 root audio 116,  1 Apr  8 14:17 seq
crw-rw----  1 root audio 116, 33 Apr  8 14:17 timer

Если у вас есть хотя бы controlC0 и pcmC0D0p или что-то похожее, то ваши звуковые модули обнаружились и загрузились правильно.

Если это не так, то ваши модули не были обнаружены. Если вы хотите получить помощь на форумах или IRC, пожалуйста, введите вывод команд, использовавшихся выше. Для решения этой ситуации вы можете попробовать загрузить модули вручную:

  • Узнайте имя модуля для вашей звуковой карты: http://www.alsa-project.org/alsa-doc/ Модуль будет иметь префикс 'snd-' (например, 'snd-via82xx').
  • Загрузите модули:
 # modprobe snd-NAME-OF-MODULE
 # modprobe snd-pcm-oss
  • Проверьте файлы в /dev/snd (смотрите выше) и/или что alsamixer или amixer достаточный уровень звука.
  • Добавьте snd-pcm-oss и snd-NAME-OF-MODULE в список MODULES в /etc/rc.conf, чтобы они загрузились в следующий раз.

Выставление звука на каналах и проверка звуковой карты

В этом разделе мы подразумеваем, что вы выполняете команды от суперпользователя. Если вы хотите выполнять эти шаги от пользователя, то перейдите сначала к следующей секции, Настройка прав доступа.

  • Включение звука

Рекомендуется использовать 'alsamixer' для настройки вашего микшера и включения звука на каналах.
ОБРАТИТЕ ВНИМАНИЕ: когда вы используете alsamixer, включите звук нажатием M, а не только повысьте уровень звука.

Вы можете также использовать amixer:

 # amixer set Master 75 unmute
 # amixer set PCM 75 unmute
  • Попробуйте проиграть wav-файл:
 # aplay mywav.wav

Настройка прав

Для того чтобы можно было пользоваться звуковой картой пользователем, проделайте следующие шаги:

  • Добавьте пользователя в группу audio:
# gpasswd -a USERNAME audio
  • Выйдите пользователем из системы и войдите заново.

Восстановление звуковых настроек при загрузке

  • Запустите 'alsactl' один раз, чтобы создать '/etc/asound.state':
alsactl store
  • Отредактируйте '/etc/rc.conf' и добавьте 'alsa' в список демонов, загружающихся при старте системы. Это позволит сохранять настройки микшера при каждом выключении системы и восстанавливать их при загрузке.

Настройка вывода через SPDIF

(от gralves с форумов gentoo)

  • В Gnome Volume Control, во вкладке Options, ищмените IEC958 на PCM. Эта опция может быть включена в настройках.
  • Если у вас не установлен Gnome Volume Control:
    • Отредактируйте файл /etc/asound.state. В нём хранятся alsasound хранит настройки вашего микшера.
    • Найдите строчку вида: 'IEC958 Playback Switch'. Рядом с ней вы найдёте строчку типа value:false. Измените её на value:true
    • Теперь найдите строчку 'IEC958 Playback AC97-SPSA' и измените значение на 0.
    • Перезапустите alsa.

Есть другой способ включить вывод через SPDIF автоматически при загрузке системы (проверено на SoundBlaster Audigy):

  • добавьте следующие строчки в /etc/rc.local:
 # Use COAX-digital output
 amixer set 'IEC958 Optical' 100 unmute
 amixer set 'Audigy Analog/Digital Output Jack' on

Вы можете увидеть имя цифрового выхода вашей карты с помощью:

 amixer scontrols

KDE

  • Запустите KDE:
$ startx
  • Установите предпочитаемый уровень звука (у каждого пользователя сои настройки):
$ alsamixer
  • KDE 3.5. Зайдите в K Menu -> Multimedia -> KMix
    • Выберите Settings > Configure KMix...
    • Выключите опцию "Restore volumes on login"
    • Нажмите OK. Теперь ваш уровень звука будет одинаковым как в командной строке, так и в KDE.

Проблемы

Если у вас всё ещё нет звука

Даже если ваши драйвера установлены корректно, выставлен правильный уровень звука, ничего не выключено, вы можете ничего не слышать! Добавление следующей строчки к /etc/modprobe.conf решает эту проблемы (по крайней мере для модуля via82xx):

options snd-NAME-OF-MODULE ac97_quirk=0