|
4. Установка
Настройка Linux для поддержки звука включает следующие этапы:
В следующих разделах будут детально рассматриваться каждый из этапов.
4.1 Установка звуковой карты
Для установки оборудования следуйте инструкциям производителя или заставьте продавца установить карту. Старые карты обычно имели переключатели или наборы джамперов для установки IRQ, каналов DMA и т.п.; запишите используемые значения. Если вы не уверены, используйте значения по умолчанию. Старайтесь, если возможно, избегать конфликтов с другими устройствами (например картами ethernet, адаптерами SCSI, сериальными и параллельными портами). Обычно вы должны использовать теже самые установки для портов ввода/вывода, IRQ и DMA, которых работают под DOS. Однако в некоторых случаях (особенно с PnP картами) вы можете использовать другие настройки, чтобы заставить карту работать под Linux. Нужно провести несколько экспериментов.
4.2 Настройка ядра
Когда вы устанавливаете Linux вы вероятно используете готовое ядро. Эти ядра обычно не обеспечивают поддержку звука. Желательно самим перекомпилировать ядро с необходимыми вам драйверами. Вы можете также пересобрать ядро для его обновления или чтобы освободить память, уменьшая размер ядра. Вы должны проконсультироваться с Linux Kernel HOWTO для получения детальной информации о компиляции ядра. Я буду упоминать здесь только вещи, специфичные для звуковых карт. Если вы до этого никогда не настраивали ядро для поддержки звука, то хорошей идеей будет прочитать все Readme-файлы, поставляемые с драйвером звука. Вы можете найти следующую информацию в директории звукового драйвера, обычно устанавливаемого в директорию /usr/src/linux/drivers/sound:
CHANGELOG - описание изменений в каждой версии COPYING - ограничения копирования и авторские права Readme - последнии и наиболее важные новости Readme.aedsp16 - информация о звуковой карте Audio Excel DSP 16 Readme.cards - замечания о конфигурировании специфичных карт Readme.linux - замечания о раздельной установке звуковых драйверов Readme.modules - как построить драйвер как загружаемый модуль Readme.v30 - новые возможности в драйвере версии 3.0 experimental.txt - замечания об экспериментальных возможностях Следуйте обычной процедуре построения ядра. В настоящее время существует три интерфейса процесса конфигурации. Графический интерфейс, который запускается под управлением X11 может быть запущен командой "make xconfig". Управляемая меню система, которая требует только текстовый экран вызывается командой "make menuconfig". Оригинальный метод, используя "make config", запускает простой текст-ориентированный интерфейс. Необходимо быть осторожным, когда используются "make xconfig" или "make menuconfig". Все вопросы Yes/No должны быть проверены. Ответ по умолчанию, используемый в этих командах, всегда No, что не всегда правильно. В частности опция "/dev/dsp and /dev/audio support" (CONFIG_AUDIO) обычно должна быть разрешена. В этом документе я буду предполагать, что вы используете традиционный, командно-строковый интерфейс, запускаемый командой "make config", хотя процесс подобен в каждом случае. Существует 2 разных способа конфигурирования звука. Первый -- это "старый" способ (единственный в ядрах до 2.0.0). Он использует стандартную программу конфигурации, которая является частью драйвера звука. Этот метод работает с большинством карт, исключая редкие карты, которые требуют дополнительных "низкоуровневых" драйверов (карты miroSOUND, AWE32, и AEDSP16 cards). Второй -- это "новый" способ, который лучше интегрирован с меню-ориентированной программой используемой для недавних (rest) ядер. Однако он не работает с звуковыми картами, которые требуют загрузки фирменных файлов. Это относится к картам PSS, SM Wave, AudioTrix Pro и TurtleBeach Tropez/Maui. С этими картами необходимо использовать старый метод. "Новый" метод всегда используется командой "make xconfig". Когда используется "make menuconfig", вы можете выбрать между "старым" и "новым" методами. Когда используется "make config", по умолчанию используется "старый" метод. Однако если вы однажды использовали "новый" метод, он также будет использоваться и "make config". Вы можете переключится обратно на "старый" метод запустив "make menuconfig" и выбрав "старый" метод. Рекомендуемый метод -- использовать "make menuconfig" вместе со "старым" методом настройки звука. Много проблем с настройкой звука возникают (по крайней мере частично) некорректным использованием "нового" метода. Также возможно скомпилировать звуковой драйвер как загружаемый модуль. Я рекомендую вначале построить драйвер в ядре. После тестирования и работы вы можете использовать в качестве модуля ядра. Когда вы запускаете
Sound card support (CONFIG_SOUND) [M/n/y/?] После окончания вопросов настройки, программа настройки звука будет скомпилирована, запущена и запросит какие настройки звуковой карты вы хотите. Будте осторожны, когда отвечаете на эти вопросы, так как неправильный ответ на вопрос может предотвратить задавание некоторых других вопросов. Например, не отвечайте "yes" на первый вопрос (PAS16) если вы не имеете PAS16. Не разрешайте больше карт, чем необходимо, так как вы только потеряете память. Также некоторые драйвера (подобно MPU-401) могут конфликтовать с вашими контроллерами SCSI и не давать загрузиться вашему ядру. Я перечислю здесь краткие описания каждой из опций конфигурации. Отвечайте "y" (да) или "n" (нет) на каждый вопрос. Ответ по умолчанию показанный как "[Y/n/?]" обозначает "y" по умолчанию и "[N/y/?]" обозначает по умолчанию "n". Для использования значения по умолчанию просто нажмите Enter (Ввод), но помните, что значение по умолчанию не всегда правилен. Ввод знака вопроса ("?") выведет краткое сообщение, описывающее данную опцию конфигурации. Заметим, что не все вопросы могут быть заданы. Программа конфигурации может запрещать некоторые вопросы в зависимости от предыдущих ответов. Она также может выбирать некоторые опции автоматически.
Затем программа конфигурации задаст несколько вопросов, о высокоуровневых сервисах. Рекомендуется ответить "y" на каждый из этих вопросов. Отвечайте "n" только если вы точно знаете, что вам не нужно это.
После вышеперечисленных вопросов, программа конфигурации запросит вас о конфигурационной информации специфичной для карты. Обычно это набор адресов портов ввода/вывода, номера каналов IRQ и DMA. Для некоторых карт программа конфигурации запросит некоторые файлы, используемые при инициализации карты. Они используются картами, которые имеют микросхему DSP или микропроцессор, которые должны инициализироваться загрузкой файла с программой (микрокодом) в карту. В некоторых случаях этот файл записывается конфигурационной программой в .h-файл и затем включается в ядро в процессе компиляции. Далее, прочитайте информацию, относящуюся к карте вашего типа в файле Readme.cards. В конце процесса конфигурации вас запросят:
The sound driver is now configured. Save copy of this configuration to /etc/soundconf [Y/n/?] (Драйвер звука сконфигурирован. Сохранить копию конфигурации в файле /etc/soundconf [Д/н/?]) Обычно вы должны ввести "y", так что если вы позже захотите перекомпилировать ядро, то вы сможете использовать те же настройки звукового драйвера. Если вы обновляете со старой версии звукового драйвера, убедитесь,
что файлы /usr/include/sys/soundcard.h и
/usr/include/sys/ultrasound.h являются символическими
ссылками на соответствующие файлы в
/usr/include/linux, или что они просто содержат строки
Теперь вы готовы компилировать и устанавливать новое ядро.
4.3 Создание файлов устройства
Для правильного проведения операций, для звукового драйвера должны быть созданы файлы устройства. По умолчанию они создаются во время установки вашей системы Linux. Быстрая проверка может быть произведена с помощью команды, показанной ниже. Если вывод такой же как показан (дата будет отличаться), тогда файлы устройства почти в норме.
% ls -l /dev/sndstat crw-rw-rw- 1 root root 14, 6 Apr 25 1995 /dev/sndstat Заметим, что наличие правильных файлов устройства не гарантирует ничего. Драйвер должен быть загружен или вкомпилирован в ядро до того как устройство будет работать (больше об этом далее). В редких случаях, если вы считаете что файлы устройства являются
неправильными, вы можете заново создать их, используя короткий
скрипт, описанный в конце файла Readme.linux в
директории /usr/src/linux/drivers/sound, запустив его
как Если вы используете звуковой драйвер для PC speaker, прочитайте документацию, которая идет с пакетом, для того чтобы определить какие файлы устройства необходимо создать.
4.4 Загрузка Linux и тестирование установки
Сейчас вы должны быть готовы к загрузке нового ядра и тестирования звукового драйвера. Следуйте обычной процедуре инсталляции и загрузите новое ядро (сохраните старое ядро на случай возникновения проблем). В течении загрузки следите за сообщениями, которые следуют после
включения питания (если они прокручиваются слишком быстро чтобы
прочитать их, вы можете заново просмотреть их командой
Sound initialization started <Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5 <Sound Blaster 16> at 0x330 irq 5 dma 0 <Yamaha OPL3 FM> at 0x388 Sound initialization complete Они должны соответствовать вашему типу карты и установкам джамперов (если они есть). Заметим, что вышеприведенные сообщения не появляются, когда вы используете звуковой драйвер в виде загружаемого модуля ядра (до тех пор пока вы не разрешите его, например командой "insmod sound trace_init=1"). Когда драйвер звука находится в ядре, должны появляться сообщения "Sound initialization started (инициализация звука начата)" и "Sound initialization complete (инициализация звука выполнена)". Если они не появляются, это обозначает, что драйвера звука нет в ядре. В этом случае вы должны проверить действительно ли вы установили ядро с включенным звуковым драйвером. Если ничего не появляется между строками "Sound initialization started" и "Sound initialization complete", это означает, что никакого звукового устройства не обнаружено. Скорее всего это означает, что вы не разрешили правильный тип драйвера, карта не поддерживается, неправильно заданы порты ввода/вывода или что у вас PnP карта, которая не была сконфигурирована. Драйвер может также выдавать некоторые сообщения об ошибках и предупреждения в процессе загрузки. Наблюдайте за ними в процессе первой загрузки после конфигурирования звукового драйвера. Далее вы должны проверить файл устройства /dev/sndstat. Чтение файла статуса звукового драйвера должно дать дополнительную информацию был ли драйвер звуковой карты инициализирован правильно. Простой вывод должен выглядеть подобно этому:
% cat /dev/sndstat Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root, Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586) Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586 Config options: 0 Installed drivers: Type 1: OPL-2/OPL-3 FM Type 2: Sound Blaster Type 7: SB MPU-401 Card config: Sound Blaster at 0x220 irq 5 drq 1,5 SB MPU-401 at 0x330 irq 5 drq 0 OPL-2/OPL-3 FM at 0x388 drq 0 Audio devices: 0: Sound Blaster 16 (4.13) Synth devices: 0: Yamaha OPL-3 Midi devices: 0: Sound Blaster 16 Timers: 0: System clock Mixers: 0: Sound Blaster Команда, приведенная выше, может выдавать некоторые сообщения об ошибках. "No such file or directory (Нет такого файла или директории)" сообщает, что вам нужно создать файлы устройства (смотри раздел 4.3). "No such device (Нет такого устройства)" означает, что звуковой драйвер не был загружен или вкомпилирован в ядро. Возвратитесь к разделу 4.2 и исправьте это. Если строки в секции "Card config:" файла /dev/sndstat перечислены внутри скобок (такие как "(SoundBlaster at 0x220 irq 5 drq 1,5)"), это означает, что устройство было сконфигурировано, но не обнаружено. Теперь вы готовы к проигрыванию простых звуковых файлов. Возьмите простой звуковой файл и пошлите его на звуковое устройство для быстрой проверки вывода звука, например
% cat endoftheworld >/dev/dsp % cat crash.au >/dev/audio (Убедитесь, что вы не опустили ">" в командной строке, приведенной выше). Заметим, что в общем, использование Эти команды работают, если по крайней мере одно устройство перечислено в разделе аудио-устройств файла /dev/sndstat. Если раздел аудио-устройств пуст, вы должны проверить почему устройство не опознается. Если вышеприведенные команды возвращают "I/O error (Ошибка ввода/вывода)", вы должны посмотреть в конце сообщений ядра, используя команду "dmesg". Вероятно, что сообщение об ошибке будет напечатано там. Часто бывает такое сообщение "Sound: DMA (output) timed out - IRQ/DRQ config error? (Звук: таймаут DMA (вывод) -- ошибка настройки IRQ/DRQ?)". Вышеприведенное сообщение означает, что драйвер не получил от устройства звука ожидаемого прерывания. В большинстве случаев это означает, что сконфигурированы IRQ или каналы DMA с которыми драйвер не может работать. Лучший выход чтобы заставить его работать -- испробовать все возможные номера DMA и IRQ, поддерживаемые устройством. Другая возможная причина -- устройство не совместимо с устройством для которого сконфигурирован драйвер. Это довольно распространенный случай, когда считающиеся "SoundBlaster (Pro/16) compatible" звуковые карты не работают с драйвером SoundBlaster. В этом случае вы должны попытаться найти устройство с которым совместима ваша звуковая карта (например запросом в группу новостей comp.os.linux.hardware). Некотрые простые звуковые файлы могут быть получены с ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z Теперь вы можете проверить запись звука. Если вы имеете возможность ввода звука, вы можете проделать быструю проверку этого, используя команды, такие как следующие:
# record 4 seconds of audio from microphone EDT% dd bs=8k count=4 </dev/audio >sample.au 4+0 records in 4+0 records out # play back sound % cat sample.au >/dev/audio Очевидно, что, чтобы это работало вам нужен микрофон, соединенный к звуковой карте и вы должны говорить в него. Вам также нужна программа микширования, чтобы установить микрофон как устройство ввода и выровнять уровни усиления записи. Если тесты прошли, вы можете быть уверенны, что звуковые устройства ЦАП и АЦП, и программное обеспечение работают. Если вы имеете проблемы, смотрите следующий раздел этого документа.
4.5 Разрешение проблем
Если вы все еще сталкиваетесь с проблемами после выполнения инструкций, изложенных в этом документе, здесь изложены некоторые вещи, которые необходимо проверить. Проверки изложены в порядке возрастания сложности. Если проверка не удалась, решите эту проблему до перехода к следующей стадии.
Шаг 1: Убедитесь, что вы действительно запустилискомпилированное ядро.
Вы можете проверить дату ядра, для того чтобы увидеть действительно
ли вы запустили ядро, которое вы скомрилировали с поддержкой звука.
Вы можете сделать это с помощью команды
% uname -a Linux fizzbin 2.0.0 #1 Tue Jun 4 16:57:55 EDT 1996 i386 или просмотрев файл /proc/version:
% cat /proc/version Linux version 2.0.0 (root@fizzbin) (gcc version 2.7.0) #1 Tue Jun 4 16:57:55 EDT 1996 Если дата не соответствует той, когда вы компилировали ядро, значит вы все еще работаете со старым ядром. Действительно ли вы перезагрузились? Если вы используете LILO, действительно ли вы переставили его (обычно запуском /etc/lilo/install)? Если вы загружаетесь с дискеты, создали ли вы новый загрузочный диск и использовали его во время загрузки?
Шаг 2: Убедитесь, что звуковой драйвер встроен в ядро.
Самый легкий путь проверить это -- просмотреть вывод "dev/sndstat" как описано ранее. Если вывод не такой как ожидалось, тогда что-то было неправильно во время конфигурации или компиляции ядра. Начните процесс инсталляции заново, начиная с процесса конфигурации или компиляции ядра.
Шаг 3: Обнаруживает ли ядро вашу звуковую карту во времязагрузки?
Убедитесь, что звуковая карта обнаруживается во время загрузки
ядра. Вы должны следить за сообщением при загрузке. Если сообщения
ушли за пределы экрана, вы обычно можете просмотреть их используя
команду
% dmesg или
% tail /var/adm/messages Если ваша карта не нашлась, значит что-то неправильно. Убедитесь, что она действительно установлена. Если звуковая карта работает под DOS, то вы точно убедитесь, что оборудование работает, так что проблемы скорее всего с настройкой ядра. Либо вы настроили свою карту указав неправильный тип или задав неправильные параметры, или ваша карта не совместима с любым звуковым драйвером Linux. Еще может быть, что у вас звуковая карта "совместимого" типа,
которые требуют инициализации драйвером DOS. Попытайтесь загрузить
DOS и загрузить поставляемый продавцом драйвер звука. Затем
перезагрузите Linux ("теплая" перезагрузка), нажав
Если ваша карта не перечислена в этом документе, возможно, что драйвер Linux не поддерживает ее. Вы можете проверить это с помощью некоторых ссылок, перечисленных в конце документа.
Шаг 4: Можете вы считывать данные с устройства dsp?
Попытайтесь считать с устройства /dev/audio используя
команду Если она не работает, вероятно что проблема в конфликте IRQ или DMA или некотором роде несовместимости оборудования (устройство не поддерживается Linux или драйвер настроен для неправильного устройства). Маловероятная возможность -- сломанное оборудование. Постарайтесь протестировать звуковую карту под DOS для исключения этой возможности.
Когда все эти шаги дали сбой
Если вы все еще имеете проблемы, здесь некоторые заключительные пожелания о вещах, которые надо постараться сделать:
|
|||||||||||||||||
With any suggestions or questions please feel free to contact us |