Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #46, СЕНТЯБРЬ 2004 г.

Тюнинг в стиле X. Часть 2

Alexander S. Salieff

Спецвыпуск Xakep, номер #046, стр. 046-018-2


Звук

Далеко не для всех звуковых карт находится полноценная поддержка в ядре Linux, коим укомплектован стандартный дистрибутив. Написанием звуковых драйверов для Linux занимались, в основном, две команды - OSS (Open Sound System) и ALSA (Advanced Linux Sound Architecture). Драйвера от OSS даже присутствовали в ядрах до версий 2.4.х включительно. Но дело заключается в том, что OSS - уже давно не Open Source и продает свои драйвера за деньги, в виде закрытых бинарей. Старая ветка с открытым кодом еще кое-как существует под именем OSS-Free, но в ядрах 2.6.х в качестве звуковой подсистемы присутствует уже ALSA. Учитывая то, что сейчас еще много народу сидит на ядрах 2.4.х, посмотрим, как прикрутить к таким ядрам ALSA-драйвера для карточек, отсутствующих в OSS-Free.

Первым делом бежим на http://alsa-project.org/alsa-doc/, вбиваем производителя чипсета нашей звуковухи (который выясняется из документации, lspci и прочих источников) и жмем "Go". Если в полученной таблице ты узрел свой чипсет, то загляни в Details на предмет того, как называется этот модуль в ALSA-терминологии (если тебе такое предложение кажется бредовым, скажу лишь, что модуль для SiS7012 называется snd-intel8x0 ;)). Теперь радостно возвращайся на главную страничку проекта и качай текущую версию alsa-driver. Для работы с этими драйверами требуется, чтобы в твоем ядре имелся модуль soundcore. Практически во всех современных дистрибутивах он имеется по умолчанию, ну а сомневающиеся делают modinfo soundcore. Распаковав тарболл с дровами, делай ему ./configure --with-cards=<имя твоего модуля> , здесь имя модуля то, которое ты должен был глянуть в Details на страничке ALSA. Если все сконфигурировалось без бед, то продолжение стандартное - make && make install. Осталось лишь прописать alias'ы для установленных модулей и создать соответствующие устройства. К счастью, делать руками это не придется, ибо добрые разработчики написали для нас два скрипта - alsaconf и snddevices (первый лежит в подкаталоге utils распакованного тарболла, а второй - в его корне). Проверим на практике то, что у нас получилось. Подгружаем свежесобранные LKM'ы: modprobe <имя твоего модуля> ; modprobe snd-pcm-oss; modprobe snd-mixer-oss (после перезагрузки они будут подгружаться сами). Пробуем что-нибудь проиграть. Тишина? Есть такое дело, по умолчанию после установки уровень громкости - нулевой. Исправим это дело с помощью alsamixer (или aumix, или еще чем-то из того, что имеется под рукой). Если ты обратил внимание, в драйверах от ALSA есть модули, эмулирующие интерфейс OSS. Это значит, что тебе не придется ничего делать с программами, заточенными под OSS (а таких, поверь мне, немало).

Назад на стр. 046-018-1  Содержание  Вперед на стр. 046-018-3