ALSA
Advanced Linux Sound Architecture (ALSA) — Архитектура звуковых драйверов, а также широкий их набор для Linux, призванная сменить OSS и обеспечивающая возможность обмена между приложениями звуковыми данными с гарантируемой предельно низкой задержкой. ALSA поддерживает широкий спектр как любительских, так и профессиональных звуковых интерфейсов (в том числе, многоканальных), а также совместима с OSS API и способна работать с большинством программ написанных только для OSS.
Как установить и настроить ALSA?
Данная статья или раздел ещё не завершены Кто-то посчитал, что статья или раздел ниже не содержит какой-то важной информации или имеет проблемы с вёрсткой/текстом. Указана причина: нужно написать о сборке ALSA из исходников, брать отсюда{{#ifeq: {{{1}}} | nopoint | | . }} |
{{#if: Доработка | }}
В большинстве современных дистрибутивных ядер ALSA является стандартной звуковой подсистемой и, если у вас не установлено какое-нибудь экзотическое аудиоустройство, работает «из коробки».
Если у вас установлена малораспространенная звуковая карта, может оказаться, что в вашем ядре не собран модуль для работы с ней. В этом случае, будет достаточно пересобрать ядро, вместе с требуемым модулем (его название можно узнать в описании вашей звуковой карты по адресу [1]).
Поддерживается ли моя звуковая карта?
Вот тут есть список производителей и моделей карт, а также состояние их поддержки.
Поставил ALSA, а звука нет. Что делать?
По умолчанию после установки ALSA (если ранее она не стояла), все каналы находятся в заглушенном положении (mute). Поэтому запустите alsamixer и снимите mute клавишей m с каналов Master и PCM. Кнопки курсора вверх и вниз позволят установить требуемый уровень звука.
Если звука нет, а у вас карточка от EchoAudio, Emu или некоторых других производителей, при этом в выводе dmesg (пример для EMU) видна ругань вида
firmware: emu/hana.fw not found. Err = -2
то карточка пришла в негодность придётся доустановить прошивку.
В некоторых дистрибутивах пакет alsa-firmware уже есть, для Ubuntu (а также Debian) можно взять в репозиториях Medibuntu или KX-Studio.
Как сохранить настройки микшера при использовании ALSA? Как сделать, чтобы они восстанавливались?
Для сохранения настроек выполните команду
user@linux# /usr/sbin/alsactl store
А чтобы они восстанавливались (и записывались) нужно, чтобы в инит-скриптах вашего дистрибутива стартовал демон alsasound или alsa-utils, в зависимости от дистрибутива.
У меня несколько звуковых карт, как задать карту по умолчанию?
Сначала смотрите какие карты у вас обнаружились ядром (файл /proc/asound/cards):
~ :$cat /proc/asound/cards 0 [Audigy2 ]: Audigy2 - SB Audigy 2 [SB0240] SB Audigy 2 [SB0240] (rev.4, serial:0x10071102) at 0xdc00, irq 16 1 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xf9e78000 irq 23
Например, у меня установлены 2 карты, одна из которых называется Audigy2, а вторая - NVidia Далее Вам нужно открыть в редакторе /etc/asound.conf (глобальные настройки), либо ~/.asoundrc (настройки пользователя).
Задаете устройство по умолчанию (допустим, что я хочу использовать NVidia):
pcm.!default { type hw card NVidia } ctl.!default { type hw card NVidia }
Всё, если Вы редактировали ~/.asoundrc, то достаточно перезапустить приложения (или перелогиниться), в случае asound.conf может потребоваться перезагрузка.
Где в Linux эквалайзер? Как мне поднять или прибрать высокие/низкие частоты для всех аудио-приложений?
Этот вопрос задается регулярно. Наиболее простой способ, если вы пользуетесь ALSA, описан здесь. В звуковых картах Creative Labs (семейства Live!, Audigy, X-Fi) встроен двухполосный аппаратный эквалайзер, но пользоваться им не рекомендуется из-за ощутимого ухудшения звучания при его использовании.
Приложение полностью занимает звуковую карту, что делать?
Данная статья или раздел ещё не завершены Кто-то посчитал, что статья или раздел ниже не содержит какой-то важной информации или имеет проблемы с вёрсткой/текстом. Указана причина: начиная с какой-то-там версии ALSA dmix работает по умолчанию. ИМХО, этот вопрос устарел, так как arts и esound уже давно не используются. Но флеш местами всё ещё глючит{{#ifeq: {{{1}}} | nopoint | | . }} |
{{#if: Доработка | }}
Как сделать программное микширование с ALSA на картах, не поддерживающих аппаратное?
Начиная с версии 1.0.9 ALSA сама определяет способна ли карта аппаратно микшировать потоки и если нет, включает dmix. На всякий случай стоит вспомнить как это настраивается вручную.
pcm.!default { type plug slave.pcm "dmixer" } pcm.dsp0 { type plug slave.pcm "dmixer" } pcm.dmixer { type dmix ipc_key 1024 slave { pcm "hw:0,0" period_time 0 period_size 1024 buffer_size 8192 rate 44100 } bindings { 0 0 1 1 } } ctl.mixer0 { type hw card 0 }
Лучше всего добавить это в ~/.asound.conf
Что за ошибка «FATAL: Error running install command for sound_slot_0»?
Есть три варианта — простой, сложный и очень сложный.
Простой
В /etc/modprobe.d/modprobe.conf не хватает упоминания snd-slot-0:
alias snd-slot-0 snd-card-0
Сложный
Невозможно загрузить модуль звуковой карты и как следствие, нельзя к нему обратиться. Может перепутано имя, может карта неплотно стоит в слоте (отвалилась, такое бывает).
Очень сложный
Вы работаете в дистрибутиве с поддержкой SELinux (например, Fedora) и при этом он включен. Либо отключите его, либо настраивайте разрешения.
Что делать, если ALSA не видит часть железа?
Если часть железа работает, основные колонки например, а часть не работает, например наушники, сабвуфер или микрофон, то проблема может быть в сотрудничестве Алсы и вашей звуковой карты. Часто помогает это решение.
Что почитать по конфигурированию ALSA и .asoundrc?
Unofficial wiki, там же есть секция Other documentation, со ссылками на дополнительную информацию.