RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Общая рекомендация для всех карт - выключите в BIOS, "PnP OS Enable". Поддерживаемые карты можно найти в ядре: `cd /sys/dev/sound` По умолчанию подразумевается что вы не забудете для ISA добавить в ядро: device isa
а для PCI:
device pci
а для звуковых карт, в случае использования драйвера newpcm, строку: device pcm
Примечание: прежде чем скачивать драйвера со страниц разработчиков, посмотрите версию вашей системы:
uname -a и текущие драйвера для звуковых карт, возможно ваша карта уже поддерживается вашим ядром, изучите содержимое:
cd /usr/src/sys/dev/sound - здесь находится sound-driver newpcm grep "номер_вашего_чипа" */*
cd /usr/src/sys/i386/isa/sound - здесь находится старый VoxWare sound-driver, почитайте имеющиеся там README.
Экспериментальный драйвер для звуковых карт интегрированных в материнскую карту: AC'97 интерфейс Intel 443MX, 810 и 820 чипсетов (возможна работа 815E чипов) Примечание: уже в FreeBSD 4.4-RELEASE http://www.katsurajima.seya.yokohama.jp/ich/
Установка: скачать драйвер с указанной выше страницы: ich.c.gz
device pcm - не забыв про поддержку устройств pci, затем пересобрать ядро, перегрузиться и посмотреть распознало ли новое ядро вашу звуковую карту:
`dmesg | grep pcm` или `cat < /dev/sndstat`
- если все ok, запустить mixer и посмотреть параметры, или скомпилить mixer на вкус их портов:
aumix/xmix/xmixer/xmmix/...
- если получили в ответ "no such device" - просто создайте их:
cd /dev; ./MAKEDEV snd0 (0,1,... - в зависимости от количества карт)
Примечание: к счастью у меня неразрешимых проблем со звуковыми картами не было: PNP16(ISA), AWE32/64, Ensoniq 1371, Aureal 8820. Тем у кого ЕСТЬ проблемы с картами поддерживаемыми во FreeBSD сооветую изучить уже указанные ссылки и те что ниже:
Поддержка звуковых карт в ядре посредством двух драйверов: - старые карты (ISA) поддерживаются драйвером Voxware:
Adlib SoundBlaster SoundBlaster Pro ProAudioSpectrum Gravis UltraSound Roland MPU-401 sound cards.
- более современные карты поддерживаются новым драйвером newpcm (включая поддержку старых карт из Voxware):
Advance Asound 100, 110 and Logic ALS120 Crystal Semiconductor CS461x/462x/428x ENSONIQ AudioPCI ES1370/1371 ESS ES1868, ES1869, ES1879 and ES1888 ESS Maestro-1, Maestro-2, and Maestro-2E ForteMedia fm801 Gravis UltraSound MAX/PnP MSS/WSS Compatible DSPs NeoMagic 256AV/ZX OPTi 931/82C931 SoundBlaster, Soundblaster Pro, Soundblaster AWE-32, Soundblaster AWE-64 Trident 4DWave DX/NX VIA Technologies VT82C686A Yamaha DS1 and DS1e Ниже список из FreeBSD HandBook 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
Примеры конфигурации ядра с поддержкой различных карт в FreeBSD:
Из HandBook (непоятно, почему постоянные вопросы КАК МНЕ ЗАСТАВИТЬ РАБОТАТЬ...)
1. Creative, Advance, and ESS Sound Cards Creative SB16, SB32, SB AWE64 (including Gold) and ViBRA16 Advance Asound 100, 110 and Logic ALS120 ESS ES1868, ES1869, ES1879 and ES1888 Вариант 1. Описания KERNEL: PnP-ISA: device pcm device sbc Вариант 2. Non-PnP device pcm device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15 с вашими port=0xABC и irq=X о сути и значениях flags читайте: man 4 sbc & man 4 pcm
2. Gravis UltraSound Cards Вариант 1. Описания KERNEL: PnP-ISA: device pcm device gusc Вариант 2. gusc - Gravis UltraSound ISA bridge device driver Gravis UltraSound PnP Gravis UltraSound MAX Non-PnP device pcm device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13 с вашими port=0xABC и irq=X о сути и значениях flags читайте: man 4 gusc & man 4 pcm
3. Crystal Sound Cards csa - Crystal Semiconductor CS461x/462x/428x PCI bridge device driver Описания KERNEL: device pcm device csa man 4 gusc & man 4 pcm
4. PCI Карты поддерживаемые текущим драйвером pcm (newpcm) Trident 4DWave DX/NX (PCI) ENSONIQ AudioPCI ES1370/1371 (PCI) [ряд SB PCI-128 выполнен именно на чипах ES1370/1371] ESS Solo-1/1E (PCI) NeoMagic 256AV/ZX (PCI) Описания KERNEL: device pcm
Все! Неправда ли - несложно.
Примечание: вполне возможно что ваша карта сделана на чипсете который поддерживается драйвером, но после генерации и установки нового ядра, карта все равно не распознается. Запишите при загрузке Device-ID и Vendor-ID и поищите в драйверах для вашей карты эти значения, попробуйте добавить ваши, возможно это решит вашу проблему. Создали свое ядро в файле /sys/i386/conf/MYKERNEL
cd /sys/i386/conf config MYKERNEL cd ../../compile/MYKERNEL make depend make make install
- установили новое ядро в систему, после перезагрузки ваша карта должна опознаться, см. dmesg. Если не опозналась - ищите проблему. Итак карта опознана, осталось создать необходимые устройства, скомпилировать например, mpg123 и проверить работоспособность:
Карта опознана драйвером и на чем живет и в каком режиме - мы видим. затем создаем необходимый набор устройств для карты, в зависимости от того как ее опознало ядро - pcm0 или pcm1:
для pcm0 cd /dev ./MAKEDE snd0 для pcm1 cd /dev ./MAKEDE snd1
получаем набор следующих устройств, зависимо от карты и драйвера:
Device Description /dev/audio SPARC-compatible audio device /dev/dsp Digitized voice device /dev/dspW Like /dev/dsp, but 16 bits per sample /dev/midi Raw midi access device /dev/mixer Control port mixer device /dev/music Level 2 sequencer interface /dev/sequencer Sequencer device /dev/pss Programmable device interface
Если для вашей карты драйвер поддерживает несколько каналов, то вам необходимо создать соответствующее количество устройст /dev/dspX в соответствии с описанием в драйвере.
Примечание: Aureal - разнообразие Vortex, драйвера для этих карт ныне в портах и выполнены как подгружаемые модули: kldstat - посмотреть, kldload module_name - загрузить.
aureal-driver -> /usr/ports/audio/aureal-kmod
Из недорогих и на мой взгляд хороших, удачных карт - Aureal и Maestro, кроме того их драйвера поддерживают больше одного канала dsp, конечно же Ensoiq-1370/71, но с одним каналом. Остальные карты SB AWE/Live - дорогие и посему я их на своих машинах не пробовал, хотя у соседей фунциклируют без особых проблем. Полезную информацию по звуковым картам на шине ISA можно найти в старых драйверах ядра VOXWARE: /usr/src/sys/i386/isa/sound Новые драйвера можно посмотреть в /usr/src/sys/dev/sound Важно одно - необходимо осознавать ЧТО вы хотите сделать и ЧТО вы СОБСТВЕННО ДЕЛАЕТЕ: - шина: ISA или PCI - NonPnP/PnP - карта full-duplex - правильно указаны IO/IRQ/DMA если что-то не так или не понимаете, попробуйте посмотреть конфигурации карты в DOS или Windows. Зачастую, по указанным выше ссылкам, вы найдете старую информацию, например конфигурацию SoundBlaster на базе драйвера VoxWare и для версии FreeBSD 2.2.x, 3.x, так что будьте внимательны и осознавайте ЧТО ВЫ ДЕЛАЕТЕ. Всегда полезно посмотреть что и как у вас опозналось, команды:
- `dmesg` - `pciconf -l` - `pnpinfo`
Если вы разобрали и устранили все проблемы связанные с конфигурированием ваших Soundblaster'ов, можете приступить к сборке различного мултимедиа software(я перечислю свои личные предпочтения, это не значит что они лучшие): Миксеры:
- mixer /usr/sbin/mixer
- aumix cd /usr/ports/audio/aumix make && make install aumix
- xmix cd /usr/ports/audio/xmix make && make install RIFF/U-law/WAV player'ы:
- play cd /usr/ports/audio/play make && make install play -f /dev/cdrom -f s/u/U/A/a/g filename [effects] see sox. rec
- waveplay cd /usr/ports/audio/waveplay make && make install waveplay [options]
- wavplay cd /usr/ports/audio/wavplay make && make install wavplay [options] MP3-player'ы:
ftp://ftp.xaudio.com/pub/xaudio/tools/unix-motif/ x86-unknown-freebsd-elf/mxadb-1.0.x86-unknown-freebsd-elf.tar.gz xaudio filename.mp3 или mxaudio [front-end к xaudio & mxadb] - x11amp [OSS player] cd /usr/ports/audio/x11amp make && make install x11amp - xamp cd /usr/ports/audio/xamp make && make install xamp CD-player'ы: - cdplay [text-based cd-player] cd /usr/ports/audio/cdplay make && make install - cd /usr/ports/audio/xmcd make && make install cd /usr/X11R6/lib/X11/xmcd/config vi common.cfg модифицируем cddbPath cddbPath: rock;jazz;blues;newage;classical;reggae;folk;country;soundtrack;misc;data; cddbp://cddb.sai.msu.su;cddbp://cddb.ton.tut.fi;cddbp://sunsite.unc.edu Russian cddb: zeus.sai.msu.ru /usr/X11R6/bin/xmcd Конвертеры: - sox [Sound Converter: .au,.voc,.wav,.aiff,.riff,.cdr,.raw,mono/stereo...] cd /usr/ports/audio/sox make && make install прошу прощения за примеры, тут их мульон... - см. man sox - bladeenc [mp3-encoder] cd cd /usr/ports/audio/bladeenc make && make install bladeenc -crc -192 *.wav (создать *.mp3 с bitrate 192 и crc) bladeenc -del -256 *.wav (создать *.mp3 с bitrate 256 и удалить *.wav) bladeenc track-01.wav track-02.wav (создать track-01.mp3, track-02.mp3 с bitrate==128) поддерживаемые bitrate's: 32,40,48,56,64,80,96,112,128,160,192,224,256,320 default bitrate=128 - lame [инструментарий на базе ISO-codecs, VBR supported] cd /usr/ports/audio/lame make && make install lame -h Losa-Opyat.wav Losa-Opyat.mp3 (кодировать с постоянным bitrate=128) lame -v file.wav file.mp3 (кодировать с VBR качеством=4 by default) lame -v 0 -b 64 -B 256 file.wav file.mp3 (кодировать с VBR=0 наивысшее качество, нижняя граница bitrate=64 верхняя bitrate=256) Ripper'ы/Grabber'ы: - atapi ripper - dagrab cd /usr/ports/audio/dagrab make && make install cd /dev && ln -s acd0c cdrom (acd0c - заменить на устройство в вашей конфигурации) dagrab -a (по умолчанию используется устройство /dev/cdrom и формат выходных файлов track%02d.wav) dagrab -a -d /dev/acd0c -f Losa_%02d.wav [сграбить весь диск и создать выходные файлы: Losa_01.wav Losa_02.wav ... Losa_0n.wav - scsi ripper - tosha (scsi - the best, сравнений с EIDE[UDMA] БЫТЬ не может) cd /usr/ports/audio/tosha make && make install cd /dev && ln -s rcd0c cdrom (rcd0c - заменить на устройство в вашей конфигурации, man 4 scsi, man 4 cd, man 4 da)
Примечание: если драйвер вашей звуковой карты поддерживает несколько каналов, вы можете запускать ваши приложения с указанием различных каналов и наслаждаться кокофонией a-la M$ Windows