Звуковая система Linux. Драйверы, конфигурации, настройки.

nid#34

Реклама

Звуковая система операционной системы GNU/Linux, так же как и другие её (под-)системы, построена по модульному принципу. Её основой является ALSA ("Advanced Linux Sound Architecture" - англ. "продвинутая звуковая архитектура Linux") - набор инструментов для воспроизведения цифрового звука в GNU/Linux.

Содержание

ALSA - основная звуковая подсистема ОС Linux

Звуковая архитектура Linux (ALSA) поддерживает горячее подключение, автоматическую конфигурацию и использование до 9-ти многоканальных звуковых устройств на одном компьютере, обработку сигналов с малой временной задержкой (для аудио-записи и обработки) и работу с MIDI. ALSA содержит в себе драйверы аудио-оборудования (модули ядра Linux, "snd_*"), системную службу воспроизведения звука (asound), её плагины-расширения (downmix, softvol и т.п.), базовые, консольные проигрыватели (программа aplay), программы для записи звука (arecord) и звуковой микшер (программа alsamixer).

ALSA поддерживает широкий спектр звукового оборудования, включая различные встроенные (Intel High Defenition Audio в т.ч.), PCI и PCMCIA, и внешние, USB и Firewire, компьютерные аудио-карты, MIDI-клавиатуры таких производителей как RME, Edirol/Roland, M-Audio, ESI, Terratec, Berhinger, Creative (E-Mu) и др. Более подробную информацию о поддерживаемом ALSA оборудовании смотрите по адресам, alsa-project.org (англ. язык), ffado.org (для FireWire, англ.) и linux-sound.org (англ.)

Большинство современных развитых мультимедиа-проигрывателей для GNU/Linux, включая системные для рабочих столов (GStreamer, Phonon и т.п.) и сторонние, такие как Adobe Flash Player, способны самостоятельно работать с ALSA. Однако, для смешивания аудио-потоков, поступающих одновременно от разных программ, и их неразрывного перенаправления (с необходимой адаптацией) на различные подключаемые локально (USB, FieeWire и т.п.) или через сеть аудио-устройства в большинстве дистрибутивов по-умолчанию используется программный аудио-сервер Pulseaudio, а для смешивания звуков с низкой временной задержкой ("low latency") используется JACK.


Работа мультимедийных программ непосредственно с устройствами ALSA (без посредников в виде Pulseaudio или JACK, например) положительно сказывается на качестве воспроизведения звука, т.к. декодированный программой сигнал попадает на аудио-карту без искажений и преобразований (при условии, что таковые не делаются самой программой-проигрывателем). Единственным серьёзным неудобством прямой работы с ALSA становится, в большинстве случаев, блокировка той аудио-карты, которую задействует используемая программа.


ALSA была создана Ярославом Кисела (Jaroslav Kysela), ныне сотрудником компании Red Hat, как замена OSS ("Open Sound System", англ. "Открытая Звуковая Система") в 1998 году и в 2002-ом была включена в ядро Linux версии 2.5.4.

Цифровые звуковые серверы Linux - PulseAudio и JAC

Для программного смешивания звуков в GNU/Linux были созданы звуковые сервера PulseAudio и JACK. PulseAudio - для смешивания, контроля уровня громкости и неразрывного перенаправления звуковых сигналов от различных программ на различные сетевые и локальные аудио-устройства в режиме реального времени; JACK - для смешивания цифровых звуковых сигналов с малой временной задержкой ("latency") и их обработки.

Звуковой сервер PulseAudio

PulseAudio был создан группой программистов, работавших по заказу нескольких компаний (подробнее тут), для упрощения использования различного звукового оборудования в повседневной эксплуатации - с одной стороны, и с целью создания сетевой звуковой системы - с другой. Результатом стало создание звукового сервера, способного принимать сигналы как от локально запущенных программ и подключённых звуковых устройств, так и по сети, смешивать их, контролировать и передавать другим программам, сетевым серверам или непосредственно ALSA, и всё это без прерывания воспроизведения.

В зависимости от настроек (и стандартно для наиболее популярных дистрибутивов GNU/Linux сегодня) PulseAudio может занимать место аудио-карты по-умолчанию ("default") при помощи специального плагина (расширения) для ALSA (пакет "alsa-plugins-pulse" в openSUSE Linux).

В состав дистрибутива PulseAudio входит ряд консольных и графических (GTK) программ для управления им: пакет "pulseaudio-utils" с консольными инструментами, программы pavucontrol ("PulseAudio Volume Control", англ. "Контроль громкости PulseAudio") и pavumeter ("PulseAudio Volume Meter", англ."Измеритель громкости PulseAudio"), paprefs ("PulseAudio Preferences", англ. "Настройки PulseAudio"), paman ("PulseAudio Manager", англ. "Менеджер PulseAudio") и padevchooser ("PulseAudio Device Chooser", иконка в трэй, клик по которой вызывает функциональное меню быстрой настройки PulseAudio).

sudo zypper in pulseaudio-utils pavucontrol pavumeter paprefs paman padevshooser
Установка pavucontrol, pavumeter, paprefs, paman, padevshooser в openSUSE.

Поддержка работы со звуковым сервером PulseAudio в той или иной степени характерна для наиболее популярных рабочих столов GNU/Linux KDE и Gnome: звуковой микшер Gnome, представленный на иллюстрации, имеет и базовые функции управления PulseAudio, а Phonon (стандартный проигрыватель KDE4) умеет обращаться к различным устройствам не только напрямую, но и через PulseAudio, считывая список аудио-оборудования из его динамической конфигурации. Большинство мультимедиа-проигрывателей для GNU/Linux (Audacious, QMMP и т.п.) так же поддерживают непосредственную работу с PulseAudio через встроенные модули.


При вышеописанной конфигурации становится возможным неразрывно переключать передачу на разные аудио-интерфейсы аудио-потоков даже от тех программ, которые не имеют настроек выбора аудио-выхода вовсе (Adobe Flash Player, например).


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


Отключить использование PulseAudio в качестве основного системного микшера в openSUSE Linux можно при помощи модуля конфигурации звуковых устройств программного пакета YaST (команда "yast2 sound" или "YaST > Звук"). В других дистрибутивах для этого может понадобиться удалить PulseAudio и все его компоненты (чтобы определить установленные, воспользуйтесь поиском по программной базе данных). Отключение PulseAudio, однако, может повлечь за собой неработоспособность некоторых мультимедийных функций рабочего стола Gnome, который в большинстве дистрибутивов предоставляется со встроенной поддержкой PulseAudio и, по сути, требует его запуска для своей полнофункциональной работы.

Звуковой сервер JACK

JACK (JACK Audio Connection Kitили JACKIT) несколько схож функционально с PulseAudio, но ориентирован в первую очередь на сферу звукозаписи, аудио-секвенсинга и обработки. Основной задачей JACK является, так скажем, своевременное синхронизированное многопоточное воспроизведение аудио-сигналов от разных программ, имеющих его поддержку, с минимальной временной задержкой ("latency"). JACK может выполнять передачу аудио-сигнала от программы к программе, чаще всего для его обработки ими в режиме реального времени и последующего прослушивания и/или записи. JACK так же может самостоятельно обрабатывать звук эффектами LADSPA (пакет "jack-rack"), эквалайзером (пакет "jackEQ") и работать с другими доступными сетевыми серверами JACK (пакет "jacktrip").

Управление и настройка JACK осуществляются при помощи программы qjackctl ("Qt JACK Cotrol"). С её помощью Вы не только сможете настраивать, запускать, контролировать (включая переключение потоков сигналов) и останавливать JACK, но и получите возможность управлять общей для связанных с JACK программ декой (кнопки синхронного запуска, остановки и перемотки).


Поддержку вывода сигнала через JACK часто имеют не только программы для звукозаписи и обработки звука (для которых он чаще всего просто необходим), но и продвинутые аудио/мультимедиа-проигрыватели, такие как Qmmp, например.


JACK был изначально задуман и частично разработан во время дискуссии в списке рассылки аудио-разработчиков Linux. Пол Дэвис (Paul Davis) был автором основных принципов API JACK и образца его реализации.

Комментарии

Поставил Ubuntu,внешняя звуковая как раз X-Fi,однако на сайте производителя выложен драйвер под 64bit Linux! Под Ubuntu он не ставит,выводит сообщение,что вас НЕ 64-битная ОС,поставить не могу.Как быть в данной ситуации?

а как быть со встроеной звуковухой?asusp5k?

Материнские платы Asus серии P5K оснащены встроенными звуковыми картами Intel High Definition Audio. Для этого типа устройств ядро Linux уже давно умеет свои модули, что означает их поддержку "из коробки" в большинстве современных популярных дистрибутивов.

Отправить комментарий

  • Доступны HTML теги: <b> <i> <u> <s> <kbd> <var> <code> <samp> <q> <cite> <ul> <ol> <li> <p> <br>
  • Строки и параграфы переносятся автоматически.
  • Шаблоны [цель|текст] обрабатываются как ссылки. Стандартный индикатор цели - ID материала.