Как установить ALSA-драйвер (подсказка).
Чтобы скомпилировать некоторые сложные sound-пакеты (например, Muse или
Rosegarden), нужно поставить ALSA-драйвер для данной звуковой карты, причем
не стабильный код (0.5), а devel-версию (0.9).
Мои исходные: IBM TP 600, звук. чип Crystal 4237B.
ASPLinux 7.3 kernel 2.4.18
Первое: компилировать и устанавливать нужно все пакеты (alsa-driver, alsa-lib,
alsa-utils, alsa-oss), а не только драйвер. Нужны alsatcl и его конф. файл
/etc/asound.state - в него записываются все установки alsamixer.
Второе: скрипт configure в alsa-driver нужно запускать с isapnp=no,
но этого мало. Нужно еще закомментировать #define __ISAPNP__ в adriver.h,
иначе будут ошибки при компиляции.
Третье: в modules.conf идут следующие строчки -
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-cs4236
alias sound-slot-0 snd-card-0
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
options snd snd_major=116 snd_cards_limit=1 snd_device_mode=0666 snd_device_gid=0 snd_device_uid=0
alias sound snd-cs4236
options snd-cs4236 snd_port=0x530 snd_cport=0x538 snd_mpu_port=0x320 snd_fm_port=0x388 snd_irq=5 snd_mpu_irq=9 snd_dma1=1 snd_dma2=0
Смысл и значение даны в alsa-driver/INSTALL. Конкретные значения параметров
snd_port и snd_cport проверьте и подберите для своего чипа сами.
Четвертое: если драйвер грузится (см. lsmod), но приложения жалуются, что device /dev/dsp not found,
запустите скрипт snddevices из alsa-driver.
[root@candida root]# lsmod
Module Size Used by Not tainted
snd-pcm-oss 43236 1 (autoclean)
snd-mixer-oss 11072 0 (autoclean) [snd-pcm-oss]
binfmt_misc 7428 1
snd-opl3-synth 11580 0 (unused)
snd-seq-instr 7180 0 [snd-opl3-synth]
snd-seq-midi-emul 6780 0 [snd-opl3-synth]
snd-seq 45516 0 [snd-opl3-synth snd-seq-instr snd-seq-midi-emul]
snd-ainstr-fm 2476 0 [snd-opl3-synth]
snd-cs4236 3232 1
snd-opl3-lib 7744 0 [snd-opl3-synth snd-cs4236]
snd-hwdep 5024 0 [snd-opl3-lib]
snd-cs4236-lib 12544 0 [snd-cs4236]
snd-cs4231-lib 18720 0 [snd-cs4236 snd-cs4236-lib]
snd-pcm 77632 0 [snd-pcm-oss snd-cs4236-lib snd-cs4231-lib]
snd-timer 13920 0 [snd-seq snd-opl3-lib snd-cs4231-lib snd-pcm]
snd-mpu401-uart 4444 0 [snd-cs4236]
snd-rawmidi 17184 0 [snd-mpu401-uart]
snd-seq-device 5612 0 [snd-opl3-synth snd-seq snd-opl3-lib snd-rawmidi]
snd 37544 0 [snd-pcm-oss snd-mixer-oss snd-opl3-synth snd-seq-instr snd-seq snd-cs4236 snd-opl3-lib snd-hwdep snd-cs4236-lib snd-cs4231-lib snd-pcm snd-timer snd-mpu401-uart snd-rawmidi snd-seq-device]
soundcore 6404 6 [snd]
Пятое: чтобы снять заглушки с master output, pcm, fm, wavetable, synth - запустите alsamixer и используйте 'M' и стрелки.
Обычный миксер (gmix, kmix) для этого не годится - можно регулировать громкость и только. После выхода из alsamixer,
сохраните все значения командой alsactl store.
Шестое (и пока последнее) - запускайте alsasound из /etc/rc.d/init.d автоматом на загрузке (chkconfig alsasound on).
С учетом всего вышесказанного, можно извлекать качественный звук и стабильно (чем, увы, не может похвастаться oss-драйвер для этой карточки, идущий в дистрибутиве).
Установите в alsamixer уровень DSP прмерно на 80% и разблокируйте IEC958 output, - если хотите услышать трели модема на вашем буке при дозвоне.