Прогресс, как известно, не стоит на месте, и вот увидел свет очередной (кстати сказать, очень удачный) чипсет от 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Создаем звуковые устройства:
./snddevicesТеперь надо отредактировать системный конфигурационный файл /etc/modules.conf, отвечающий за запуск модулей ядра. Как и советуют разработчики, добавляем в него строки:
# ALSA native device supportПерезагружаем систему. При загрузке появляется сообщение, что найдена звуковая карта и ее надо сконфигурировать. Соглашаемся. На этот раз звук определился правильно.
После перезагрузки никаких настораживающих сообщений нет. И даже клавиатура с мышью работают. Можно проверить, какие модули появились:
/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 г.