В начало → Руководство Gentoo Linux ALSA → Установка ALSA |
Способы, описываемые ниже, являются взаимно исключающими. Вы не можете одновременно собрать ALSA в ядре и установить media-sound/alsa-driver. Это не получится.
Два варианта установки ALSA драйверов:
Использовать ALSA драйверы, предоставляемые вашим ядром. Этот метод предпочтительный и рекомендуемый.
Использовать пакет media-sound/alsa-driver.
Драйверы, предоставляемые ядром, могут немного отличаться от предоставляемых пакетом alsa-driver; возможности и исправления одного могут оказаться всё ещё не включёнными в другой. Разработчики ALSA осознают ситуацию, но эти два драйвера по существу являются отдельными ветвями проекта ALSA; они не идентичны. Вы должны понимать, что они могут по-разному функционировать, поэтому если один из них у вас не работает, попробуйте другой! Мы бегло рассмотрим оба варианта перед принятием окончательного решения.
Преимущества и недостатки использования ALSA драйверов, предоставляемых ядром:
ALSA в ядре | за и против |
---|---|
+ | Нет необходимости устанавливать ещё один пакет; драйверы включены в ядро |
+ | Единое решение, никаких повторных команд emerge |
- | Может немного отличаться от alsa-driver |
А если вы выберете alsa-driver, то:
Драйверы ALSA | за и против |
---|---|
+ | Самые свежие драйверы от проекта ALSA |
+ | Удобно, если вы собираетесь разрабатывать драйверы для аудио устройств |
- | Каждая пересборка ядра требует повторной переустановки alsa-driver |
- | Определённые параметры конфигурации ядра должны быть отключены |
Как сказано выше, отличия между драйверами из пакета alsa-driver и ALSA драйверами, поставляемыми с ядром, очень незначительны. Так как между ними нет большой разницы, сначала попробуйте ALSA драйвера, поставляемые ядром, так как их проще использовать. Перед тем как сообщить о любой проблеме, связанной со звуком, в Gentoo Bugzilla, пожалуйста, попробуйте её воспроизвести, используя alsa-driver, и создайте запрос об ошибке вне зависимости от результата.
Вам надо определить какие драйверы использует ваша карта. В большинстве случаев звуковые карты (встроенные и подключаемые) основаны на PCI, и lspci поможет вам раскопать необходимую информацию. Пожалуйста, если вы ещё не установили lspci, установите командой emerge sys-apps/pciutils. Если у вас USB звуковая карта, вам может помочь lsusb из sys-apps/usbutils. Для карт ISA попробуйте sys-apps/isapnptools. Кроме того, следующие ресурсы могут помочь владельцам ISA звуковых карт:
Ради простоты в оставшейся части руководства мы предположим, что у пользователя звуковая карта, основанная на PCI.
Теперь мы попробуем найти информацию о звуковой карте.
Листинг 1. Информация о звуковой карте
#
lspci -v | grep -i audio
0000:00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 06)
Теперь мы знаем, что звуковая карта, установленная в компьютере, — Sound Blaster Live!, а производителем является Creative Labs. Зайдём на страницу с таблицой звуковых карт ALSA и выберем Creative Labs из списка. В результате вы попадёте на страницу, содержащую таблицу продуктов Creative Labs, из которой вы можете узнать, что SB Live! использует модуль emu10k1. Эта та информация, которая нам и нужна. Если вам интересна более подробная информация, то вы можете перейти по ссылке «Details» на страницу, посвящённую emu10k1.
Если вы намереваетесь использовать MIDI, то перед установкой любых пакетов ALSA необходимо добавить midi к USE-флагам в файле /etc/make.conf. Ниже в руководстве мы продемонстрируем, как настроить MIDI.
Если вам нравится идти по пути наименьшего сопротивления, то этот способ для вас.
Начиная с выпуска 2005.0, Gentoo Linux в качестве основного ядра использует ядра ветки 2.6. Пожалуйста, удостоверьтесь, что у вас ядро ветки 2.6. Этот способ не применим для ядер ветки 2.4.
А теперь давайте сконфигурируем ядро так, чтобы включить в нём ALSA.
Пользователи genkernel должны запустить genkernel --menuconfig all и следовать инструкциям из раздела Параметры ядра для ALSA.
В только что приведённом примере предполагалось, что символическая ссылка /usr/src/linux указывает на исходные коды используемого вами ядра. Пожалуйста, перед тем как продолжить, проверьте, что у вас так оно и есть.
Теперь рассмотрим часть параметров конфигурации ядра 2.6, которые гарантируют работоспособность ALSA с нашей звуковой картой.
Обратите внимание, что во всех примерах мы собираем ALSA модулями. Мы советуем вам поступать так же, так как в дальнейшем это позволит использовать alsaconf, упрощающую настройку звуковой карты. Пожалуйста, не пропустите раздел Настройка. Если вы всё же решаете не использовать модули, удостоверьтесь, что вы соответствующим образом изменили вашу конфигурацию.
Листинг 3. Параметры ядра для ALSA
Device Drivers ---> Sound ---> (Это необходимо включить) <M> Sound card support (Убедитесь, что OSS отключена) Open Sound System ---> < > Open Sound System (DEPRECATED) (Вернитесь на шаг назад и войдите в раздел ALSA) Advanced Linux Sound Architecture ---> <M> Advanced Linux Sound Architecture (Выберите, если вам нужен MIDI sequencing и routing) <M> Sequencer support (Поддержка старых /dev/mixer* и /dev/dsp*. Рекомендуется.) <M> OSS Mixer API <M> OSS PCM (digital audio) API (Теперь вы можете выбрать устройства, поддержка которых вам требуется. Обычно в системе есть только одна звуковая карта. Если у вас их несколько, включите поддержу для каждой.) (Для тестирования и разработки, обычным пользователям они не требуются, только если вы знаете, что делаете...) Generic devices ---> (Для звуковых карт ISA) ISA devices ---> (Если у вас Gravis, включите этот параметр) <M> Gravis UltraSound Extreme (Перейдите на один уровень назад и войдите в раздел PCI-устройств. Большинство современных звуковых карт являются таковыми) PCI devices ---> (Теперь выберем драйвер emu10k1 для нашей карты) <M> Emu10k1 (SB Live!, Audigy, E-mu APS) (Или для карты Intel) <M> Intel/SiS/nVidia/AMD/ALi AC97 Controller (А может у вас карта на чипсете VIA?) <M> VIA 82C686A/B, 8233/8235 AC97 Controller (Вернитесь на один уровень назад и, если у вас звуковая карта USB, включите) USB Devices --->
Теперь параметры вашего ядра установлены, и вы можете пересобрать ядро. Поддержка ALSA для вашей карты будет доступной сразу, после того как вы загрузитесь с новым ядром. Чтобы использовать новое ядро, не забудьте обновить конфигурацию вашего загрузчика. Теперь, чтобы проверить, что всё работает как должно, переходите к разделу Утилиты ALSA.
Итак, вы решили использовать пакет alsa-driver. Тогда начнём. Нужно выполнить несколько небольших действий для того, чтобы был скомпилирован только необходимый вашей аудио карте драйвер. Хотя это и не требуется, это сократит количество лишних драйверов, которые в противном случае были бы собраны.
Если вы не знаете, какие драйверы для звуковой карты вам могут понадобиться, ознакомьтесь с разделом, посвящённым lspci этого руководства. Как только вы узнаете имя драйвера (emu10k1 в нашем примере), добавьте переменную ALSA_CARDS в файл /etc/make.conf
.
Листинг 4. Добавление ALSA_CARDS в make.conf
(Для одной звуковой карты) ALSA_CARDS="emu10k1" (Для нескольких карт разделите имена пробелами) ALSA_CARDS="emu10k1 via82xx"
Если вы уже собирали своё ядро и хотите использовать alsa-driver, пожалуйста, удостоверьтесь в следующем, перед тем как продолжить, иначе alsa-driver, скорее всего, не установится. Следующий перечень поможет вам провести проверку.
Пользователи genkernel могут продолжить с установки alsa-driver, так как конфигурация их обновлённого ядра по умолчанию соответствует нижеприведённой.
CONFIG_SOUND
включён. (Общая поддержка звука включена)
CONFIG_SOUND_PRIME
выключен. (Встроенная поддержка OSS отключена)
CONFIG_SND
выключен. (Встроенная поддержка ALSA отключена)
Символическая ссылка /usr/src/linux указывает на то ядро, в котором ALSA будет работать.
Листинг 5. Проверки в .config
(Проверяем, что символическая ссылка указывает на нужное ядро.)#
cd /usr/src/linux
#
grep SOUND .config
(Первый пункт выполнен) CONFIG_SOUND=y (Второй пункт выполнен) CONFIG_SOUND_PRIME is not set#
grep SND .config
(Третий пункт выполнен) CONFIG_SND is not set
Теперь всё, что вам нужно сделать, это набрать магические слова... нет, не абракадабру.
Помните, что вам придётся выполнять emerge alsa-driver каждый раз после (пере)сборки ядра, так как предыдущие драйверы будут удалены. Чтобы упростить эту задачу, вы можете воспользоваться пакетом module-rebuild, который будет вести учёт всем пакетам с модулями ядра и по необходимости пересобирать их. Сначала, чтобы создать список пакетов, выполните module-rebuild populate, а затем после (пере)сборки ядра просто запускайте module-rebuild rebuild, и все внешние модули ядра будут пересобраны.
В начало → Руководство Gentoo Linux ALSA → Установка ALSA |