Перед тем как начать, определите модель вашей карты, процессор, который она использует, и интерфейс карты: PCI или ISA. FreeBSD поддерживает множество разных PCI и ISA карт. Если вы не увидели вашу карту в следующем списке, загляните в руководство pcm(4). Нижеследующий список неполон, но, всё-таки, в нём перечислено большинство наиболее часто используемых карт.
Crystal 4237, 4236, 4232, 4231
Yamaha OPL-SAx
OPTi931
Ensoniq AudioPCI 1370/1371
ESS Solo-1/1E
NeoMagic 256AV/ZX
SoundBlaster® Pro, 16, 32, AWE64, AWE128, Live
Creative ViBRA16
Advanced Asound 100, 110, и Logic ALS120
ES 1868, 1869, 1879, 1888
Gravis UltraSound
Aureal Vortex 1 или 2
Для того, чтобы использовать звуковую карту, вы должный загрузить соответствующий драйвер устройства. Этого можно достигнуть двумя путями. Простейший способ - это просто загрузить соответствующий вашей карте модуль ядра используя kldload(8), что можно сделать или из командной строки:
# kldload snd_emu10k1.ko
или добавлением соответствующей строки к файлу /boot/loader.conf:
snd_emu10k1_load="YES"
Эти примеры приведены для звуковой карты Creative SoundBlaster Live!. Другие имеющиеся модули драйверов звуковых карты приведены в /boot/defaults/loader.conf Если вы не уверены, какой драйвер использовать, попробуйте загрузить snd_driver, который является метадрайвером, загружающим сразу все наиболее распространенные драйверы, это повышает скорость поиска правильного драйвера.
Другой способ подразумевает добавление статического драйвера в ваше ядро. В последующих разделах дана более подробная информация о том, что вам нужно сделать для добавления поддержки оборудования. Более подробно о конфигурация ядра описана в Chapter 9.
Если у вас одна из этих карт, вы должны добавить:
device pcm
в конфигурационный файл вашего ядра. Если у вас PnP ISA карта, добавьте также
device sbc
Для не-PnP ISA карт, добавьте:
device pcm device sbc0 at isa? port0x220 irq 5 drq 1 flags 0x15
в конфигурационный файл вашего ядра. Здесь указаны настройки по-умолчанию. Возможно вам придётся изменить IRQ или другие параметры в соответствии с настройками карты. Смотрите руководство sbc(4) для получения более подробной информации.
Note: Sound Blaster Live не поддерживается в FreeBSD 4.0 без исправления, которую этот документ не включает. Рекомендуется обновить систему до последней версии -STABLE перед использованием этой карты.
Для карты PnP ISA, вы должны добавить:
device pcm device gusc
в конфигурационный файл ядра. Если у вас не-PnP ISA карта, следует добавить:
device pcm device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13
в конфигурационный файл вашего ядра. Возможно вам придётся изменить IRQ или другие параметры в соответствии с настройками карты. Обратитесь к странице справочника gusc(4) для получения более подробной информации.
Для карт от Crystal, вы должны добавить:
device pcm device csa
в конфигурационный файл вашего ядра.
Для PnP ISA или PCI карт, вам следует добавить:
device pcm
в конфигурационный файл вашего ядра. Если у вас не-PnP ISA карта, не имеющая bridge driver, добавьте:
device pcm0 at isa? irq 10 drq 1 flags 0x0
в конфигурационный файл вашего ядра. Возможно вам придётся изменить IRQ, и прочие параметры, в соответствии с аппаратной конфигурацией.
Некоторые системы с интегрированными в материнские платы звуковыми картами требуют включения дополнительной опции в конфигурацию ядра:
options PNPBIOS
Note: Если вы работаете с FreeBSD 5.0 или более современной, параметр PNPBIOS не нужен. Теперь соответствующий код всегда включен, и параметр был удален из файла настройки.
После перезагрузки, зарегистрируйтесь в системе и проверьте наличие устройства в файле /var/run/dmesg.boot при помощи команды:
# grep pcm /var/run/dmesg.boot pcm0: <SB16 DSP 4.11> on sbc0
Результат на вашей системе может отличатся. Если упоминания об устройстве pcm отсутствует, то что-то перед этим было сделано неверно. Если это произошло, просмотрите файл конфигурации ядра еще раз и убедитесь, что вы выбрали правильное устройство. Наиболее часто встречающиеся проблемы описаны в Section 16.2.2.1.
Note: Если у вас установлена FreeBSD 5.0 или более поздняя, вы можете не читать всё, что описано далее в этом разделе. Эти версии FreeBSD используют devfs(5) для того, чтобы автоматически создавать файлы устройств.
Если ошибок нет и в вашей системе присутствует устройство pcm0, выполните su для получения прав пользователя root и сделайте следующее:
# cd /dev # sh MAKEDEV snd0
Если ошибок нет и в вашей системе присутствует устройство pcm1, то повторите указанные выше действия, заменив snd0 на snd1.
Пожалуйста, помните, что эти команды не создают устройство /dev/snd!
MAKEDEV создает группу устройств, включающую в себя:
| Устройство | Описание |
|---|---|
| /dev/audio | Sparc®-совместимое звуковое устройство |
| /dev/dsp | Аналого-цифровой преобразователь голоса |
| /dev/dspW | Тоже, что и /dev/dsp, но 16 бит на сэмпл |
| /dev/midi | Устройство доступа к MIDI |
| /dev/mixer | Устройство управления миксером |
| /dev/music | Интерфейс секвенсора второго уровня |
| /dev/sequencer | Устройство секвенсора |
| /dev/pss | Программируемый интерфейс устройства |
Если всё пройдет удачно, звуковая карта заработает. Если CD-ROM или DVD-ROM привод правильно подключён к звуковой карте, вы можете вставить CD в привод и воспроизвести его при помощи cdcontrol(1).
% cdcontrol -f /dev/acd0c play 1
Различные приложения, например audio/workman предлагают лучший пользовательский интерфейс. Вы можете также захотеть установить приложения для прослушивания звуковых файлов MP3, как например audio/mpg123.
| Ошибка | Решение |
|---|---|
| ``unsupported subdevice XX'' |
Одно или более устройств не были правильно созданы. Повторите приведенные выше шаги. |
| ``sb_dspwr(XX) timed out'' |
Порт ввода-вывода указан неправильно. |
| ``bad irq XX'' |
IRQ установлен неправильно. Убедитесь, что настройки в системе и на карте одинаковы. |
| ``xxx: gus pcm not attached, out of memory'' |
Для использования устройства недостаточно памяти. |
| ``xxx: can't open /dev/dsp!'' |
Проверьте с помощью fstat | grep dsp, не занято ли устройство другим приложением. Создать проблемы могут esound и поддержка звука в KDE. |
Достаточно часто встречается необходимость иметь несколько источников звука, которые должны воспроизводить одновременно, например когда esound или artsd не поддерживают совместное использование звукового устройства с некоторым приложением.
FreeBSD позволяет делать это при помощи виртуальных звуковых каналов, которые могут быть настроены с помощью sysctl(8). Виртуальные каналы позволяют вам мультиплексировать каналы воспроизведения звуковой карты, смешивая звук в ядре.
Для установки количества виртуальных каналов вы можете использовать две переменные sysctl, которые, если вы пользователь root, могут быть установлены таким образом:
# sysctl hw.snd.pcm0.vchans=4 # sysctl hw.snd.maxautovchans=4
В этом примере выделяются четыре виртуальных канала, чего вполне достаточно для повседневного использования. hw.snd.pcm0.vchans это количество виртуальных каналов устройства pcm0, оно может быть установлено сразу же, как только устройство было подключено. hw.snd.maxautovchans это количество виртуальных каналов, которые выделяются новому аудиоустройству, когда оно подключается при помощи kldload(8). Так как модуль pcm может быть загружен независимо от аппаратных драйверов, hw.snd.maxautovchans может указывать количество виртуальных каналов для любых устройств, которые будут подключены позже.
Если вы не используете devfs(5), необходимо будет указать приложениям /dev/dsp0.x, где x это число от 0 до 3, если hw.snd.pcm0.vchans установлено в значение 4. Для системы, использующей devfs(5), вышеуказанные настройки будут сделаны автоматически прозрачно для пользователя.
Значения по умолчанию для различных каналов mixer жестко прописаны в исходных текстах драйвера pcm(4). Существует множество различных приложений и даемонов, которые позволяют устанавливать значения для mixer, которые они запоминают и выставляют каждый раз при запуске, но это не совсем правильное решение, нам нужны значения по умолчанию на уровне драйвера. Они могут быть установлены путем указания в /boot/device.hints. Например:
hint.pcm.0.vol="100"
Установит значение для канала volume в значение по умолчанию 100, как только будет загружен модуль pcm(4).
Note: Только FreeBSD 5.3 и более свежие релизы поддерживают эту возможность.
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.