Перед тем как начать, Вы должны знать модель Вашей карты, процессор, который она использует, и интерфейс карты: 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
Sound Blaster Pro, 16, 32, AWE64, AWE128, Live
Creative ViBRA16
Advanced Asound 100, 110, and Logic ALS120
ES 1868, 1869, 1879, 1888
Gravis UltraSound
Aureal Vortex 1 or 2
Для того, чтобы использовать звуковую карту Вы должный загрузить соответствующий драйвер устройства. Этого можно достигнуть двумя путями. Простейший способ - это просто загрузить соответствующий Вашей карте модель ядра используя kldload(8). Другой способ подразумевает добавление статического драйвера в Ваше ядро. В последующих разделах дана более подробная информация о том, что Вам нужно сделать для добавления поддержки Вашего оборудования. Более подробно о конфигурации ядра смотрите секцию 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 card, Вы должны добавить:
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
После перезагрузки, зарегистрируйтесь в системе и проверьте наличие устройства в файле /var/run/dmesg.boot при помощи команды:
# grep pcm /var/run/dmesg.boot pcm0: <SB16 DSP 4.11> on sbc0
Результат на Вашей системе может отличатся. Если упоминания об устройстве pcm отсутствует, то что-то перед этим было сделано неверно. Если это произошло, просмотрите Ваш файл конфигурации ядра еще раз и убедитесь что Вы выбрали правильное устройство. Наиболее часто встречающиеся проблемы описаны в разделе Section 14.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'' | One or more of the device nodes was not created correctly. Repeat the steps above. |
``sb_dspwr(XX) timed out'' | The I/O port is not set correctly. |
``bad irq XX'' | The IRQ is set incorrectly. Make sure that the set IRQ and the sound IRQ are the same. |
``xxx: gus pcm not attached, out of memory'' | There is not enough available memory to use the device. |
Достаточно часто встречается необходимость иметь несколько источников звука, которые должны воспроизводить одновременно, например когда 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), вышеуказанные настройки будут сделаны автоматически прозрачно для пользователя.