|
FreeBook FreeBSD OtherBSD SB Linux OtherOS FreeProgs FreeNotes FreeGeo SiteMap |
FreeBSD и звук
Да и можно слушать Баха
Даже плавая в дерьме. Тимур Шаов Для прослушивания музыки во FreeBSD 5-й ветки необходимости в перекомпиляции ядра может и не быть - к ядру GENERIC прилагается комплект модулей для большинства распространенных аудиочипов. Список оных можно посмотреть в каталоге /boot/kernel (если ядро после инсталляции системы не пересобиралось) или в /boot/kernel.old (если эту процедуру уже успели проделать). Модули поддержки аудиоустройств имеют вид snd_*.ko. Среди всяких разных "*" можно увидеть такие чипы, как Ensoniq137X (на них основаны обычно карты, известные под именем Sound Blaster AWE128), Solo, Maestro и т.д. (включая, конечно же, SB8 и SB16). Есть модули и для поддержки встроенного звука Intel'овских и VIA'шных чипсетов (AC'97; правда, не знаю, как они относятся к мостам ICH4/5 последних i845 и i865/i875 - буду признателен за информацию по сему предмету), а также универсальный модуль для большинства PCI-карт. Полный список чипов, поддержка которых доступна в виде модулей, можно просмотреть в дереве исходников ядра: $ ls /usr/src/sys/modules/sound/driver Для версии 5.X вывод этой команды будет (исключая make-файлы) примерно следующим: ad1816/ als4000/ cmi/ cs4281/ csa/ driver/ ds1/ emu10k1/ es137x/ ess/ fm801/ ich/ maestro/ maestro3/ mss/ neomagic/ sb16/ sb8/ sbc/ solo/ t4dwave/ uaudio/ via8233/ via82c686/ vibes/ Так что если нет желания пересобирать ядро, а желание слушать музыку, напротив, есть, достаточно подгрузить соответствующий модуль командой kldload, например, для SBAWE128 это будет выглядеть так: $ kldload /boot/kernel/snd_es137x.ko Процесс загрузки модуля поддержки звука можно автоматизировать, отредактировав файл /boot/loader.conf. Как именно - легко догадаться, просмотрев "эталонный" файл /boot/defaults/loader.conf - точнее, его секцию Sound modules. Однако, по моему скромному мнению, процесс перекомпиляции ядра все равно неизбежен при индивидуальной настройке FreeBSD. И потому не вижу причин, почему бы благородному дону (и тем более благородной донье) не встроить поддержку звука непосредственно в ядро. Тем более, что для большинства PCI-карт на распространенных аудиочипах для этого достаточно одной строки device pcm Некоторые сложности могут возникнуть при настройке старых, в том числе высококлассных, ISA-карт. Лично я с ними дела не имел, и потому собственными впечатлениями поделиться не могу. Однако этот вопрос очень подробно описан на странице Андрея Лаврентьева, к коей и предлагаю обратиться заинтересованным лицам. Из сказанного ясно, что общение со звуком во FreeBSD на элементарном уровне не требует каких-либо хитроумных манипуляций с ALSA-драйверами, как в Linux. Возможно, правда, что и результат оказывается несколько хуже, но для не принадлежащих к числу записных меломанов - вполне удовлетворительный (то есть удовлетворяющим кондициям). Что же касается средств для того, чтобы воспользоваться достижениями аудиостроительства, то есть звуковых плееров всякого рода, - их есть в портах FreeBSD. Причем - ничуть не меньше, чем в любом дистрибутиве Linux, в чем легко убедиться командой $ /usr/ports/audio в выводе которой можно увидеть все mpeg-плееры, от простых консольных mpg123 и mpg321 до xmms со всеми его наворотами, проигрыватели CD, средства их о-grab'ления и конвертации. Так что останавливаться на этом не буду, тем паче что в своей книжке я уделил этому вопросу, думается, должное внимание. Однако за время, прошедшее с ее написания, изрядную популярность приобрел истинно свободный аудиоформат - OGG. Так вот, для работы с ним во FreeBSD можно обнаружить порт vorbis-tools, включающий средства для для кодирования (oggenc) и декодирования (например, в raw-формат, - oggdec) ogg-файлов, получения информации об оных (ogginfo) и редактирования комментариев (vorbiscomment), расщепления записанного ogg-потока на отдельные части (vcut) и, конечно же, воспроизведения ogg-музыки (ogg123). Последняя программа унаследовала от своего mpeg-прототипа не только имя, но и простоту использования: команда $ ogg123 /path/* воспроизведет подряд все ogg-файлы из указанного каталога, причем, в отличие от mpg123, рекурсивно включая и вложенные подкаталоги. Последнего можно избежать, задав аргумент команды в виде маски /path/*.ogg. Процесс получения ogg-файлов (коими Сеть пока не перегружена) столь же прост: $ oggenc *.wav Превратит все wav'ы текущего каталога в ogg'и. Впрочем, никто не запрещает задать имя входного и выходного файла явным образом. Разумеется, имеется вдоволь опций, задающих битрейт, уровень качества, вставку комментариев и т.д. Однако даже при умолчальных настройках качество получаемого аудио вполне нормальное. Чего еще не хватает для счастья FreeBSD-юзеру? Ну конечно же, проигрывателя аудио в Real-формате. Но это - тема отдельного разговора. |
||||