Linux настройка звука alsa

Обновлено: 04.07.2024

Эти пакеты входят в дистрибутивы Astra Linux. В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5) требуется ручная установка, в более поздних очередных обновелениях пакеты устанавливаются автоматически при установке ОС.

При этом в современных компьютерах, в большинстве случаев, "из коробки" имеется два варианта вывода звука:

  • аналоговый звук через аналоговый кодек, обычно интегрированный в материнскую плату;
  • цифровой звук через порт HDMI/Display Port видеокарты (как интегрированной в материнскую плату, так и дополнительной, если таковая имеется).
    Так как интерфейсы HDMI и Display Port поддерживают передачу и видео и звука, большинство современных видеокарт умеют передавать звук в видеопотоке, только бы подключенное устройство умело его воспроизводить.

Основным инструментом для работы с pulseaudio является графический инструмент pavucontrol.
Инструмент устанавливается автоматически при установке ОС и доступен для запуска из меню ("Пуск" - "Мультимедиа" - "Регулятор громкости PulseAudio) или из командной строки:

Инструмент позволяет выбрать и настроить нужное устройство для вывода звука в графическом режиме (Закладка "Конфигурация" - "Профиль"):


Файлы конфигурации alsa

Файлы конфигурации описаны в таблице в порядке их применения:

Основной файл конфигурации.
Обрабатывается первым при запуске системы или при подключении нового устройства.
Отвечает за расположение всех остальных файлов конфигурации

Определение звуковой карты

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

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

Она покажет примерно такой вывод:

К примеру мы хотим, чтобы первой звуковой картой определялась карта:

Тогда создать файл

  • /etc/asound.conf (для общесистемной настройки)
  • или в файле пользователя .asoundrc (для индивидуальной настройки )

со следующим содержимым:

pcm.!default type hw
card 2
device 0
>

ctl.!default type hw
card 2
device 0
>

Альтернативный вариант определения списка карт (однако, этот способ не позволит определить устройство внутри карты):

0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xfb400000 irq 39
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xfb080000 irq 17

Тогда содержание /etc/asound.conf или .asoundrc:

pcm.!default type hw
card PCH
>

ctl.!default type hw
card PCH
>

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

Выполнить aplay -l в котором видно несколько устройств HDMI:

Опытным путём надо подобрать device.
Например, проверив содержимое файлов *.eld в каталогах /proc/asoud/card*/ (в этих файлах хранится информация, которую сообщило о себе устройство, подключенное через HDMI/Display Port):

Пример информации, когда никакого устройства нет:

Пример информации при наличии подключенного устройства

monitor_present 1
eld_valid 1
monitor_name TX-SR606
connection_type HDMI
eld_version [0x2] CEA-861D or below
edid_version [0x3] CEA-861-B, C or D
manufacture_id 0xcb3d
product_id 0x863
port_id 0x0
support_hdcp 0
support_ai 1
audio_sync_delay 0
speakers [0x4f] FL/FR LFE FC RL/RR RLC/RRC
sad_count 8
sad0_coding_type [0x1]
LPCM sad0_channels 2
sad0_rates [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
sad0_bits [0xe0000] 16 20 24
sad1_coding_type [0x1] LPCM
sad1_channels 8
sad1_rates [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
sad1_bits [0xe0000] 16 20 24
sad2_coding_type [0x2] AC-3
sad2_channels 8 sad2_rates [0xe0] 32000 44100 48000
sad2_max_bitrate 640000
sad3_coding_type [0x7] DTS
sad3_channels 8 sad3_rates [0xc0] 44100 48000
sad3_max_bitrate 1536000
sad4_coding_type [0x9] DSD (One Bit Audio)
sad4_channels 6
sad4_rates [0x40] 44100
sad5_coding_type [0xa] E-AC-3/DD+ (Dolby Digital Plus)
sad5_channels 8
sad5_rates [0xc0] 44100 48000
sad6_coding_type [0xb] DTS-HD
sad6_channels 8 sad6_rates [0x1ec0] 44100 48000 88200 96000 176400 192000
sad7_coding_type [0xc] MLP (Dolby TrueHD)
sad7_channels 8 sad7_rates [0x1480] 48000 96000 192000

Пакет alsa-utils составляет неотъемлемую часть ALSA и содержит множество крайне полезных программ, в том числе и сценарий инициализации ALSA. Поэтому мы настоятельно советуем вам установить alsa-utils .

Листинг 7. Установка alsa-utils

Примечание

Eсли вы включили поддержку ALSA в вашем ядре, а не собрали её в качестве модулей, пожалуйста, перейдите в раздел сценарий инициализации ALSA. Всё, что осталось сделать всем остальным, это настроить ALSA. Сделать это очень просто благодаря утилите, входящей в состав alsa-utils — alsaconf .

3.2. Настройка

Последние версии udev (>=udev-103) в некоторой степени предоставляют автоматическое конфигурирование вашей аудио карты на уровне ядра. По возможности старайтесь полагаться на автоматическую настройку и позвольте ядру настроить вашу звуковую карту. В противном случае, чтобы настроить карту, используйте alsaconf , как это показано ниже.

Примечание

Пожалуйста, завершите все программы, которые могут обратиться к звуковой карте во время работы alsaconf .

Чтобы настроить вашу звуковую карту просто наберите alsaconf в командной оболочке с правами root.

Листинг 8. Запуск alsaconf

Вы увидите изящный управляемый с помощью меню интерфейс программы, которая автоматически исследует ваши устройства и попробует найти вашу звуковую карту. Вас попросят выбрать вашу звуковую карту из списка. Как только это будет сделано, вас спросят разрешения автоматически сделать необходимые изменения в /etc/modules.d/alsa . После этого программа изменит настройки громкости на оптимальный уровень, выполнит update-modules и запустит службу /etc/init.d/alsasound . Как только alsaconf завершит работу, вы сможете продолжить с настройки сценария инициализации ALSA.

3.3. Сценарий инициализации ALSA

Мы почти завершили настройку. Вне зависимости от выбранного вами способа установки ALSA, вам понадобится что-то, что будет загружать модули или инициализировать ALSA и восстанавливать настройки громкости при загрузке системы. Сценарий инициализации ALSA, называемый alsasound , сделает всё это для вас. Добавьте его в загрузочный уровень исполнения.

Листинг 9. Добавление ALSA в загрузочный уровень исполнения

Теперь проверьте файл /etc/conf.d/alsasound и убедитесь, что переменная SAVE_ON_STOP установлена в значение yes, тогда ваши настройки звука при выключении системы будут сохраняться.

3.4. Группа audio

Перед тем как начать проверку звука, необходимо сделать одну последнюю важную вещь. Главное правило в операционных системах *nix гласит: «не запускай ничего с правами root, если этого не требуется». И в данной ситуации это правило тоже применимо ;) Каким образом? Пожалуй, большую часть времени вы будете работать под учётной записью пользователя, при этом слушать музыку или иметь доступ к звуковой карте. Чтобы вы могли это делать, вы должны быть в группе audio. Тут то мы и добавим пользователей в эту группу, чтобы у них не было проблем с доступом к аудио устройствам. Мы воспользуемся gpasswd , так что вы должны иметь права root, чтобы сделать это.

Листинг 10. Добавление пользователей в группу audio

3.5. Проверка громкости!

Теперь все настройки и необходимые предпосылки выполнены, так что давайте заставим ALSA работать. Если вы запускали утилиту alsaconf , то можете пропустить этот шаг, так как alsaconf уже всё сделал за вас.

Листинг 11. Запуск сервиса

Теперь мы позаботились обо всём, что может быть необходимым, нам нужно проверить громкость, так как в определённых случаях звук выключен. Для этого мы воспользуемся alsamixer .

Листинг 12. Запуск alsamixer

Важно

Если у вас проблемы с запуском alsamixer и вы получаете ошибки, подобные этой: «alsamixer: function snd_ctl_open failed for default: No such file or directory», то, скорее всего, проблема в том, как демон udev инициализировал устройства. Выполните killall udevd; udevstart для перезагрузки устройств в /dev и попробуйте снова alsamixer . Это должно решить проблему.

Вот так может выглядеть микшер ALSA при первом запуске. Обратите внимание, что уровни каналов Master и PCM занижены и что под ними буквы MM. Это означает, что они выключены. Если вы попробуете что-нибудь проиграть, в то время пока alsamixer в таком состоянии, то вы ничего не услышите из ваших динамиков.


Главное окно микшера ALSA, каналы выключены

Для начала включим каналы и установим необходимые уровни громкости.

Внимание

Оба канала Master и PCM должны быть включены и установлены в слышимый уровень громкости, если вы хотите услышать что-нибудь из ваших динамиков.

Для перемещения между каналами используйте клавиши влево и вправо. ( <- и -> ).

Для того чтобы выключить/включить канал, например Master, выберите его и нажмите клавишу m .

Чтобы увеличить или уменьшить уровень громкости, используйте клавиши вверх и вниз.

Примечание

Будьте осторожны при установке значений для Bass и Treble. Обычно для обоих оптимально значение 50. Слишком высокие значения Bass могут вызвать дребезжание неспособных воспроизводить глубокие басы динамиков.

После того как вы всё сделаете, ваш микшер ALSA должен выглядеть, так, как это показано ниже. Заметьте, что вместо MM стоит 00 и уровни громкости в оптимальном значении.


Микшер ALSA готов зажигать

3.6. Проверка звука!

Наконец-то. Какие-нибудь звуки. Если всё прошло успешно, то теперь вы сможете услышать музыку. Быстрый способ проверить — это воспользоваться консольной командой, наподобие media-sound/madplay . Вы также можете использовать что-нибудь более известное, например, mpg123 . Если вы поклонник формата OGG, используйте программу ogg123 из пакета media-sound/vorbis-tools . Используйте любой удобный для вас плеер. Как всегда, emerge — всё что вам нужно.


Для начала более подробно о сути задачи: есть ноутбук Asus N55 с Kubuntu 17.10 на борту. Нужно добиться той же конфигурации, которую можно получить на Windows:

  • Без подключения сабвуфера драйвер работает в режиме 2.0
  • При подключении сабвуфера драйвер переключается в режим 2.1. При этом переключении к каналам применяются частотные фильтры — НЧ для сабвуфера и ВЧ для колонок
  • При подключении наушников, вывод звука переключается на них, вывод на колонки/сабвуфер приостанавливается
  • При необходимости низких задержек можно с помощью выбора другого драйвера перейти в режим, обеспечивающий монопольный захват звуковой карты

Сразу после установки получаем нерабочий сабвуфер и нерабочие наушники.
В результате моих опытов мне удалось добиться следующего состояния системы:

  • Драйвер работает в режиме 2.1
  • При подключении сабвуфера ничего не изменяется
  • При подключении наушников, вывод звука переключается на них, вывод на колонки/сабвуфер приостанавливается, но фильтры продолжают работать и в наушники идут только ВЧ
  • При необходимости низких задержек можно адресоваться к карте через ALSA, но в этом режиме не работает сабвуфер, фильтры. Но работает переключение на наушники

Для знакомства с LMMS(с которой как оказалось нормально работать нельзя, но это отдельная тема) этого в общем-то хватает.
Если вы тоже добрались до этого состояния, то ничего нового этой статьей я вам не расскажу.

Вы когда-нибудь задумывались о том, как устроена звуковая система Linux? Вот и я нет — обычно звук либо был не нужен, либо как-то работал, колонки играли — ни о каких фокусах подключения сабвуфера или наушников речи не было.
Похоже, теперь самое время узнать об этом немного больше. Гугление показало следующую картину:


    — это компонент, обеспечивающий взаимодействие звуковых железок с ядром. Обеспечивает самый прямой доступ к устройству из разумных вариантов, но при этом доступ этот монопольный — включить песню в VLC и открыть видео в браузере, увы, не получится.
  • Для этих целей как раз и нужен PulseAudio — это sound-сервер, занимающийся маршрутизацией звуковых потоков. Именно он будет отвечать за микширование потоков звука из разных приложений при одновременном использовании. Ценой за такое удобство является дополнительная задержка звукового потока.
  • Существует еще JACK — аналог PulseAudio, позиционирующийся как "профессиональный" sound-сервер. Обещает крутые возможности по маршрутизации и минимальную задержку при диспетчеризации потоков.

Мало кто говорит, что PulseAudio де-факто является стандартом для интеграции звука, по крайней мере в Ubuntu. Практически любой софт, который издает звуки, будет с большой долей вероятности пользоваться PulseAudio API. FF, например, для поддержки JACK надо отдельно собирать.
Поэтому удалять PulseAudio не стоит, если вы не уверены, что все чем вы будете пользоваться, умеет работать с JACK. Видимо, поэтому существует еще вариант интеграции Jack-PulseAudio. Но от этого варианта я отказался, т.к. для работы в том софте, где требуются низкие задержки, меня устраивает монопольный доступ через ALSA(под Windows это работает так же — там, где нужна низкая задержка, запрашивается монопольный доступ). Возможно, когда дело дойдет до установки какого-нибудь Ardour, мне придется вернуться к этому варианту.

Так, ну хорошо, JACK не нужен. Выходит, чтобы все заработало, мне надо настроить ALSA-компонент для своей карточки и интеграцию его с PulseAudio

PulseAudio

Тут нам из коробки предлагают вот такую UI консоль


Мне кажется, к такому инструменту пояснения излишни. После применения настроек вы сразу сможете слышать изменения, так что пробуйте.
Еще amarao советует обратить внимание на pactl /pacmd. Если я доберусь — напишу, что там к чему с этими утилитами

Диагностика ALSA

Первым делом понадобятся хоть какие-то инструменты для диагностики — это пакет alsa-utils
sudo apt install alsa-utils
Теперь посмотрим, как видит наше оборудование система
aplay -l


Кроме того, настройки надо проверять. Для этих целей обнаружилась утилита speaker-test


вызов speaker-test --help покажет, что умеет утилита, но мне особенно интересна конфигурация
speaker-test -Dplughw:1,0 -c4

  • -D — id устройства. 1,0 — это индексы устройства и подустройства, их мы видели выше в выводе aplay
    а вот структура текстовой части описана тут
  • -c — количество каналов на которые будет выведен тест
    В моем случае первые 2 канала работают хорошо, а вот дальше интересно — 3й канал LFO не звучит, но зато звучит 4й канал. Такое ощущение, что LFO настроен как… стерео. Мне кажется, это часть моей проблемы.

Настройка ALSA

Тут и тут советуют поизучать dmix — это модуль микшера каналов в ALSA — буду смотреть

alsamixer

alsamixer — псевдографический интерфейс микшера. Половина советов по настройке ограничивается этой утилитой. И действительно, именно эта утилита часто покажет, когда канал неожиданно замьютился или у него сбросился уровень громкости.


Но настройка в микшере результата не дала.

hdajacksensetest

Следующая полезная утилита — hdajacksensetest. Показывает какие разъемы детектируют подключение внешних устройств.


Ок, я вижу, что мой внешний сабвуфер подключен на порт 0x1a.
Давайте попробуем найти как можно объяснить карте, куда выводить LFO.

hdajackretask

Большинство советов по настройке маппинга указывают на утилиту hdajackretask:


Тут вроде бы все понятно — есть порты, есть маппинг. К сожалению, никакие манипуляции с портом 0x1a к успеху не привели.
Может, после настройки надо явно перезагружать сервисы?
sudo alsa force-reload
Нет, смотрим дальше.

HDAAnalyzer

Для настройки маппинга есть еще одна утилита:
скачать ее можно в виде python-скрипта(. ) вот тут.


Выглядит эта штука как прокачанный вариант hdajackretask — она даже умеет строить схему маршрутизации портов графически. Но эксперименты с этой штукой тоже не привели ни к чему, кроме полной потери звука.
Никакого гайда по настройке я не нашел, поэтому пробовал методом проб и ошибок.

Правка конфигов

PulseAudio

/usr/share/pulseaudio
в папке alsa-mixer тут лежат конфиги. Т.к. Pulseaudio более-менее работает тут я ничего трогать не стал.
/etc/pulse/daemon.conf
Как я понял, это настройки службы pulseaudio — один из немногих конфигов, изменения в котором на что-то влияют. именно тут настройками:
enable-lfe-remixing = yes
lfe-crossover-freq = 200
я заставил звучать свой сабвуфер из Pulseaudio так, как он должен. Для lfe-crossover-freq 200 — это очевидно частота среза в герцах.
Но тут же становится очевидно, что настроить нечто более сложное(при подключении наушников прекращать отправлять бас на сабвуфер) в этом конфиге возможности нет.

/usr/share/alsa/*
Тут лежит несколько shell-скриптов, в т.ч. alsa-info.sh, который может быть полезен при подготовке дефекта в трекере и т.д.
а в папке pcm какие-то конфиги, разобраться в которых мне не удалось:

Трогать их я пока не решился.
/etc/modprobe.d/alsa-base.conf — второй доказанно полезный конфиг. Вот эта строчка, дописанная в низ конфига, реально заставила работать наушники под ALSA:
options snd-hda-intel model=auto,auto probe_mask=1
Про настройку этого конфига написано довольно много. Одна из его целей, как я понял — сопоставить устройствам кодеки(model). Кодеки это… какой-то пресет маппингов… Есть табличка (копия есть тут). Думаю, в большинстве случаев для стандартных конфигураций этого действительно достаточно.
Там описаны модели для разных контроллеров. Но если для вас они не срабатывают, то вам рекомендуют добавить свою конфигурацию.
Звучит классно, но тут я должен сделать 2 ремарки:

  • гайда как сделать свою конфигурацию — что конфигурить, куда сохранять, коммитить и т.д. я не нашел.
  • После изменения настроек в alsa-base.conf нужно перезагружать ОС. Без перезагрузки никакие sudo alsa force-reload и даже хардкорный echo 1 | sudo tee /sys/class/sound/hwC1D0/reconfig не заставляют ALSA перечитать кодек устройства.

Кстати, в /sys/class/sound/hwC1D0/ — лежат файлы уже непосредственно устройства, т.е. как я понял hdajackretask работает именно с этими файлами. Тут тоже, наверное, можно сделать что-то полезное, если знать куда что писать.

Общий вывод, который я могу сделать по результатам проделанной работы: в целом видно, что если GUI, например, сообщество более-менее занимается, то звуковая подсистема явно остается за бортом.
На сегодняшний день возможности использования этой подсистемы не выдерживают никакой конкуренции с аналогами в других популярных ОС.
Такие досадные проблемы, как неработающий сабвуфер или наушники, или отсутствие НЧ-фильтра для сабвуфера, заставляют еще раз подумать, прежде чем отказываться от предустановленного софта. Ведь никому не хочется получать от своей железки меньше отдачи из-за кривостей ОС.

ALSA (Advanced Linux Sound Architecture) это одновременно и проект и программное обеспечение. Проект был создан, так как архитектура OSS в некоторых отношениях является технически слабой, и свободная версия OSS содержит недостатки в некоторых драйверах, а драйверы без недостатков доступны только в коммерческих версиях. В течении нескольких лет программное обеспечение ALSA разрабатывалось отдельно от Linux. Драйверы были добавлены в базу кода Linux во время разработки серий ядра 2.5 и стали стандартной системой драйвера звука в ядре Linux 2.6..

ALSA это не только набор драйверов звуковый драйверов; это также это и библиотека с собственными расширениями API, которая позволяет приложениям взаимодействовать с последними возможностями звуковых карточек (т.н. множество звуковых каналов, Dolby AC3, и т.д.). ALSA предоставляет эффективную поддержку для множества приложений, также полностью построена из модулей, поддерживает SMP и thread-safe.

Приложения, написанные для OSS, работают с ALSA, либо через эмуляцию пространства пользователя (используя программный загрузчик aoss), либо через эмуляцию пространства ядра (snd-*-oss драйверы). Но, Вы не можете одновременно использовать драйверы и ALSA, и OSS.

Примечание: название драйверов ALSA всегда начинается с snd- .

Пакеты

Загрузка модулей

Пакет alsa-base сделан по принципу "просто" работает. Пакет alsa-base не загружает модули; вместо этого, udev обнаруживает звуковые устройства и загружает подходящие ALSA модули и затем alsa-base заботится о настройке использования уровней микшера.

Сейчас вы можете посмотреть на матрицу звуковых плат ALSA для поиска названия нужного драйвера, который будет использоваться чипсетом вашей звуковой карточки.

ALSA и OSS

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

Тестирование

Для тестирования драйвера, используйте aplay, mplay или, например, xmms.

Для тестирования midi, вы можете использовать aplaymidi.

Совместное использование карты несколькими процессами

Часто требуется использовать звуковую карточку совместно несколькими процессами, работающими одновременно. Этого требует возможность смешивать вывод звука от нескольких процессов в один поток.

Если Ваша дешёвая звуковая карта не поддерживает аппаратное смешивание, то можно попробовать плагин dmix. Это автоматически настраивается с версии libasound2 1.0.10-2; в предыдущих версиях, взгляните на /usr/share/doc/libasound2/examples/asound.conf_dmix, чтобы рассмотреть, как включить DMIX в файле /etc/asound.conf (для всех пользователей) или

.asoundrc (для Вашего пользователя).

Пример .asoundrc для современных ноутбуков, которые имеют один HDMI и простую звуковую карту в the wrong order would be (используйте сначала aplay -l чтобы получить имена ваших карт):

Альтернативный метод

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

2. Откройте скачанный файл, распакуйте его куда-нибудь (для примера, ваша домашняя директория), откройте терминал от пользователя root, и скомпилируйте это как обычно:

1. Удостоверьтесь, что у Вас необходимые средства для сборки (gcc, make, build-essential, linux-headers для Вашего ядра, и т.д.) уже установлены, прежде, чем выполнять скрипт установки, описанный выше.

2. Если вы обнаружите ошибки, прочтите файл INSTALL и внесите соответствующие изменения в нужных файлах конфигурации.

Поиск и устранение неисправностей

Что бы увидеть, какие индексы были присвоены картам, выполните следующие:

Первая звуковая карточка, найденная ALSA, обычно имеет индекс 0 и, таким образом, обычно является звуковой карточкой 'по умолчанию'. If you are unlucky then the first sound card found is one that it not suitable for playing system sounds. (However an error such as "Unknown PCM default" when playing a sound occurs if the user is not a member of the 'audio' group - run "sudo adduser <username> audio", and then "newgrp" as the user)

1. Принудительно загружаем модули звуковых карт в нужном порядке. Для этого добавляем в файл настроек модулей ядра /etc/modprobe.d/sound новые строки:

Эта настройка принудительно назначит звуковую карту Trident аудиоустройством по-умолчанию (card 0) и USB микрофон card 1.

2. Поменять карту по умолчанию отредактировав файл /etc/asound.conf или

Does rebooting bypass BIOS and GRUB menu? This could be caused by kexec-tools. It allows the bypass of BIOS during rebooting and prevent proper initialization of various devices. As root, edit file /etc/default/kexec and update LOAD_KEXEC to:

This will allow your BIOS to properly initialize sound and other devices during every reboot.

ALSA (Advanced Linux Sound Architecture) – архитектура звуковых драйверов, обеспечивающая поддержку множества звуковых карт. Главными особенностями ALSA являются:

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

Обновление ALSA

Если у вас возникают какие-либо проблемы в работе звуковой подсистемы попробуйте обновить ALSA из PPA, поддерживаемого Ubuntu Audio Development Team.

Сборка, установка и конфигурирование ALSA

При решении проблем со звуком прибегайте к этой части статьи в последнюю очередь!

Все дальнейшие действия выполняются в терминале. Все команды рекомендуется вводить по одной, чтобы отслеживать процесс на возможные ошибки. Продолжать сборку при возникновении ошибки бессмысленно. Если не можете выяснить ее причину обратитесь на форум.

Для начала следует установить необходимые пакеты для сборки ПО из исходных текстов:

Установка этих пакетов потянет за собой около 400МБ траффика. Выполнять дальнейшие инструкции без их установки бессмысленно.

Скачиваем исходные коды ALSA с официального сайта, желательно самые последние (на момент последнего обновления статьи 29 Января 2012г. это была версия 1.0.25) :

Поддержка Alsa версий выше 1.0.23 есть в ядрах версий 2.6.38 и выше. Сборка на старом ядре в результате приведет к тому, что Alsa не будет распознавать звуковые карты. Последние сборки ядра можно скачать отсюда.

Собираем и устанавливаем alsa-driver:

Собираем и устанавливаем alsa-lib:

Собираем и устанавливаем alsa-utils:

Если при компиляции alsa-utils выдает ошибку вроде такой:

то нужно установить пакет gettext :

Внимательно смотрите чтобы сборка alsa-utils прошла без ошибок! На некоторых компьютерах сборка не проходит. Если ошибка всеже есть, скачиваем готовый пакет по ссылкам:

Собираем и устанавливаем alsa-plugins:

FIXME

Судя по багу 29597 не стоит использовать alsaconf так как он нарушает работу других скриптов настройки.

Выбираем нужную звуковую карту, нажимаем «ок» и на последующие вопросы отвечаем всегда «Да/Y»:

Начиная с версии 1.0.24 alsaconf нужно брать в папке alsa-utils/alsaconf:

Перезаружаем систему и настраиваем громкость вывода звука, ставим все на максимум (кроме PC Beep):

Если после обновления ядра пропал или неправильно воспроизводится звук, нужно проделать все действия заново.

Возможные проблемы и их решение

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

Откройте в файл /etc/modprobe.d/alsa-base.conf в текстовом редакторе:

Добавьте в конце строчку

с одним из значений:

Чтобы узнать какое именно значение вам нужно, вводим команду в терминале:

В выводе будут строчки с информацией о чипе наподобие этих:

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

Читайте также: