16.2 Настройка звуковой карты

Предоставил Moses Moore.

16.2.1 Определение вашего устройства

Перед тем как начать, определите модель вашей карты, процессор, который она использует, и интерфейс карты: 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.

Другой способ подразумевает добавление статического драйвера в ваше ядро. В последующих разделах дана более подробная информация о том, что вам нужно сделать для добавления поддержки оборудования. Более подробно о конфигурация ядра описана в Chapter 9.

16.2.1.1 Карты Creative, Advance, и ESS Sound

Если у вас одна из этих карт, вы должны добавить:

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 перед использованием этой карты.

16.2.1.2 Карты Gravis UltraSound

Для карты 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) для получения более подробной информации.

16.2.1.3 Карты Crystal Sound

Для карт от Crystal, вы должны добавить:

device pcm
device csa

в конфигурационный файл вашего ядра.

16.2.1.4 Прочая поддержка

Для PnP ISA или PCI карт, вам следует добавить:

device pcm

в конфигурационный файл вашего ядра. Если у вас не-PnP ISA карта, не имеющая bridge driver, добавьте:

device pcm0 at isa? irq 10 drq 1 flags 0x0

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

16.2.1.5 Поддержка интегрированных карт

Некоторые системы с интегрированными в материнские платы звуковыми картами требуют включения дополнительной опции в конфигурацию ядра:

options PNPBIOS

Note: Если вы работаете с FreeBSD 5.0 или более современной, параметр PNPBIOS не нужен. Теперь соответствующий код всегда включен, и параметр был удален из файла настройки.

16.2.2 Создание и тестирование устройства

После перезагрузки, зарегистрируйтесь в системе и проверьте наличие устройства в файле /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.

16.2.2.1 Часто встречающиеся проблемы

Ошибка Решение
``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.

16.2.3 Использование нескольких источников звука

Предоставил Munish Chopra.

Достаточно часто встречается необходимость иметь несколько источников звука, которые должны воспроизводить одновременно, например когда 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), вышеуказанные настройки будут сделаны автоматически прозрачно для пользователя.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости