Linux. Звук.
 
Автор X-Stranger (Все статьи)
Опубликовано19.10.2002
Источник http://linux.hitech.by/
РазделLinux
Просмотров1076
Написать отзыв
Оцените статью!
  • Рейтинг статьи - 5.00 из 5
  • 1
  • 2
  • 3
  • 4
  • 5

Судя по письмам, приходящим на мой электронный почтовый адрес, у многих пользователей возникли некоторые трудности с настройкой звука. Попробуем рассмотреть этот вопрос поподробнее. Итак, сегодня мы будем учить Linux говорить.

На теперешний момент существует несколько различных драйверов звуковых карт под Linux. Почему? Углубимся в недалекое прошлое.

С появлением первых версий Linux Ханну Савойлайнен из Финляндии написал драйвера для звуковой карты Creative Labs Sound Blaster. После он вместе с другими разработчиками добавил поддержку и других популярных (и не очень) звуковых карт. Впоследствии американская фирма 4Front Technologies предложила Саволайнену сотрудничество и стала продавать драйверы звуковых карт в качестве коммерческого продукта,  который сейчас называется OSS v Open Sound System. Эти драйвера используются  во многих операционных системах. В состав ядра Linux входит бесплатная версия звукового драйвера OSS под названием OSS/Lite.

Но некоторых программистов, использовавших звуковые карты Gravis UltraSound, этот драйвер не устраивал. И они, во главе с Ярослевом Киселой, создали свой собственный проект под названием Gravis UltraSound Project, чтобы написать драйвер для своих звуковых карт. Впоследствии этот проект разросся, была добавлена поддержка других звуковых карт. Тогдаипоявилась ALSA v Advanced Linux Sound Architecture.

Но на этом дело не закончилось. Разработчик Алан Кокс по заданию фирмы Red Hat Software изменил звуковые драйвера OSS/Lite, выделив их в отдельные звуковые модули, чем упростил настройку звука. Эти драйвера входят в стандартную поставку Linux.

Есть еще группа драйверов. Эти драйверы выпускают сами производители звуковых карт, но они поставляются только в двоичном  коде. Это позволяет производителям программного обеспечения держать в секрете от конкурентов информацию об их оригинальных разработках. Но это не позволяет пользователям самим исправлять ошибки и совершенствовать драйвера.

Итак, сделаем выводы. Звуковые драйверы делятся на четыре группы:

  1. OSS/Lite v распространяются бесплатно, включены в ядро Linux, поддерживают большинство звуковых карт, но больше уже не совершенствуются и не имеют прямой поддержки Plug and Play;
  2. OSS v поддерживают большое количество звуковых карт, легко устанавливаются, поддерживают Plug and Play, хорошо совместимы с OSS/Lite, имеют дополнительные возможности, но это коммерческий продукт, который, кроме того, не предоставляет исходный код;
  3. ALSA v бесплатны, почти совместимы с OSS/Lite, поддерживают Plug and Play, активно совершенствуются, имеют дополнительные возможности, но в настоящее время поддерживают лишь несколько звуковых карт;
  4. Драйверы производителей звуковых карт v поддерживают звуковую карту, которая может не поддерживаться другими драйверами, но доступны лишь в двоичном коде, и не всегда полностью совместимы с OSS/Lite.

Ну вот, с выбором драйвера мы уже определились. Теперь, для настройки, нам не помешало бы собрать информацию о звуковой карте. Хотя часто успешно настроить звуковую карту и не имея всех данных, рекомендуется узнать производителя и модель звуковой карты, номер прерывания IRQ, адреса портов ввода-вывода, каналы DMA, тип микросхемы, использующейся в звуковой карте, тип шины для звуковой карты (ISA, ISA Plug and Play, PCI). Некоторые из этих параметров можно узнать просто открыв корпус компьютера. Если же у вас стоит какая-либо другая ОС, то можно использовать те же параметры, что и в ней.

Есть вообще три метода настройки звуковых карт в Linux. Рекомендуется пробовать их в той последовательности, в которой они описываются.

Первый метод v использование автоматизированной программы настройки. В состав некоторых дистрибутивов входит утилита, позволяющая автоматически настраивать звуковые карты. Использование этой программки является наиболее простым способом настройки звука. В Red Hat Linux для такой настройки используется программка sndsonfig. Она производит поиск всех карт, поддерживающих Plug and Play. Если таковые присутствуют в системе, то будет выведен список, в котором можно выбрать необходимую звуковую карту. Затем можно установить номер прерывания IRQ и каналы DMA, указать адрес порта ввода-вывода. Для карт Plug and Play эти параметры при можно установить автоматически. После, тип звуковой карты сохраняется в файле /etc/sysconfig/soundcard. Для Plug and Play карт также будет создан файл /etc/isapnp.conf , который используется утилитами ISA Plug and Play для настройки звука при загрузке системы. Также конфигурируется файл /etc/conf.modules , в котором указываются соответствующие модули ядра для загрузки во время старта системы.

Для настройки звуковых драйверов OSS или ALSA воспользуйтесь аналогичными программами, которые идут в поставке с ними.

Второй метод включает в себя выполнение описанных выше действий вручную. Если у вас карта ISA Plug and Play, то, если вы не используете драйвера OSS или ALSA, для настройки сначала вам необходимо воспользоваться утилитой isapnp. Для этого следует выполнить следующую последовательность действий: создать резервную копию файла /etc/isapnp.conf ; при помощи утилиты pnpdump создать новый файл /etc/isapnp.conf , для чего выполните команду pnpdump > /etc/isapnp.conf ; отредактировать этот файл, установив необходимые параметры карты, для чего достаточно снять комментарии с соответствующих строк; запустить программу isapnp. Более подробно о настройке карт ISA Plug and Play можно узнать из документации на isapnp, isapnp.conf, pnpdump.

Загрузкой звуковых модулей ядра занимается демон kerneld (или kmod в новых версиях). Чтобы указать модули, которые следует загружать, необходимо отредактировать файл /etc/conf.modules. Подробная информация о нем есть в документации на указанный демон. Приводимый ниже пример реализует загрузку драйверов для SoundBlaster 16 с драйвером OSS/Lite:

alias sound sb

alias synth0 midi

alias midi opl3

options opl3 io=0x388

options sb io=0x220 irq=10 dma=3 dma16=7 mpu_io=0x330

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

alias char-major-116 snd

alias char-major-14 soundcore

alias snd-card-0 snd-sb16

alias snd-slot-0 snd-card-0

alias sound service-0-0 snd-mixer-oss

alias sound service-0-1 snd-seq-oss

alias sound service-0-3 snd-pcm1-oss

alias sound service-0-4 snd-pcm1-oss

options snd snd_card_limit=1

# options for sb16

options snd-sb16 snd_port=0x220 snd_mpu_port=0x330 snd_irq=10

  snd_dma8=3 snd_dma16=7 snd_dma8_size=64 snd_dma16_size=128

  smd_mic_agc=1 snd_isapnp=0

# initialize mixer

post-install snd-sb16 alsactl restore

Для настройки и загрузки драйвера OSS обычно используется скрипт soundon. Если модули сконфигурированы правильно, то они должны загружаться автоматически, как только какое-нибудь приложение обратится к звуковой карте.

Обычно модули расположены в каталоге /lib/modules/a.b.c/misc , где a.b.c v версия ядра. Иначе их надо встроить в ядро.

Третий метод заключается в непосредственной перекомпиляции ядра с указанием драйверов, которые необходимо в него встроить. Этот метод не требует указания модулей для загрузки. Подробнее перекомпиляцию ядра мы рассмотрим в какой-либо из следующих статей (хотя можно почитать и мануал), но вкратце процесс настройки драйверов звуковых карт можно описать так. После установки  пакета с исходными текстами, надо зайти в каталог с исходниками (/usr/src/linux) и дать команду make menuconfig. Загрузится текстовая оболочка с менюподобным интерфейсом. Для настройки требуется изменять опции в подменю ?Sound¦ и ?Additional low level sound drivers¦. Программа интуитивно понятна и позволяет указать описанные выше параметры звуковых карт без особых проблем. После вам потребуется откомпилировать ядро и установить его.

Теперь, чтобы убедиться в правильности настройки звуковой карты, надо проверить, загружаются ли звуковые драйверы. Информацию о состоянии звуковой карты можно получить командой cat /dev/sndstat. Если вместо информации вы получите сообщение об ошибке, например cat:/dev/sndstat: Operation not supported by device, то это значит, что звуковые модули не были загружены. Здесь стоит сказать, что для драйвера ALSA каталог /dev/sndstat не создается. Его аналогом является каталог /dev/asound.

После того, как вы удостоверились, что звуковые модули загружаются, можно приступить к тестированию звуковой карты. В первую очередь рекомендуется запустить микшер, попробовать поизменять различные настройки и посмотреть, не возникают ли при этом ошибки. Используйте xmixer, aumix, kmix. Для проигрывания файлов можно воспользоваться программами play или kmedia.

www.i2r.ru
 
Новое в разделе “Статьи”
  • Софт-каталоги: Выбор сделан!?
    Софт-каталоги: Выбор сделан!?

    Эта статья написана в основном с точки зрения разработчика программ, желающего разместить свои творения в софт-каталогах. Но и простым пользователям она будет интересна...

  • Заглядываем внутрь Apple MacBook Air
    Заглядываем внутрь Apple MacBook Air

    Детище компании Apple выглядит просто идеально. Мы и рассмотрим внутреннее устройство популярного нынче ноутбука Apple MacBook Air...

Все новые статьи

   
Свежие новости

Все новости

 
Категории
Hardware
SOFT Обозрение
Безопасность
Игры
Общие темы
Программирование
Раскрутка сайтов
Сотовые
Операционки
Apple Macintosh
Windows
Разное
 
Лучшие авторы
Security Lab
Gray
i2R
Павел Ряйкконен
И. Д. "Электронный Офис"
Все авторы
СофтПортал

Сделать стартовой

Добавить в Избранное

 
Наш опрос
Каким браузером Вы пользуетесь?

Avant Browser
Internet Explorer
Maxthon (MyIE2)
Mozilla Firefox
Netscape
Opera
Safari
другой

Предыдущие опросы