Red Hat 9 и Intel 865 - настройка звука.

Прогресс, как известно, не стоит на месте, и вот увидел свет очередной (кстати сказать, очень удачный) чипсет от Intel под номером 865. Рассмотрение его свойств и особенностей сейчас не входит в нашу задачу. Обратим лишь внимание на звуковой контроллер, которым сама Intel комплектует свои системные платы на новом чипсете. Он реализован на базе качественного AC'97-кодека Analog Devices AD1985, который позволяет подключать аудиосистему 5.1, а также имеет разъем S/PDIF. Попробуем получить звук от этого кодека на примере платы Intel D865GLC и операционной системы Red Hat 9. Все сказанное ниже справедливо также для плат Intel на чипсете i875.

Сразу после инсталляции системы выясняется, что звука нет и что звуковая карта определена как Creative Ensoniq Audio PCI 97 (ES1371), т.е. неверно. При старте KDE появляется сообщение о том, что звуковой сервер не нашел устройство вывода звука. Понятно, - ядро 2.4.20 и его OSS драйвер не знают нового кодека.

На CD, который входит в комплект системной платы, драйверов для Linux к сожалению нет. Поэтому идем на сайт Intel и находим там драйвер alsa специально для AD1985 и Red Hat 9 (там же находятся драйвера для Red Hat 8, SuSE 8.1 и SuSE 8.2). Есть и pdf-файл, в котором описано в точности то, что мы увидели, точнее не услышали после установки системы: звук как бы установлен, но не работает. И еще Intel предупреждает, что никакого шестиканального звука после установки драйвера alsa не будет. Кодек позволяет, а драйвер пока - нет. Жаль, конечно, ну да ничего не поделаешь. Стерео - так стерео. Читаем pdf и начинаем установку.

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

Ну, ничего, возьмем настоящие alsa-driver, -lib, -utils и -tools, самые свежие. Установим их, предварительно пересобрав ядро. Сделаем, раз надо.

С новым ядром мои USB-клавиатура и мышь вообще не заработали. Может мне просто не повезло, почитаем, что народ пишет. Оказалось, я не один такой, советуют ставить alsa и модули из rpm. Сомнительно, но попробуем.

Результат тот же.

Вся надежда на новое ядро 2.6. Тем более, что тестовая версия его уже доступна. В ядро 2.6 драйвера alsa встроены (взамен OSS) и все должно работать чудесно.

И тут произошло... Intel - это Intel, не бросает в беде своих пользователей. По тому же адресу в конце июля появился исправленный драйвер alsa_driver_0.9.1adi_rev5.tar.gz. Дальше все стало действительно просто.

Все делаем в режиме суперпользователя. Распаковываем архив в каталог /usr/local/src. Читаем файл README.txt, который (в отличие от находящегося здесь же файла README), содержит все что надо именно в нашем случае. В терминале перемещаемся в каталог с драйвером:

cd /usr/local/src/alsa-driver-0.9.1adi_rev5

Запускаем скрипт configure с параметрами, компилируем и устанавливаем:

./configure --with-kernel=/usr/src/linux-2.4.20-8 --with-isapnp=no --with-cards=intel8x0
make
make install

Создаем звуковые устройства:

./snddevices

Теперь надо отредактировать системный конфигурационный файл /etc/modules.conf, отвечающий за запуск модулей ядра. Как и советуют разработчики, добавляем в него строки:

# ALSA native device support
alias char-major-116 snd
options snd major=116 cards_limit=1
alias snd-card-0 snd-intel8x0

# OSS/Free setup
alias char-major-14 soundcore
alias sound-slot-0 snd-intel8x0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :
pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :

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

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

/sbin/lsmod

У меня ответ был таким:

Module                  Size  Used by    Not tainted
nls_iso8859-1           3516   1 (autoclean)
nls_cp437               5116   1 (autoclean)
vfat                   13004   1 (autoclean)
fat                    38808   0 (autoclean) [vfat]
snd-pcm-oss            45604   1 (autoclean)
snd-mixer-oss          16536   1 (autoclean) [snd-pcm-oss]
snd-intel8x0           24612   2 (autoclean)
snd-ac97-codec         44736   0 (autoclean) [snd-intel8x0]
snd-pcm                83200   0 (autoclean) [snd-pcm-oss snd-intel8x0]
snd-timer              19624   0 (autoclean) [snd-pcm]
snd-page-alloc          8504   0 (autoclean) [snd-intel8x0 snd-pcm]
snd-mpu401-uart         4860   0 (autoclean) [snd-intel8x0]
snd-rawmidi            18560   0 (autoclean) [snd-mpu401-uart]
snd-seq-device          6268   0 (autoclean) [snd-rawmidi]
snd                    43172   0 (autoclean) [snd-pcm-oss snd-mixer-oss snd-intel8x0 snd-ac97-codec snd-pcm snd-timer snd-mpu401-uart snd-rawmidi snd-seq-device]
soundcore               6404   4 (autoclean) [snd]
i830                   74336   0
agpgart                47776   8 (autoclean)
parport_pc             19076   1 (autoclean)
lp                      8996   0 (autoclean)
parport                37056   1 (autoclean) [parport_pc lp]
autofs                 13268   0 (autoclean) (unused)
ipt_REJECT              3928   6 (autoclean)
iptable_filter          2412   1 (autoclean)
ip_tables              15096   2 [ipt_REJECT iptable_filter]
sg                     36524   0 (autoclean)
sr_mod                 18136   0 (autoclean)
ide-scsi               12208   0
scsi_mod              107160   3 [sg sr_mod ide-scsi]
ide-cd                 35708   0
cdrom                  33728   0 [sr_mod ide-cd]
keybdev                 2944   0 (unused)
mousedev                5492   1
hid                    22148   0 (unused)
input                   5856   0 [keybdev mousedev hid]
usb-uhci               26348   0 (unused)
ehci-hcd               19976   0 (unused)
usbcore                78784   1 [hid usb-uhci ehci-hcd]
ext3                   70784   3
jbd                    51892   3 [ext3]

Среди прочего - множество звуковых устройств.

Никакого шаманства больше не нужно. В документации к alsa много написано про alsamixer, alsactl и т.д. Это - не для нас. Intel постаралась, чтобы проблем больше не было. Открываем штатный микшер KDE и устанавливаем необходимую громкость (после инсталляции драйверов микшер на нуле). Теперь можно услышать системные звуковые уведомления, конечно, если их включить. Xmms прекрасно работает с аудио CD, модуль alsa-xmms устанавливать не требуется. Для воспроизведения mp3 нужно установить lame и xmms-mpg123, но это уже другая история.

Андрей Ракитин.
август 2003 г.