ALSA (Russian)
From ArchWiki
i18n |
---|
Русский |
English |
Deutsch |
Slovensky |
中文(简体) |
Рolski |
עברית |
Этот документ описывает процесс настройки ALSA для ядер версии 2.6. Посмотрите также, как разрешить одновременно проигрывать звук нескольким программам.
Contents |
Установка
Модули ядра
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-NAME-OF-MODULE и snd-pcm-oss в список MODULES в /etc/rc.conf, чтобы они загрузились в следующий раз (удостоверьтесь, что snd-NAME-OF-MODULE находится перед snd-pcm-oss).
Выставление звука на каналах и проверка звуковой карты
В этом разделе мы подразумеваем, что вы выполняете команды от суперпользователя. Если вы хотите выполнять эти шаги от пользователя, то перейдите сначала к следующей секции, Настройка прав доступа.
- Включение звука
Рекомендуется использовать 'alsamixer' для настройки вашего микшера и включения звука на каналах.
ОБРАТИТЕ ВНИМАНИЕ: когда вы используете alsamixer, включите звук нажатием M, а не только повысьте уровень звука.
ОБРАТИТЕ ВНИМАНИЕ: при использовании amixer для выставления уровня громкости следует использовать знак процента %. amixer понимает знак процента (%), а не числа.
# amixer set Master 90% unmute # amixer set PCM 85% unmute
- Попробуйте проиграть wav-файл:
# aplay mywav.wav
ОБРАТИТЕ ВНИМАНИЕ: на некоторых карточках (как минимум, на Soundblaster Audigy LS) требуется отключить или заглушить цифровой выход, чтобы слушать аналоговый звук.
Настройка прав
Для того чтобы можно было пользоваться звуковой картой пользователем, проделайте следующие шаги:
- Добавьте пользователя в группу 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
Плохое качество звука
Если качество звука у вас плохое, можете попробовать выставить такой уровень PCM (в alsamixer), чтобы gain был равен 0.