Русский перевод: Михаил Сгибнев
Содержание
- 10.1. Введение в аппаратную часть
- 10.2. Настройка BIOS
- 10.3. Конфигурирование устройства
- 10.4. Конфигурирование аудиокарты в ядре
- 10.5. Дополнительные команды
В этой главе коротко рассказывается об использовании звуковых устройств в NetBSD (кому нужен глухой компьютер?)
10.1. Введение в аппаратную часть
Для того, чтобы появился звук, как минимум, необходимо наличие звуковой карты. Как это не печально, но достаточно часто не удается точно узнать производителя или модель звуковой карты, поэтому необходимо хотя бы знание чипсета. Ядро NetBSD способно распознать довольно много чипсетов, вы можете взглянуть на вывод команды dmesg и, возможно, Ваша карта напишет пару строк о себе.
Сделать это можно так:
#
dmesg | more
Поищите в выводе упоминание о звуковой карте или чипсете.
Иногда так бывает, что карта не работает из-за того, что не обнаружена или не настроена. Поскольку звуковые карты сейчас довольно дешевы, можно рассмотреть вопрос о покупке карты, точно поддерживаемой NetBSD, но перед этим давайте попробуем выполнить несколько простых шагов.
10.2. Настройка BIOS
В этой части мы рассмотрим метод, применимый только к платформам i386, на других он просто не будет работать, поскольку они не обладают такими возможностями. В первую очередь необходимо определиться с типом шины, используемой картой.
Интерфейсы ISA и PCI.
Звуковые карты ISA Plug and Play настраиваются несколько более хитро из-за особенностей взаимодействия с BIOS компьютера.
На более новых материнских платах (произведенных после 1997) есть опция BIOS, которая может причинить много головной боли при настройке устройств ISA Plug and Play (не только звуковых карт): Эта опция называется «PNP OS Installed» и находится обычно в меню «PNP/PCI Configuration» (может отличатся для различных версий BIOS). При работе с NetBSD эту опцию лучше всего отключить. Попробуйте поменять номера используемых прерываний таким образом, чтобы на прерывании, используемым звуковой картой ничего другого не было.
Замечание
Но на многих системах все превосходно работает и с включенной опцией «PNP OS Installed». Это сугубо индивидуально для каждой системы.
10.3. Конфигурирование устройства
При установке NetBSD создаются файлы устройств в каталоге /dev
. Нам интересны сейчас следующие:
/dev/audio
/dev/sound
/dev/mixer
Если их нет, придется создать:
#
cd /dev
#
./MAKEDEV all
С помощью этой команды создадутся все устройства, включая и аудио.
Теперь аудио-карта, скорее всего, готова к использованию.
Вы можете устроить маленькую проверку и послать аудиофайл на устройство (такие файлы обычно имеют расширение .au
). Если такого файла под рукой нет, то пошлите туда текстовый или бинарный файл, хотя ничего приятного для слуха в этом случае вы не услышите. Используйте /dev/audio
или /dev/sound
:
#
cat filename > /dev/audio
или
#
cat filename > /dev/sound
Если вы хоть что-то услышали, то карта поддерживается ядром, она обнаружена и сконфигурирована при загрузке. В противном случае Вам придется конфигурировать переменные ядра для поддержки аудиокарты, установленной в Вашей системе (в случае, если карта/чипсет поддерживается).
10.4. Конфигурирование аудиокарты в ядре
Как уже упоминалось, NetBSD поддерживает широкий диапазон звуковых карт. В ядре GENERIC они уже прописаны, но порой бывает необходимо вручную прописать IRQ и DMA для ISA карт, не поддерживающих стандарт PnP.
Замечание
Когда вы редактируете файл конфигурации ядра, для работы звуковой карты необходимо скопировать соответствующие строки из файла конфигурации GENERIC, для получения более полной информации смотрите Глава 28, Компиляция ядра.
Если звуковая карта не работает, стоит попробовать реализовать режим эмуляции других карт, так как некоторые карты работают только в таком режиме.
Многие чипсеты используют режим совместимости с SoundBlaster и OPL, так же достаточно большое число звуковых карт поддерживает эмуляцию WSS.
OPL является MIDI синтезатором производства Yamaha; есть несколько реализаций этого стандарта (OPL2, OPL3SA, OPL3SA2 и другие). Многие карты имеют этот или совместимый компонент. Для примера, чипы производства Crystal (среди них довольно распространенный CS423x) реализуют в себе эту технологию и хорошо работают с NetBSD.
Аббревиатура WSS является сокращением от Windows Sound System. WSS является драйвером ядра NetBSD, реализующем поддержку аудио системы Microsoft Windows. Многие карты работают с Windows придерживаясь именно этого стандарта, в NetBSD этот стандарт также реализован.
Для работы с NetBSD было протестировано много звуковых карт, довольно большое их число работает, только если в ядре имеется поддержка opl*
и wss*
.
У Вас не должно возникнуть никаких проблем при работе со звуковыми картами Creative SoundBlaster, поддерживаются все модели, включая Sound Blaster Live 1024!
Когда Вы добились работы звука, Вы можете убрать лишние устройства из ядра.
10.5. Дополнительные команды
В состав NetBSD входит множество команд, имеющих дело со звуковой картой:
10.5.1. audioctl(1)
audioctl(1) появилась в NetBSD 1.3 и используется для ручной установки некоторых переменных ввода/вывода, таких как дискретность записи и проигрывания. Просмотреть доступные параметры можно следующей командой:
#
audioctl -a | more
Например, чтобы установить качество воспроизведения музыки, аналогичное CD, необходимо использовать следующую команду:
#
audioctl -w play=44100,2,16,slinear_le
Эта команда установит дискретность 44100Hz, 2 аудио канала, 16 бит, декодирование slinear_le.
Вы можете просмотреть доступные кодеки командой:
#
audioctl encodings
Эта команда отобразит все доступные для вашей аудиокарты кодеки.
10.5.2. mixerctl(1)
Эта команда используется для формирования микширования аудио и имеет интерфейс, подобный audioctl(1).
10.5.3. audioplay(1)
С помощью этой команды Вы можете воспроизвести аудио файл в простом формате, таком как ULAW и WAV. Если Вам необходимо воспроизводить другие, более сложные форматы, Вы можете воспользоваться системой пакетов и установить то, что Вам необходимо (например, для декодирования mp3).
10.5.4. audiorecord(1)
Как следует из названия, это команда используется для записи аудио файлов.