[Q]: Где найти драйвер к звуковой карте AC'97 или High Definition Audio? [A]: Andrew Belov (2:5020/181.2) AC'97 (Audio Codec'97) - это обозначение аналоговой части многих звуковых карт (его функции - преобразование АЦП/ЦАП, микширование каналов PC Speaker'а, модема и т.д.). Единого "драйвера" для AC'97 не существует - работой с чипом занимается контроллер; в случае интегрированных звуковых карт на материнской плате это, как правило, south bridge чипсета. В спецификации AC'97 v 1.02 (май 1996 г.) от "решения на базе AC'97" требовалась поддержка изменяемой частоты дискретизации от 8000 до 48000 Гц; кодек должен был поддерживать режим стерео 16-бит и выдерживать соотношение "сигнал-шум" не менее 80 дБ. Впоследствии появились "урезанные" (умеющие только 48 кГц) и "полупрофессиональные" (с разной самодеятельностью: баланс, эквалайзер, surround, S/P DIF и т.д) варианты, которые позволяли себе отклоняться от требований AC'97. Новым общим знаменаталем для этих технологий является High Definition Audio (HDA). Для доступа к настройкам AC'97 из MMPM/2 в фирме Crystal/Cirrus был специально разработан API IOCtl90. Рекомендуется выбрать драйвер с его поддержкой и установить IOCtl90-микшер - например, LBMix. Последовательность поиска драйвера: 1. Если используется чип C-Media: - CMI8738 - см. соответствующий open-source драйвер (CMEDIA019.ZIP). Строго говоря, это не AC'97, хотя по возможностям отличается несильно. - C-Media производит и "настоящие" AC'97 (например, CMI9739A - известен как сверхдешевое решение), для которых описанный драйвер не подходит; с этого момента рекомендуется забыть про "кодек от C-Media" и ориентироваться на пп. (2), (4), (5) и (6). 2. Пробуем ALSA/2 (AKA "Universal Audio Driver", "UniAudio") - это довольно обширная коллекция мини-драйверов по принципу "все в одном" со всей необходимой обвязкой для MMPM/2. Для HDA это по сути единственный вариант. По состоянию на 15/03/2007 проект обитает на http://uniaud.netlabs.org, но пока - без мейнтейнера. Драйвер может выпускаться в версии с KEE (для OS/2 v 4.5+) и без KEE (для 3.0+), хотя при наличии GPL-исходников можно пересобрать в требуемом варианте самостоятельно. 3. Если установлен AC'97-кодек от Realtek (он же Avance Logic), следует попробовать драйвер от Realtek'а: ftp://210.51.181.211/pc/ac97/alc650/os2warp4_141.exe По состоянию на 13/09/2003 знает чипсеты образца середины 2002 года. Недостаток - не поддерживает передискретизации для кодеков ALC-100/101 производства все того же Realtek (см. проблему [2]). 4. Если чипсет от Intel (440MX, ICHn, ...) - следует искать драйвер к кодеку на матплате, в случае неудачи можно пропатчить драйвер SoundMax, чтобы он понимал любые типы кодеков. Сохраняем один из следующих патчей в файле в директории \MMOS2 (файл можно назвать patch.txt): - Для версии 3.19 (2004-02-17 13:29:58 44800 ichcsnd.sys) или 3.18 (2003-11-26 09:55:58 44754 ichcsnd.sys) === Cut === FILE ICHCSND.SYS VER 5C82 31C0 CHA 5C82 B001 === Cut === - Для версии 3.11 (архив ad188xos2_311.zip 402882 2002/05/21) === Cut === FILE ICHCSND.SYS VER 5DE2 31C0 CHA 5DE2 B001 === Cut === Применяем патч (patch patch.txt /a), перезагружаемся. 5. Если чипсет от VIA: - KT133A/Apollo Pro 133A и ниже: драйвер на http://www.viaarena.com (не обновлялся с 2001 года - иногда нужен патч VIASP09C.ZIP @ hobbes.nmsu.edu) - KT266...600/P4X266...533/Apollo Pro 266: 823X*.ZIP @ hobbes.nmsu.edu. 6. Для всех прочих чипсетов ищем (пытаемся найти) унифицированный драйвер под южный мост у соответствующего производителя чипсета. Возможные проблемы: [1] Звука в DOS-сессиях не будет. В DOS'овские игры играем в DosBox'е или в Virtual PC. Исключение - AC'97 в чипсетах VIA KT133, где еще сохранялся режим совместимости с Sound Blaster'ом, который обозвали словом "legacy" (рекомендуется поискать VIA Solution Pack by Vit Timchishin, VIASP*.ZIP). При отсутствии в комплекте драйвера под Win-OS/2 используем generic-драйвер. MIDI в любом случае нужен будет программный, т.е. TiMidity. [2] Часто применяются кодеки AC'97 v 1.x с фиксированной частотой 48 кГц. Результат - "ускоренное" воспроизведение всех записей с меньшей частотой дискретизации (а они почти всегда 44.1 кГц и ниже). Решение этой проблемы (программное преобразование в 48 кГц) ведется в ALSA/2; экспериментальная поддержка встречается в ряде других драйверов. Режим совместимости с SB у старых чипсетов VIA позволял варьировать частоту, но давал только 8-bit. [3] Поскольку контроллер - PCI-устройство, то часто возникает проблема IRQ-sharing'а. Если прерывание, на котором сидит контроллер AC'97, занимают другие устройства (а выяснить это можно, например, с помощью PCI Sniffer'а, PCI*VK.ZIP), то при возникновении любых проблем с инсталляцией драйвера первым шагом должно стать разведение устройств в BIOS'е по различным IRQ. В современных драйверах AC'97 поддержка shared IRQ присутствует почти всюду, чего нельзя сказать о драйверах NIC и прочих потенциальных сожителей AC'97. На более поздних (> 2004 г.) чипсетах проблемы с PCI-ресурсами встречаются повсеместно, и имеет смысл поставить ACPI.PSD (при условии ядра 4.5x), а в качестве драйвера единственным вариантом остается свежая версия ALSA/2.