Этот документ пытается помочь вам, установить и использовать Sound Blaster AWE 32 или Sound Blaster AWE 64 фирмы Creative Labs в вашей Linux-системе. Здесь описываются процедуры, проверенные для системы Debian GNU/Linux на платформе Intel i586, но это должно работать со всеми другими дистрибутивами Linux, равно как и со всеми платформами и звуковыми картами, поддерживаемыми драйвером звука Linux (различия будут упоминаться там, где они есть).
Прочтите внимательно "HOWTO: Звук в Linux" (Linux Sound HOWTO) (см. раздел "Дополнительная информация"). Я рассматриваю свой документ, как дополнение к этому HOWTO, и очень часто более полную информацию вы можете найти там, особенно то, что я мог упустить.
Звуковая карта SB AWE 32 представляет из себя: прямое (raw) аудио-устройство, стандартный OPL-2/OPL-3 синтезатор, MIDI-порт MPU-401 и 32-голосный EMU 8000 WaveTable-синтезатор (для разъяснения значений этих и других терминов смотрите "HOWTO: Звук в Linux"). Одна из целей этого документа - помочь вам настроить нормальную работу всех этих функций.
В карту SB AWE 64 встроены все функции SB AWE 32 и дополнительный синтезатор Wave Guide, которым так гордится Creative Labs. Проблема для пользователей Linux состоит в том, что дополнительные 32 голоса генерируются программно и выводятся через прямые аудио устройства. Но, поскольку фирма Creative Labs не видит в Linux рынка сбыта драйверов, драйвер звука для синтезатора Wave Guide существует только для Windows 3.1 и Windows 95.
Учитывая это, с точки зрения пользователя Linux, карты SB AWE 32 и SB AWE 64 почти идентичны. С этого момента я буду упоминать только SB AWE вообще, и буду лишь упоминать о различиях, когда они возникают.
Многие современные карты на платформе Intel являются так называемыми ISA PnP картами, где PnP - это аббревиатура к сочетанию "Plug and Play" (Включи и работай). Это означает, что карта должна быть настроена операционной системой, и это должно производиться программой инициализации во время загрузки системы. В общем случае, существует как минимум три способа сделать это:
У вас есть PnP Bios, что означает, что ваш BIOS осведомлен о возможном наличии PnP-карт и может их отконфигурировать. Если вы думаете, что можете использовать все функции вашего SB AWE PnP только потому, что у вас PnP Bios, то тут вам не повезло. Даже если BIOS заявляет, что поддерживает PnP карты, то он всего лишь настраивает набор портов и адресов, используемых картой. Вы, возможно, сможете играть прямой (raw) звук, но , например, не сможете воспользоваться MIDI-музыкой. Поэтому PnP BIOS не подходит для наших целей.
У вас есть операционная система, поддерживающая PnP карты. Текущее стабильное ядро Linux версий 2.0.x - это не такая система, поэтому нам придется подождать будущих релизов ядра, которые будут поддерживать PnP устройства.
У вас есть специальная программа, запускаемая в процессе загрузки системы, которая инициализирует ваши PnP- карты. Это как раз тот способ, который мы будем использовать.
Наиболее часто используемой программой, предназначенной для инициализации PnP карт под Linux, является пакет "isapnptools" (см. раздел "Источники" и "Начало работы"). Этот пакет обеспечивает предсказуемый способ инициализации всех ISA PnP карт на вашей машине, а не только звуковых.
Некоторые драйвера устройств могут быть построены в виде модулей, вместо встраивания их внутрь ядра. Вы можете найти дополнительную информацию о модулях в "HOWTO:Ядро" (Kernel HOWTO) и "HOWTO:Модули" (Module HOWTO) (см. раздел "Дополнительная информация").
Если у вас PnP карта, то установите поддержку звука в виде загружаемого модуля ядра. Это означает, что нельзя встраивать драйвер звука в ядро, вам, вместо этого, необходимо собрать этот драйвер в виде модуля, чтобы он мог загружаться в систему уже после загрузки ядра. Это необходимо по той причине, что ядро загружается до конфигурирования ваших ISA PnP карт, а ваш драйвер звука должен быть загружен после конфигурирования ISA PnP карт.
Модуль драйвера звука может быть загружен вручную командами insmod sound или modprobe -a sound или в соответствующем загрузочном скрипте вашего Linux-а (в Debian достаточно добавить строку sound в файл /etc/modules). Другой вариант - это запустить kerneld, демон (daemon), который устанавливает и выгружает модули ядра по необходимости.
Заметьте однако, что kerneld - это не лучшее решение для модуля драйвера звука SB AWE, потому что загрузка модуля в ядро занимает некоторое время, особенно, если вы хотите использовать WaveTable-синтезатор и загрузить в него большие звуковые банки (Sound Font banks), что придется делать каждый раз после установки модуля. По той причине, что kerneld удаляет неиспользуемые модули через одну минуту, то, наверное, правильнее установить модуль звука вручную или в процессе загрузки. Заметьте, что ручная установка модуля или его установка в процессе загрузки предохранит этот модуль от выгрузки kerneld. Кстати: вы можете вручную загрузить модуль драйвера звука и в то же время использовать kerneld. Эти два метода не конфликтуют, и kerneld не будет обращать внимания на модуль драйвера звука.
Это особенно полезно, когда настройки вашего микшера изменяются после удаления и переустановки модуля. Решение этой проблемы приведено разделе "Микширование" (там описано, как можно автоматически запускать микшер после загрузки модуля драйвера звука). Однако, загрузка модуля демоном kerneld, загрузка звуковых банков и запуск вашего микшера занимает длительное время, и по этой и по некоторым другим причинам все-таки лучше устанавливать модуль звука в процессе загрузки, и, таким образом, не давать kerneld его выгрузить.
Вы можете установить поддержку звука внутрь ядра или в загружаемый модуль. Если у вас PnP карта, то вам придется это сделать с помощью модуля, потому что PnP карты нужно инициализировать через утилиты isapnptools до загрузки модуля.
Как вы уже наверно поняли, придется пересобирать ядро. Я дам необходимые подсказки по этому поводу немного позднее. А теперь давайте поговорим о поддержке звука в исходных текстах ядра. Ядро поставляется с бесплатной (усеченной) версией звукового драйвера OSS (USS). Текущая версия этого драйвера (3.5.4) не полностью поддерживает SB AWE, но SB 16 - это часть AWE. Поэтому вам будут доступны прямое аудио-устройство и OPL-2/OPL-3 синтезатор, если вы используете этот драйвер, но вам будет недоступна MIDI-музыка, использующая WaveTable-синтезатор.
Если вы хотите использовать WaveTable-устройство, то купите коммерческий драйвер звука у компании 4Front Technologies (кто-нибудь, подтвердите, что их драйвер поддерживает AWE), или исправьте ядро патчем Звукового Драйвера AWE 32 автора Takashi Iwai. Первый не обозревается в этом документе, я же предполагаю, что вы будете использовать второй.
Звуковой Драйвер AWE32 (см. раздел "Источники") опубликован в соответствии с Лицензией GNU и поставляется с набором утилит, использующих EMU 8000 синтезатор карт SB AWE.
Программа awedrv также включена в новые исходные тексты ядер (начиная с некоторых версий ядра 2.1.x, но, возможно, когда вы захотите обновить исходные текста ядра, они уже немного устареют).