BASH Programming - Введение


Загрузка Linux и тестирование установки


Сейчас вы должны быть готовы к загрузке нового ядра и тестирования звукового драйвера. Следуйте обычной процедуре инсталляции и загрузите новое ядро (сохраните старое ядро на случай возникновения проблем).

В течении загрузки следите за сообщениями, которые следуют после включения питания (если они прокручиваются слишком быстро чтобы прочитать их, вы можете заново просмотреть их командой dmesg).

Sound initialization started <Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5 <Sound Blaster 16> at 0x330 irq 5 dma 0 <Yamaha OPL3 FM> at 0x388 Sound initialization complete

Они должны соответствовать вашему типу карты и установкам переключателей (если они есть).

Заметим, что вышеприведенные сообщения не появляются, когда вы используете звуковой драйвер в виде загружаемого модуля ядра (до тех пор пока вы не разрешите его, например командой insmod sound trace_init=1).

Когда драйвер звука находится в ядре, должны появляться сообщения Sound initialization started (инициализация звука начата) и Sound initialization complete (инициализация звука выполнена). Если они не появляются, это обозначает, что драйвера звука нет в ядре. В этом случае вы должны проверить действительно ли вы установили ядро с включенным звуковым драйвером.

Если ничего не появляется между строками Sound initialization started и Sound initialization complete, это означает, что никакого звукового устройства не обнаружено. Скорее всего это означает, что вы не разрешили правильный тип драйвера, карта не поддерживается, неправильно заданы порты ввода/вывода или что у вас PnP карта, которая не была сконфигурирована.

Драйвер может также выдавать некоторые сообщения об ошибках и предупреждения в процессе загрузки. Наблюдайте за ними в процессе первой загрузки после настройки звукового драйвера.

Далее вы должны проверить файл устройства /dev/sndstat. Чтение файла статуса звукового драйвера должно дать дополнительную информацию был ли драйвер звуковой карты инициализирован правильно. Простой вывод должен выглядеть подобно этому:


% cat /dev/sndstat Sound Driver:3.5.4-960630 (Sat Jan 4 23:56: 57 EST 1997 root, Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586) Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586 Config options: 0

Installed drivers: Type 1: OPL-2/OPL-3 FM Type 2: Sound Blaster Type 7: SB MPU-401

Card config: Sound Blaster at 0x220 irq 5 drq 1,5 SB MPU-401 at 0x330 irq 5 drq 0 OPL-2/OPL-3 FM at 0x388 drq 0

Audio devices: 0: Sound Blaster 16 (4.13)

Synth devices: 0: Yamaha OPL-3

Midi devices: 0: Sound Blaster 16

Timers: 0: System clock

Mixers: 0: Sound Blaster

Команда, приведенная выше, может выдавать некоторые сообщения об ошибках. "No such file or directory (Нет такого файла или директории)" сообщает, что вам нужно создать файлы устройства (смотри раздел 4.3). "No such device (Нет такого устройства)" означает, что звуковой драйвер не был загружен или вкомпилирован в ядро. Возвратитесь к разделу 4.2 и исправьте это.

Если строки в секции "Card config:" файла /dev/sndstat перечислены внутри скобок (такие как "(SoundBlaster at 0x220 irq 5 drq 1,5)"), это означает, что устройство было сконфигурировано, но не обнаружено.

Теперь вы готовы к проигрыванию простых звуковых файлов. Возьмите простой звуковой файл и пошлите его на звуковое устройство для быстрой проверки вывода звука, например

% cat endoftheworld >/dev/dsp % cat crash.au >/dev/audio

(Убедитесь, что вы не опустили ">" в командной строке, приведенной выше).

Заметим, что в общем, использование cat это не лучший способ проигрывания звуковых файлов, это просто быстрая проверка. Вы должны взять соответствующую программу проигрывания звука (описано позже), которая будет выполнять работу лучше.

Эти команды работают, если по крайней мере одно устройство перечислено в разделе аудио-устройств файла /dev/sndstat. Если раздел аудио-устройств пуст, вы должны проверить почему устройство не опознается.

Если вышеприведенные команды возвращают "I/O error (Ошибка ввода/вывода)", вы должны посмотреть в конце сообщений ядра, используя команду "dmesg". Вероятно, что сообщение об ошибке будет напечатано там. Часто бывает такое сообщение "Sound: DMA (output) timed out - IRQ/DRQ config error? (Звук: время ожидания DMA (вывод)-- ошибка настройки IRQ/DRQ?)". Вышеприведенное сообщение означает, что драйвер не получил от устройства звука ожидаемого прерывания. В большинстве случаев это означает, что сконфигурированы IRQ или каналы DMA с которыми драйвер не может работать. Лучший выход чтобы заставить его работать -- испробовать все возможные номера DMA и IRQ, поддерживаемые устройством.

Другая возможная причина -- устройство не совместимо с устройством для которого сконфигурирован драйвер. Это довольно распространенный случай, когда считающиеся "SoundBlaster (Pro/16) compatible" звуковые карты не работают с драйвером SoundBlaster. В этом случае вы должны попытаться найти устройство с которым совместима ваша звуковая карта (например запросом в группу новостей comp.os.linux.hardware).

Некоторые простые звуковые файлы могут быть получены с

Теперь вы можете проверить запись звука. Если вы имеете возможность ввода звука, вы можете проделать быструю проверку этого, используя команды, такие как следующие:

# record 4 seconds of audio from microphone EDT% dd bs=8k count=4 </dev/audio >sample.au 4+0 records in 4+0 records out # play back sound % cat sample.au >/dev/audio

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

Если тесты прошли, вы можете быть уверенны, что звуковые устройства ЦАП и АЦП, и программное обеспечение работают. Если вы имеете проблемы, смотрите следующий раздел этого документа.


Содержание раздела