Звук в Linux HOWTO Jeff Tranter, tranter@pobox.com, перевод Alex Ott ott@phtd.tpu.edu.ru v1.19, 23 Января 1998 Этот документ описывает поддержку звука в Linux. Перечисляются поддерживаемые звуковые устройства, описывается как настроить драйвера и отвечается на часто задаваемые вопросы. Основная цель -- помочь новым пользователям и уменьшить объем трафика в группах новостей Usenet и списках рассылки. ______________________________________________________________________ Table of Contents 1. Введение 1.1 Благодарности 1.2 Обзор историй 1.3 Новые версии этого документа 1.4 Обратная связь 1.5 Политика распространения 2. Технология звуковых карт 3. Поддерживаемое оборудование 3.1 Звуковые карты 3.2 Альтернативные драйвера звука 3.3 PC Speaker 3.4 Параллельный порт 4. Установка 4.1 Установка звуковой карты 4.2 Настройка ядра 4.3 Создание файлов устройства 4.4 Загрузка Linux и тестирование установки 4.5 Разрешение проблем 4.5.1 Шаг 1: Убедитесь, что вы действительно запустили скомпилированное ядро. 4.5.2 Шаг 2: Убедитесь, что звуковой драйвер встроен в ядро. 4.5.3 Шаг 3: Обнаруживает ли ядро вашу звуковую карту во время загрузки? 4.5.4 Шаг 4: Можете вы считывать данные с устройства dsp? 4.5.5 Когда все эти шаги дали сбой 5. Приложения поддерживающие звук 6. Ответы на часто задаваемые вопросы (FAQ) 6.1 Для чего различные файлы звукового устройства? 6.2 Как я могу проиграть звуковой пример? 6.3 Как я могу записать пример? 6.4 Как я могу использовать более чем одну звуковую карту? 6.5 Ошибка: No such file or directory (Нет такого файла или директории) для устройств звука 6.6 Ошибка: No such device (Нет такого устройства) для устройств звука 6.7 Ошибка: No space left on device (Не осталось места на устройстве) для устройств звука 6.8 Ошибка: Device busy (Устройство занято) для устройств звука 6.9 Я все равно получаю ошибку: устройство занято! 6.10 Частичное проигрывание звукового файла 6.11 Возникают паузы ао время проигрывания файлов MOD 6.12 Ошибки компиляции при компиляции звуковых приложений 6.13 SEGV при запуске звукового приложения, которое до этого работало 6.14 Какие известны ошибки или ограничения звукового драйвера? 6.15 Где документированы ioctl() и т.п. звукового драйвера? 6.16 Какие ресурсы процессора необходимы для проигрывания или записи без пауз? 6.17 Проблемы с PAS16 и адаптером SCSI Adaptec 1542 6.18 Возможно ли читать и записывать примеры одновременно? 6.19 Моя карта SB16 установлена на IRQ 2, но программа настройки не разрешает это значение. 6.20 Поддерживается ли SoundBlaster AWE32 или SoundBlaster16 ASP? 6.21 Если я запускаю Linux, затем загружаясь в DOS, я получаю ошибки и/или звуковые приложения не работают правильно. 6.22 Проблемы с запуском DOOM под Linux 6.23 Как я могу уменьшить шум, испускаемый моей звуковой платой? 6.24 Я могу проигрывать звук, но не записывать. 6.25 Моя "совместимая" звуковая карта работает только если я сначала проинициализирую ее под MS-DOS. 6.26 Моя 16-битная "совместимая" с SoundBlaster звуковая карта работает только в 8-битном режиме под Linux. 6.27 Где я могу найти звуковые приложения для Linux? 6.28 Может ли звуковой драйвер быть скомпилирован как загружаемый модуль? 6.29 Могу я использовать звуковую карту для замены сигнала системной консоли? 6.30 Что такое VoxWare? 6.31 Поддерживаются ли Plug and Play звуковые карты? 6.32 Sox/Play/Vplay сообщает "invalid block size 1024 (неправильный размер блока 1024)" 6.33 Почему драйвер звука имеет собственную программу настройки? 6.34 Настройки микшера сбрасываются когда я загружаю модуль звукового драйвера 6.35 Только администратор может записывать звук 6.36 Поддерживается ли звуковое оборудование IBM ThinkPad? 7. Ссылки ______________________________________________________________________ ППррииммееччааннииее ппееррееввооддччииккаа:: Шлите мне любый комментарии и замечания, даже небольшие. 11.. ВВввееддееннииее Это Linux Sound HOWTO. Он предназначен как краткое руководство делающее обзор всего, что необходимо знать для установки и настройки поддержки звука в Linux. Приводятся ответы на часто задаваемые вопросы (FAQ) и ссылки на другие информационные ресурсы относящиеся к компьютерному звуку и музыке. Масштабы документа ограничены применением звуковых карт в Linux. Смотрите другие документы перечисленные в разделе _С_с_ы_л_к_и для более общей информации о звуковых картах, компьютерном звуке и создании музыки. 11..11.. ББллааггооддааррннооссттии Большинство этой информации получено из документации идущей с исходными текстами звукового драйвера, написанного Hannu Savolainen (hannu@voxware.pp.fi). Спасибо Hannu и многим другим людям, кто разработал звуковой драйвер для ядра Linux и различные утилиты. Благодарность пакету SGML Tools, этот документ доступен в разных форматах, которые сгенерированы из общего исходного файла. 11..22.. ООббззоорр ииссттоорриийй ВВееррссиияя 11..11 первая версия; отправлена только в раздел SOUND списка рассылки активистов Linux ВВееррссиияя 11..22 мелкие обновления; первая версия доступная на архивных серверах ВВееррссиияя 11..33 преобразована в SGML; сейчас доступна в разных форматах используя пакет Linuxdoc-SGML Matt Welsh'а Linuxdoc-SGML; внешние изменения из-за нового формата, небольшие изменения в содержимом ВВееррссиияя 11..44 небольшие tweaking of SGML; добавлен ответ о несовместимости PAS16 и SCSI адаптера Adaptec1542A SCSI ВВееррссиияя 11..55 звуковой драйвер 2.5a в ядре 1.1; замечания о поддержке GUS-MAX; другие мелкие изменения ВВееррссиияя 11..66 добавлена информация об ошибке "no space on device (нет места на устройстве)"; добавлено замечание о том, что руководство хакера (Hacker's Guide) находится в скрытой директории; добавлены вопросы о двунаправленном режиме; информация об ошибках "device busy (устройство занято)"; другие мелкие изменения ВВееррссиияя 11..77 добавлена информация о ASP и AWE32; доступен VoxWare 2.9; ответ на вопрос об использовании IRQ2; ссылки на информационный ресурсы о звуке и SCSI HOWTO ВВееррссиияя 11..88 добавлен вопрос об ошибках под DOS; много мелких обновлений для соответствия драйверу звука версии 2.90; информация о DOOM'е; ответ об уменьшении шума ВВееррссиияя 11..99 вопросы о записи и кланах звуковых карт ВВееррссиияя 11..1100 Упомянуто, что HOWTO доступен на WWW, как печатная копия и переводы; информация о конфликте DMA с ленточным устройством QIC; информация о Sound Galaxy NX Pro и Logitech BusMouse ВВееррссиияя 11..1111 Долгожданное обновление (я был занят); документ помещен под действие GPL; изменения для версии 3.0 звукового драйвера; информация о многих новых поддерживаемых драйверах звуковых карт; больше информации о настройке и разрешении проблем; добавлены ссылки на ресурсы в HTML; приведен в соответствие с форматом CD-ROM HOWTO ВВееррссиияя 11..1122 новый драйвер звука в ядре 1.3.34; новые имена звукового устройства; адрес 1542 address равен 334 не 333; разъяснен статус Creative Labs Emu и ASP; ссылки на Web-сервера Creative Labs и MediaTrix ВВееррссиияя 11..1133 замечание об имени VoxWare; обновления для отражения последних поддерживаемых звуковых картах и опциях настройки; вопрос о поддержке Plug and Play; вопрос о проблеме размера блока; новые опции xconfig и menuconfig; modutils имеют поддержку звуковых устройств; список рассылки vger прекратился; указан Web-сервер автора; другие разные маленькие изменения ВВееррссиияя 11..1144 Audio Excell DSP16 сейчас не поддерживается (должен появится в течении нескольких месяцев); изменения в программу настройки; доступна итальянская версия документа; приемы для установки mixer gains во время загрузки модуля звука; последнее стабильное ядро---2.0; новое имя для звукового драйвера; вопрос о правах администратора на файлы звукового устройства ВВееррссиияя 11..1155 удалены некоторые вопросы, которые были слишком старыми и теперь устарели; новый адрес электронной почты автора; исправлены некоторые ссылки для указания на последние пакеты программного обеспечения; больше информации о мультимедиа книгах; небольшие изменения в грамматике и правописании ВВееррссиияя 11..1166 много обновлений и исправлений от Hannu Savolainen; добавлен шестимесячная дата "годности"; новый URL на страницу для книг; добавлена ссылка на испанский перевод; небольшие изменения в грамматике и правописании ВВееррссиияя 11..1177 Доступна китайская версия; альтернативный драйвер GUS; пакетный радио модем; руководство по мультимедиа в Linux доступно на японском и французском; ссылки на набор соответствующих mini- HOWTO; указатель на IBM ThinkPad ВВееррссиияя 11..1188 доступен корейский перевод; больше информации о статусе звука в MIPS; обновлена информация о поддержке нескольких звуковых карт; должен быть администратором для запуска fuser VVeerrssiioonn 11..1199 добавлены индексные записи; документ помещен под действие лицензии LDP вместо GPL 11..33.. ННооввыыее ввееррссииии ээттооггоо ддооккууммееннттаа Новые версии этого документа будут периодически посылаться в группу новостей comp.os.linux.answers. Они также будут выгружаться на разные анонимные ftp-сервера, которые содержат такую информацию, включая . Гипертекстовая версия этого и других Linux HOWTO доступны на многих WWW-серверах, включая . Большинство дистрибутивов Linux на компакт дисках включают HOWTO, часто в директории /usr/doc, и вы можете купить напечатанную копию у некоторых распространителей. Иногда документы доступные у продавцов компакт дисков, ftp-серверах и в печатном формате являются устаревшими. Если с даты выпуска этого документа прошло более чем шесть месяцев, тогда скорее всего новая копия доступна на Internet. Французский перевод этого документа доступен на . Японский перевод доступен с . Итальянская версия доступна с . Испанский перевод доступен на . Китайская версия доступна на . Корейский перевод доступен с . Большинство переводов этого и других Linux HOWTO могут также найдены на и . Если вы сделаете перевод этого документа на другой язык, дайте мне знать и я включу ссылку на него здесь. 11..44.. ООббррааттннааяя ссввяяззьь Я надеюсь, что этот документ будет полезен для читателей. Если вы имеете любые предложения, исправления или замечания, пожалуйста посылайте их мне tranter@pobox.com, и я буду пытаться включить их в следующую версию. Я также согласен отвечать на общие вопросы о звуковых картах в Linux, насколько я смогу. До того, как сделаете это, пожайлуста прочитайте всю информацию в этом документе, и пошлите мне детальную информацию о проблеме. Пожалуйста не спрашивайте меня об использовании звуковых карт в операционных системах отличных от Linux. Если вы опубликуете этот документ на компакт диске или в печатном виде, должна быть дарственная копия. Напишите мне для получения моего почтового адреса. Также считаю, что необходимо сделать пожертвование в адрес Linux Documentation Project для помощи в поддержке свободной документации для Linux. Свяжитесь с координатором Linux HOWTO, Tim Bynum , для более детальной информации. 11..55.. ППооллииттииккаа рраассппррооссттррааннеенниияя Авторские права (c) 1995-1998 by Jeff Tranter. Этот документ может быть распространен в терминах лицензии LDP на . 22.. ТТееххннооллооггиияя ззввууккооввыыхх ккаарртт Этот раздел дает _о_ч_е_н_ь беглый обзор звуковой компьютерной технологии, для того, чтобы помочь вам понять концепции используемые далее в документе. Вы должны прочитать книгу о цифровом звуке или цифровой обработке сигналов для получения более детальной информации. Звук это _а_н_а_л_о_г_о_в_о_е свойство; он может принимать любое значение в бесконечном ряду. Компьютеры являются _ц_и_ф_р_о_в_ы_м_и; Они предпочитают работать с дискретными величинами. Звуковые карты используют устройство известное как _А_н_а_л_о_г_о_в_о_-_Ц_и_ф_р_о_в_о_й _П_р_е_о_б_р_а_з_о_в_а_т_е_л_ь (A/D или ADC или АЦП) для преобразования напряжений соответствующих звуковым волнам в численные значения, которые могут быть сохранены в памяти. Подобным образом, _Ц_и_ф_р_о_в_о_й_-_А_н_а_л_о_г_о_в_ы_й _П_р_е_о_б_р_а_з_о_в_а_т_е_л_ь (D/A или DAC или ЦАП) преобразует числовые значения обратно в аналоговое напряжение, которое в свою очередь может управлять динамиком, производя звук. Процесс аналогово-цифрового преобразования, известный как дискретизация, производит некоторую ошибку. Два фактора являются ключевыми в определении, как хорошо дискретный сигнал представляет оригинал. _С_к_о_р_о_с_т_ь _д_и_с_к_р_е_т_и_з_а_ц_и_и -- это количество дискретизаций делаемых в единицу времени (обычно измеряется в дискретизаций в секунду или Герцах). Низкая скорость дискретизации будет производить менее точное представление аналогового сигнала. Размер дискретизации -- это диапазон значений используемых для представления каждого дискрета, обычно измеряется в битах. Больший размер дискрета -- будет производить более точный оцифрованный сигнал. В большинстве звуковых карт используют 8 или 16-битные дискреты при скорости дискретизации от 4000 до 44000 дискретизаций в секунду. Дискретизация может быть одноканальной (моно) или двухканальной (стерео). _F_M _с_и_н_т_е_з это старая технология для создания звука. Он основан на объединении различных волновых форм (например синусоидальной, треугольной, квадратной). FM синтез проще для реализации на оборудовании с ЦАП, но более трудный в программах и менее гибкий. Много звуковых картах обеспечивают FM синтез для обратной совместимости с устаревшими картами и программным обеспечением. Обычно обеспечиваются некоторые независимые генераторы звука или _г_о_л_о_с_а _(_v_o_i_c_e_s_). _В_о_л_н_о_в_о_й _(_W_a_v_e_t_a_b_l_e_) _с_и_н_т_е_з объединяет гибкость ЦАП с многоканальными способностями FM синтеза. В этой схеме оцифрованные голоса могут быть загружены в выделенную память и затем проиграны, объединены и изменены с маленькой загрузкой процессора. Все современные звуковые карты поддерживают волновой синтез. Большинство звуковых карт обеспечивают возможность _с_м_е_ш_и_в_а_н_и_я _(_m_i_x_i_n_g_), объединения сигналов с разных источников и контролировать уровни увеличения (gain). _M_I_D_I стандарт(stands) для Цифрового Интерфейса Музыкальных Инструментов (Musical Instrument Digital Interface), и это стандартный протокол оборудования и программного обеспечения для возможности соединения(обмена информацией) музыкальных инструментов друг с другом. События посылаемые сквозь шину MIDI могут также сохранятся в MIDI-файлах для последующего редактирования и проигрывания. Много звуковых карт обеспечивают MIDI-интерфейс. Но все равно не могут проигрывать MIDI-файлы используя встроенные возможности звуковой карты. _M_O_D_-_ф_а_й_л_ы являются общим форматом для компьютерного звука. Кроме информации о проигрываемых музыкальных нотах, файлы содержат оцифрованные данные для инструментов (или голосов). MOD-файлы изначально появились на компьютерах Amiga, но могут быть проиграны на других системах, включая Linux, с помощью соответствующего программного обеспечения. 33.. ППооддддеерржжииввааееммооее ооббооррууддооввааннииее В этом разделе перечисляются звуковые карты и интерфейсы поддерживаемые в настоящее время в Linux. Информация основана на последнем на время написания ядре Linux. Драйвер звука имеет свою нумерацию версий. Последняя стабильная версия ядра -- 2.0.33, используемый драйвер звука имеет версию 3.5.4-960630. Автор драйвера звука, Hannu Savolainen, обычно делает доступными новые бета-версии звукового драйвера, до того как они станут частью стандартного дистрибутива ядра Linux. Наиболее свежий список поддерживаемых карт доступен на (USA) или (Европа). На этих страницах указано какая версия драйвера необходима для данного типа звуковой карты или поддержка для нее все еще в стадии разработки. Файл /usr/src/linux/drivers/sound/Readme.cards распространяемый с драйвером звука в ядре содержит информацию о поддерживаемых картах, но он не всегда (современный) up to date. Информация в этом документе правильна для Linux'а на платформе Intel. Драйвер звука должен также работать с большинством звуковых карт на платформе Alpha. Однако, некоторые карты могут конфликтовать с портами ввода-вывода других устройств в системах Alpha, даже если они работают великолепно на машинах с i386, так что в общем нельзя сказать будет ли данная карта работать или нет без пробы. Во время написания, звуковой драйвер еще не работал на PowerPC версии Linux, но должен поддерживаться в будущем. Звук может быть настроен в ядро в порте Linux для MIPs, и некоторые MIPs-машины имеют EISA слоты и/или встроенное звуковое оборудование. Группа Linux-MIPs заинтересована в добавлении поддержки звука в будущем. Ядро Linux включает раздельные драйвера для Atari и Amiga версий Linux, которые реализуют совместимое множество звукового драйвера на платформе Intel используя встроенное звуковое оборудование на этих машинах. SPARC порт Linux в настоящее время не имеет поддержки звука. Подобно Amiga и Atari, SPARC-машины имеют встроенное звуковое оборудование, так что это должно быть сделано в новом драйвере (ирония заключается в том, что в Linux /dev/dsp эмулирует звуковое устройство SunOS). 33..11.. ЗЗввууккооввыыее ккааррттыы Следующие звуковые карты поддерживаются звуковым драйвером ядра Linux: ╥ ATI Stereo F/X (больше не производится) ╥ AdLib (больше не производится) ╥ Ensoniq SoundScape (и совместимые произведенные Reveal и Spea) ╥ Gravis Ultrasound ╥ Gravis Ultrasound ACE ╥ Gravis Ultrasound Max ╥ Gravis Ultrasound с возможностью 16-битной дискретизации ╥ Logitech Sound Man 16 ╥ Logitech SoundMan Games ╥ Logitech SoundMan Wave ╥ MAD16 Pro (OPTi 82C928, 82C929, 82C930, 82C924 chipsets) ╥ Media Vision Jazz16 ╥ MediaTriX AudioTriX Pro ╥ Microsoft Windows Sound System (MSS/WSS) ╥ Mozart (OAK OTI-601) ╥ Orchid SW32 ╥ Personal Sound System (PSS) ╥ Pro Audio Spectrum 16 ╥ Pro Audio Studio 16 ╥ Pro Sonic 16 ╥ Roland MPU-401 MIDI interface ╥ Sound Blaster 1.0 ╥ Sound Blaster 16 ╥ Sound Blaster 16ASP ╥ Sound Blaster 2.0 ╥ Sound Blaster AWE32 ╥ Sound Blaster Pro ╥ TI TM4000M notebook ╥ ThunderBoard ╥ Turtle Beach Tropez ("классическая", но не Plus) ╥ Turtle Beach Maui ╥ Yamaha FM synthesizers (OPL2, OPL3 и OPL4) ╥ 6850 UART MIDI Interface Должен заметить, что Plug and Play (PnP) звуковые карты не полностью совместимы со старыми не-PnP моделями тех же самых устройств. Например, SoundBlaster16 PnP не полностью совместим с оригинальным SoundBlaster16. Тоже самое правда для карт Soundscape PnP и GUS PnP. Больше информации относящейся к Plug and Play, вы найдете дальше в этом документе. Следующие карты _н_е поддерживаются, либо потому что они устарели или потому-что их производители не выпустили программную информацию, необходимую для написания драйвера: ╥ Pro Audio Spectrum (оригинальный) ╥ Pro Audio Spectrum+ ╥ старые (основанные на Sierra Aria) звуковые карты произведенные Diamond Другие звуковые карты объявленные совместимыми с некоторыми совместимыми звуковыми картами _м_о_г_у_т работать если они совместимы на аппаратном (то есть регистерном) уровне. Хотя множество звуковых карт объявлено как "совместимые с SoundBlaster", только некоторые из продающихся карт совместимы настолько, что могут работать с драйвером SoundBlaster в Linux. Эти карты обычно работают лучше используя драйвера для MSS/WSS или MAD16. Только настоящие карты SoundBlaster, произведенные Creative Labs, которые используют традиционные микросхемы Creative (например SoundBlaster16 Vibra), MV Jazz16 и основанные на ESS688/1688 карты в общем работают с драйвером SoundBlaster. Попытка использования "SoundBlaster Pro совместимых 16-битных звуковых карт" с драйвером SoundBlaster -- обычно только потеря времени. Ядро Linux поддерживает SCSI порт, имеющийся на некоторых звуковых картах (например ProAudioSpectrum 16) и фирменный интерфейс для некоторых приводов CD-ROM (например Soundblaster Pro). Смотрите документы Linux SCSI HOWTO и CDROM HOWTO для более детальной информации. Также доступен загружаемый модуль для поддержки порта джойстика, включая те, которые имеются не некоторых звуковых картах. Заметим, что драйвера ядра для SCSI, CD-ROM, джойстика, и звука полностью независимы друг от друга. Для последней информации о драйвере звуковых карт смотрите WWW-сервер Hannu Savolainen, указанный в разделе Ссылки. 33..22.. ААллььттееррннааттииввнныыее ддррааййввеерраа ззввууккаа Также существуют некоторые "неофициальные" звуковые драйвера, не включенные в стандартную поставку ядра Linux, и используемые вместо стандартного драйвера звука. Коммерческая версия драйвера звука для Linux продается компанией 4Front Technologies. Они предлагают дополнительные возможности, которых нет в свободной версии, включенной в ядро Linux. Для более детальной информации смотрите домашнюю страницу 4Front Technologies по адресу . Markus Mummert (mum@mmk.e-technik.tu-muenchen.de) написал драйвер для звуковых карт Turtle Beach MultiSound (классическая), Tahiti, and Monterey. В документации указано: "Он был создан для высококачественной записи/проигрывания без потери синхронизации даже на загруженных системах. Другие свойства, такие как волновой синтез, MIDI и процессор цифровых сигналов (DSP) не могут быть использованы. Также невозможны запись и проигрывание в одно и тоже время. В настоящее время он заменяет VoxWare и был протестирован на разных версиях ядра с 1.0.9 до 1.2.1. Также он может устанавливаться на системах UN*X SysV386R3.2" Он может быть найден на . Kim Burgaard (burgaard@daimi.aau.dk) написал драйвер устройства и утилиты для MIDI интерфейса Roland MPU-401. Карта программного обеспечения Linux дает следующее описание: "Драйвер устройства для полностью совместимого с Roland MPU-401 интерфейсом MIDI (включая Roland SCC-1 и RAP-10/ATW-10). Поставляется с полезным набором утилит включая проигрыватель стандартных MIDI-файлов и программу записи. Некоторое количество улучшений было сделано с версии 0.11a. Между других вещей, драйвер сейчас реализует правило разделения IRQ и подчиняется новому интерфейсу модуля ядра. Возможность метронома, возможность синхронизации, например графики на базовых участках без потери точности, расширенный интерфейс проигрывателя/записи/overdub и многое, многое другое." Он может быть найден на . Jaroslav Kysela и другие написали альтернативный звуковой драйвер для карты Gravis UltraSound. Информация может быть найдена на , домашней странице проекта Linux UltraSound. Другое новое использование звуковой карты под Linux -- использование как модем для любительского пакетного радио. Недавние 2.1.x ядра включают драйвер, который работает с совместимыми с SoundBlaster and Windows Sound System звуковыми картами для реализации 1200 bps AFSK и 9600 bps FSK пакетных протоколов. Смотри AX25 HOWTO для детальной информации (Я сам радиолюбитель, между прочим -- сигнал вызова VE3ICH). 33..33.. PPCC SSppeeaakkeerr Также доступен альтернативный драйвер звука, который не требует дополнительного звукового оборудования; он использует внутренний динамик. В общем он программно совместим с драйвером звуковой карты, но, как и могло ожидаться, обеспечивает более низкое качество звука и больше загружает процессор. Результаты оказываются разными, в зависимости от индивидуального динамика. Для детальной информации смотрите документацию, поставляемую с пакетом. Текущая версия 1.1, и может быть найдена на 33..44.. ППааррааллллееллььнныыйй ппоорртт Существует другая возможность сделать цифровой-аналоговый преобразователь используя параллельный порт принтера и некоторое дополнительное оборудование. Это обеспечивает большое качество звука, чем динамик компьютера, но все равно загружает процессор. Пакет звука для компьютера, описанный выше, поддерживает эту возможность и включает описания для создания необходимого оборудования. 44.. УУссттааннооввккаа Настройка Linux для поддержки звука включает следующие этапы: 1. Установка звуковой карты. 2. Настройка и компиляция ядра для поддержки звука. 3. Создание файлов устройства. 4. Загрузка ядра Linux и тестирование. В следующих разделах будут детально рассматриваться каждый из этапов. 44..11.. УУссттааннооввккаа ззввууккооввоойй ккааррттыы Для установки оборудования следуйте инструкциям производителя или заставьте продавца установить карту. Старые карты обычно имели переключатели или наборы джамперов для установки IRQ, каналов DMA и т.п.; запишите используемые значения. Если вы не уверены, используйте значения по умолчанию. Старайтесь, если возможно, избегать конфликтов с другими устройствами (например картами ethernet, адаптерами SCSI, сериальными и параллельными портами). Обычно вы должны использовать теже самые установки для портов ввода/вывода, IRQ и DMA, которых работают под DOS. Однако в некоторых случаях (особенно с PnP картами) вы можете использовать другие настройки, чтобы заставить карту работать под Linux. Нужно провести несколько экспериментов. 44..22.. ННаассттррооййккаа яяддрраа Когда вы устанавливаете 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" вместе со "старым" методом настройки звука. Много проблем с настройкой звука возникают (по крайней мере частично) некорректным использованием "нового" метода. Также возможно скомпилировать звуковой драйвер как загружаемый модуль. Я рекомендую вначале построить драйвер в ядре. После тестирования и работы вы можете использовать в качестве модуля ядра. Когда вы запускаете make config, разрешите поддержку звука ответом "y" на вопрос Sound card support (CONFIG_SOUND) [M/n/y/?] После окончания вопросов настройки, программа настройки звука будет скомпилирована, запущена и запросит какие настройки звуковой карты вы хотите. Будте осторожны, когда отвечаете на эти вопросы, так как неправильный ответ на вопрос может предотвратить задавание некоторых других вопросов. Например, не отвечайте "yes" на первый вопрос (PAS16) если вы не имеете PAS16. Не разрешайте больше карт, чем необходимо, так как вы только потеряете память. Также некоторые драйвера (подобно MPU-401) могут конфликтовать с вашими контроллерами SCSI и не давать загрузиться вашему ядру. Я перечислю здесь краткие описания каждой из опций конфигурации. Отвечайте "y" (да) или "n" (нет) на каждый вопрос. Ответ по умолчанию показанный как "[Y/n/?]" обозначает "y" по умолчанию и "[N/y/?]" обозначает по умолчанию "n". Для использования значения по умолчанию просто нажмите Enter (Ввод), но помните, что значение по умолчанию не всегда правилен. Ввод знака вопроса ("?") выведет краткое сообщение, описывающее данную опцию конфигурации. Заметим, что не все вопросы могут быть заданы. Программа конфигурации может запрещать некоторые вопросы в зависимости от предыдущих ответов. Она также может выбирать некоторые опции автоматически. OOlldd ccoonnffiigguurraattiioonn eexxiissttss iinn //eettcc//ssoouunnddccoonnff.. UUssee iitt [[YY//nn//??]] (Старая конфигурация находится в /etc/soundconf. Использовать ее [Д/н/?])" Если вы имеете ранее скомпилированное ядро я поддержкой звука, то предыдущая конфигурация может быть сохранена. Если вы хотите использовать предыдущие настройки, ответьте "y". Если вы хотите попробовать отличающуюся конфигурацию или обновили ядро, вы должны ответить "n" и провести процесс настройки. PPrrooAAuuddiiooSSppeeccttrruumm 1166 ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа PPrrooAAuuddiiooSSppeeccttrruumm 1166 [[ДД//нн//??]])) Ответьте "y" _т_о_л_ь_к_о если вы имеете Pro Audio Spectrum _1_6, ProAudio Studio 16 или Logitech SoundMan 16. Не отвечайте "y" если вы имеете другую карте произведенную Media Vision или Logitech так как они не совместимы с PAS16. SSoouunnddBBllaasstteerr ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа SSoouunnddBBllaasstteerr [Д/н/?])" Ответьте "y" если вы имеете оригинальную карту SoundBlaster произведенную Creative Labs или 100% аппаратно совместимый клон (подобно Thunderboard или SM Games). Если ваша карта есть в списке поддерживаемых карт, смотрите специальные инструкции в файле Readme.cards до ответа на этот вопрос. Для неизвестной карты вы можете ответить "y" если карта считается совместимой с SoundBlaster. GGrraavviiss UUllttrraassoouunndd ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа GGrraavviiss UUllttrraassoouunndd [Д/н/?])" Ответьте "y" если у вас GUS или GUS MAX. Ответьте "n" если вы не имеете эти карты, так как драйвер тратит некоторое количество памяти. MMPPUU--440011 ssuuppppoorrtt ((NNOOTT ffoorr SSBB1166)) [[YY//nn//??]] ((ППооддддеерржжккаа MMPPUU--440011 ((ННЕЕ для SB16)[Д/н/?])" Будьте осторожны с этим вопросом. Интерфейс MPU-401 поддерживается пости всеми картами. Однако, некоторые (natively supported) карты имеют собственный драйвер MPU-401. Разрешение опции MPU-401 для этих карт вызовет конфликт. Также разрешение MPU-401 на системах, которые не имеют MPU-401 может вызвать некоторые затруднения. Если ваша карта есть в списке поддерживаемых карт, смотрите специфичные для карты инструкции в файле Readme.cards. Ответ "y" безопасен, если вы имеете карту с настоящим MIDI интерфейсом MPU-401. 66885500 UUAARRTT MMiiddii ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа 66885500 UUAARRTT MMiiddii [Д/н/?])" Ответ "n" на этот вопрос безопасен во всех случаях. Интерфейс 6850 UART очень редко используется. PPSSSS ((EECCHHOO--AADDII22111111)) ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа PPSSSS (ECHO-ADI2111) [Д/н/?])" Ответьте "y" только если вы имеете Orchid SW32, Cardinal DSP16 или другую карту, основанную на наборе микросхем PSS (AD1848 codec + ADSP-2115 DSP chip + Echo ESC614 ASIC CHIP). 1166 bbiitt ssaammpplliinngg ooppttiioonn ooff GGUUSS ((_n_o_t GGUUSS MMAAXX)) [[YY//nn//??]] (16-битная дискретизация в GUS (_н_е в GUS MAX) [Д/н/?])" Ответьте "y" если на вашей карте GUS установлена дополнительная карта для 16-битной дискретизации. Ответьте "n" если у вас GUS MAX. Разрешение этой опции запрещает поддержку GUS MAX. GGUUSS MMAAXX ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа GGUUSS MMAAXX [[ДД//нн//??]])) Ответьте "y" только если у вас GUS MAX. MMiiccrroossoofftt SSoouunndd SSyysstteemm ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа MMiiccrroossoofftt Sound System [Д/н/?])" Хорошо подумайте до того как ответить "y" на этот вопрос. Безопасно ответить "y" если у вас оригинальная карта Windows Sound System, произведенная Microsoft или карта Aztech SG 16 Pro (или NX16 Pro). Также вы можете "y" в том случае, если карта не перечислена выше в этот файле. Для карт, имеющих собственную поддержку в VoxWare, смотрите инструкции для карты в файле Readme.cards. Некоторые драйвера имеют собственную поддержку MSS и разрешение этой опции может вызвать конфликт. EEnnssoonniiqq SSoouunnddssccaappee ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа EEnnssoonniiqq Soundscape [Д/н/?])" Ответьте "y" если у вас карта построенная на наборе микросхем Ensoniq SoundScape. Такие карты производятся Spea и Reveal (Reveal также производит другие карты). MMeeddiiaaTTrriiXX AAuuddiiooTTrriiXX PPrroo ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа MMeeddiiaaTTrriiXX AudioTriX Pro [Д/н/?])" Ответьте "y" если вы имеете AudioTriX Pro. SSuuppppoorrtt ffoorr MMAADD1166 aanndd//oorr MMoozzaarrtt bbaasseedd ccaarrddss [[YY//nn//??]] ((ППооддддеерржжккаа карт построенных на MAD16 и/или Mozart [Д/н/?])" Ответьте "y" если ваша карта имеет микросхему звукового интерфейса Mozart (OAK OTI-601) или MAD16 (OPTi 82C928 или 82C929). Эти микросхемы в настоящее время довольно распространены, так что возможно, что много безымянных карт имееют одну из этих микросхем. Также микросхема MAD16используется в некоторых картах производимых известными производителями, такими как Turtle Beach (Tropez), Reveal (некоторые модели) и Diamond (последние модели). SSuuppppoorrtt ffoorr CCrryyssttaall CCSS44223322 bbaasseedd ((PPnnPP)) ccaarrddss [[YY//nn//??]] (Поддержка карт построенных на Crystal CS4232 (PnP) [Д/н/?])" Ответьте "y" если у вас карта созданная на основе набора микросхем Crystal CS4232. SSuuppppoorrtt ffoorr TTuurrttllee BBeeaacchh WWaavvee FFrroonntt ((MMaauuii,, TTrrooppeezz)) ssyynntthheessiizzeerrss [Y/n/?] (Поддержка синтезеров Turtle Beach Wave Front (Maui, Tropez) [Д/н/?])" Ответьте "y" если вы имеете любую из этих карт. SSoouunnddBBllaasstteerr PPrroo ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа SSoouunnddBBllaasstteerr PPrroo [Д/н/?])" Разрешите эту опцию, если у вас SoundBlaster Pro или SoundBlaster 16. Также разрешите ее для любых клонов SoundBlaster Pro. Ответ "n" сбережет некоторое количество памяти, но "y" является безопасной альтернативой. SSoouunnddBBllaasstteerr 1166 ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа SSoouunnddBBllaasstteerr 1166 [Д/н/?])" Разрешите, если вы имеете SoundBlaster 16 (включая AWE32). AAuuddiioo EExxcceell DDSSPP 1166 iinniittiiaalliizzaattiioonn ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа инициализации Audio Excel DSP 16[Д/н/?])" Разрешите это, если у вас карта Audio Excel DSP16. Для более детальной информации смотрите файл Readme.aedsp16. Затем программа конфигурации задаст несколько вопросов, о высокоуровневых сервисах. Рекомендуется ответить "y" на каждый из этих вопросов. Отвечайте "n" только если вы точно знаете, что вам не нужно это. //ddeevv//ddsspp aanndd //ddeevv//aauuddiioo ssuuppppoorrtt ((uussuuaallllyy rreeqquuiirreedd)) [[YY//nn//??]] (Поддержка /dev/dsp и /dev/audio (обычно требуется) [Д/н/?])" Ответ "n" запрещает /dev/dsp и /dev/audio --- устройства АЦП и ЦАП. Ответьте "y". MMIIDDII iinntteerrffaaccee ssuuppppoorrtt [[YY//nn//??]] ((ппооддддеерржжккаа MMIIDDII--ииннттееррффееййссаа [[ДД//нн//??]])) Ответ "n" запрещает устройства /dev/midixx и доступ к любому порту MIDI используя /dev/sequencer и /dev/music. Эта опция также касается любых устройств совместимых с MPU-401 и/или General MIDI. FFMM ssyynntthheessiizzeerr ((YYMM33881122//OOPPLL--33)) ssuuppppoorrtt [[YY//nn//??]]((ППооддддеерржжккаа FFMM синтезера (YM3812/OPL-3) [Д/н/?])" Ответьте "y" здесь. //ddeevv//sseeqquueenncceerr ssuuppppoorrtt [[YY//nn//??]] ((ППооддддеерржжккаа //ddeevv//sseeqquueenncceerr [[ДД//нн//??]])) Ответ "n" запрещает устройства /dev/sequencer и /dev/music DDoo yyoouu wwaanntt ssuuppppoorrtt ffoorr tthhee mmiixxeerr ooff SSGG NNXX PPrroo ?? ((ВВыы ххооттииттее поддержки микшера для SG NX Pro ?)" Ответьте "y" если у вам звуковая карта Sound Galaxy NX Pro и вы хотите поддержка ее расширенных функций микшера. DDoo yyoouu wwaanntt ssuuppppoorrtt ffoorr tthhee MMVV JJaazzzz1166 ((PPrrooSSoonniicc eettcc..)) ?? ((ВВыы хотите поддержка MV Jazz16 (ProSonic etc.) ?)" Ответьте "y" если у вас звуковая карта MV Jazz16. DDoo yyoouu hhaavvee aa LLooggiitteecchh SSoouunnddMMaann GGaammeess [[YY//nn//??]] ((УУ вваасс LLooggiitteecchh SoundMan Games [Д/н/?])" Ответьте "y" если у вас звуковая карта Logitech SoundMan Games. После вышеперечисленных вопросов, программа конфигурации запросит вас о конфигурационной информации специфичной для карты. Обычно это набор адресов портов ввода/вывода, номера каналов 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, или что они просто содержат строки #include и #include , соответственно. Теперь вы готовы компилировать и устанавливать новое ядро. 44..33.. ССооззддааннииее ффааййллоовв ууссттррооййссттвваа Для правильного проведения операций, для звукового драйвера должны быть созданы файлы устройства. По умолчанию они создаются во время установки вашей системы 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, запустив его как администратор (root). Также большинство версий Linux имеет скрипт /dev/MAKEDEV, который может быть использован для этой же цели. Если вы используете звуковой драйвер для PC speaker, прочитайте документацию, которая идет с пакетом, для того чтобы определить какие файлы устройства необходимо создать. 44..44.. ЗЗааггррууззккаа LLiinnuuxx ии ттеессттииррооввааннииее ууссттааннооввккии Сейчас вы должны быть готовы к загрузке нового ядра и тестирования звукового драйвера. Следуйте обычной процедуре инсталляции и загрузите новое ядро (сохраните старое ядро на случай возникновения проблем). В течении загрузки следите за сообщениями, которые следуют после включения питания (если они прокручиваются слишком быстро чтобы прочитать их, вы можете заново просмотреть их командой dmesg). Sound initialization started at 0x220 irq 5 dma 1,5 at 0x330 irq 5 dma 0 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 (Убедитесь, что вы не опустили ">" в командной строке, приведенной выше). Заметим, что в общем, использование cat это не лучший способ проигрывания звуковых файлов, это просто быстрая проверка. Вы должны взять соответствующую программу проигрывания звука (описано позже), которая будет выполнять работу лучше. Эти команды работают, если по крайней мере одно устройство перечислено в разделе аудио-устройств файла /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). Некотрые простые звуковые файлы могут быть получены с Теперь вы можете проверить запись звука. Если вы имеете возможность ввода звука, вы можете проделать быструю проверку этого, используя команды, такие как следующие: # record 4 seconds of audio from microphone EDT% dd bs=8k count=4 sample.au 4+0 records in 4+0 records out # play back sound % cat sample.au >/dev/audio Очевидно, что, чтобы это работало вам нужен микрофон, соединенный к звуковой карте и вы должны говорить в него. Вам также нужна программа микширования, чтобы установить микрофон как устройство ввода и выровнять уровни усиления записи. Если тесты прошли, вы можете быть уверенны, что звуковые устройства ЦАП и АЦП, и программное обеспечение работают. Если вы имеете проблемы, смотрите следующий раздел этого документа. 44..55.. РРааззрреешшееннииее ппррооббллеемм Если вы все еще сталкиваетесь с проблемами после выполнения инструкций, изложенных в этом документе, здесь изложены некоторые вещи, которые необходимо проверить. Проверки изложены в порядке возрастания сложности. Если проверка не удалась, решите эту проблему до перехода к следующей стадии. 44..55..11.. ссккооммппииллииррооввааннннооее яяддрроо.. ШШаагг 11:: УУббееддииттеессьь,, ччттоо ввыы ддееййссттввииттееллььнноо ззааппууссттииллии Вы можете проверить дату ядра, для того чтобы увидеть действительно ли вы запустили ядро, которое вы скомрилировали с поддержкой звука. Вы можете сделать это с помощью команды uname: % 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)? Если вы загружаетесь с дискеты, создали ли вы новый загрузочный диск и использовали его во время загрузки? 44..55..22.. ШШаагг 22:: УУббееддииттеессьь,, ччттоо ззввууккооввоойй ддррааййввеерр ввссттррооеенн вв яяддрроо.. Самый легкий путь проверить это -- просмотреть вывод "dev/sndstat" как описано ранее. Если вывод не такой как ожидалось, тогда что-то было неправильно во время конфигурации или компиляции ядра. Начните процесс инсталляции заново, начиная с процесса конфигурации или компиляции ядра. 44..55..33.. ззааггррууззккии?? ШШаагг 33:: ООббннаарруужжииввааеетт ллии яяддрроо вваашшуу ззввууккооввууюю ккааррттуу ввоо ввррееммяя Убедитесь, что звуковая карта обнаруживается во время загрузки ядра. Вы должны следить за сообщением при загрузке. Если сообщения ушли за пределы экрана, вы обычно можете просмотреть их используя команду dmesg: % dmesg или % tail /var/adm/messages Если ваша карта не нашлась, значит что-то неправильно. Убедитесь, что она действительно установлена. Если звуковая карта работает под DOS, то вы точно убедитесь, что оборудование работает, так что проблемы скорее всего с настройкой ядра. Либо вы настроили свою карту указав неправильный тип или задав неправильные параметры, или ваша карта не совместима с любым звуковым драйвером Linux. Еще может быть, что у вас звуковая карта "совместимого" типа, которые требуют инициализации драйвером DOS. Попытайтесь загрузить DOS и загрузить поставляемый продавцом драйвер звука. Затем перезагрузите Linux ("теплая" перезагрузка), нажав Control-Alt-Delete. Убедитесь, что номера портов ввода/вывода карты, настройки DMA, и IRQ в Linux те же самые, что и используются под DOS. Прочитайте файл Readme.cards из пакета звукового драйвера для инструкций о конфигурации вашего типа карты. Если ваша карта не перечислена в этом документе, возможно, что драйвер Linux не поддерживает ее. Вы можете проверить это с помощью некоторых ссылок, перечисленных в конце документа. 44..55..44.. ШШаагг 44:: ММоожжееттее ввыы ссччииттыыввааттьь ддаанннныыее сс ууссттррооййссттвваа ddsspp?? Попытайтесь считать с устройства /dev/audio используя команду dd показанную ранее в этом документе. Команда должна работать без ошибок. Если она не работает, вероятно что проблема в конфликте IRQ или DMA или некотором роде несовместимости оборудования (устройство не поддерживается Linux или драйвер настроен для неправильного устройства). Маловероятная возможность -- сломанное оборудование. Постарайтесь протестировать звуковую карту под DOS для исключения этой возможности. 44..55..55.. ККооггддаа ввссее ээттии шшааггии ддааллии ссббоойй Если вы все еще имеете проблемы, здесь некоторые заключительные пожелания о вещах, которые надо постараться сделать: ╥ внимательно перечитайте этот документ ╥ прочитайте материалы на ссылках, перечисленных в конце этого документа, особенно страницу Hannu Savolainen и файлы с документацией, соответствующие драйверу ядра ╥ пошлите вопрос в одну из групп новостей comp.os.linux или другую группу новостей (comp.os.linux.hardware -- это хороший выбор; вследствии высокого трафика в этих группах поместите строку "sound" в заголовке письма, так чтобы эксперты могли заметить его) ╥ Использование поисковой системы Web/Usenet с правильно составленным запросом может быстро дать хорошие результаты. Один из таких поисковых серверов ╥ попробуйте использовать последнюю версию ядра Linux (но только как последнюю надежду, поскольку последние версии ядер могут быть нестабильными) ╥ пошлите сообщение автору звукового драйвера ╥ пошлите сообщение автору этого документа (The Linux Sound HOWTO) ╥ Запустите emacs и наберите Esc-x doctor :-) 55.. ППррииллоожжеенниияя ппооддддеерржжииввааюющщииее ззввуукк Я даю здесь примеры типов приложений, которые вы вероятно захотите использовать, если вы имеете установленную звуковую карту в Linux. Вы можете проверить Linux Software Map (Карта программного обеспечения Linux), архивные сервера Internet, и/или файлы на вашем CD-ROM с Linux для более свежей информации. Как минимум, вы вероятно захотите получить следующие приложения: ╥ утилита преобразования форматов аудио-файлов (например Sox) ╥ утилита микширования (например aumix or xmix) ╥ проигрыватель/рекордер оцифрованных файлов (например play или wavplay) ╥ проигрыватель файлов MOD (например tracker) ╥ проигрыватель файлов MIDI (например playmidi) Большинство этих утилит существует как в текстовом варианте, так и с графическим интерфейсом пользователя. Вы можете найти также более специфические приложения (например программу синтеза и распознавания речи). 66.. ООттввееттыы ннаа ччаассттоо ззааддааввааееммыыее ввооппррооссыы ((FFAAQQ)) В этом разделе отвечается на некоторые вопросы, которые часто задаваемы в группах новостей и списках рассылки. Ответы на большее количество вопросов также может быть найдено на странице звукового драйвера OSS. 66..11.. ДДлляя ччееггоо ррааззллииччнныыее ффааййллыы ззввууккооввооггоо ууссттррооййссттвваа?? Это наиболее "стандартные" имена файлов устройства, некоторые пакеты Linux могут использовать немного отличные имена. //ddeevv//aauuddiioo обычно ссылка на файл /dev/audio0 //ddeevv//aauuddiioo00 устройство звука совместимое с устройством на рабочей станцией Sun (только частичная реализация, не поддерживается ioctl-интерфейс фирмы Sun, только u-law кодер) //ddeevv//aauuddiioo11 второе аудио-устройство (если поддерживается звуковой картой или у вас установлено больше одной звуковой карты) //ddeevv//ddsspp обычно ссылка на файл /dev/dsp0 //ddeevv//ddsspp00 первое устройство цифровой дискретизации //ddeevv//ddsspp11 первое устройство цифровой дискретизации //ddeevv//mmiixxeerr обычно ссылка на файл /dev/mixer0 //ddeevv//mmiixxeerr00 первый микшер звука //ddeevv//mmiixxeerr11 второй микшер звука //ddeevv//mmuussiicc высокоуровневый интерфейс sequencer //ddeevv//sseeqquueenncceerr низкоуровневый доступ к MIDI, FM, и GUS //ddeevv//sseeqquueenncceerr22 обычно ссылка на файл /dev/music //ddeevv//mmiiddii0000 1-й порт необработанных данных MIDI //ddeevv//mmiiddii0011 2-й порт необработанных данных MIDI //ddeevv//mmiiddii0022 3-й порт необработанных данных MIDI //ddeevv//mmiiddii0033 4-й порт необработанных данных MIDI //ddeevv//ssnnddssttaatt выводит состояние звукового драйвера при чтении Драйвер PC speaker обеспечивает следующие устройства: //ddeevv//ppccaauuddiioo эквивалент /dev/audio //ddeevv//ppccsspp эквивалент /dev/dsp //ddeevv//ppccmmiixxeerr эквивалент /dev/mixer 66..22.. ККаакк яя ммооггуу ппррооииггррааттьь ззввууккооввоойй ппррииммеерр?? Звуковые файлы рабочей станции Sun (.au) могут быть проиграны копированием их на устройство /dev/audio. Необработанные (сырые) данные могут быть посланы на устройство /dev/dsp. Это в общем дает правильные результаты, однако предпочтительно использование программ таких как play, так как они будут распознавать большинство типов файлов и устанавливать правильные параметры звуковой карты -- скорость дискретизации и т.п. Программы подобные wavplay или vplay (из пакета snd-util) будут давать наилучшие результаты с файлами WAV files. Однако они не распознают WAV-файлы Microsoft, сжатые по технологии ADPCM. Также старые версии программы play (из пакета Lsox) не работают нормально с 16-битными WAV-файлами. Комманда splay, включенная в пакет the snd-util, может быть использована для проигрывания большинства звуковых файлов, если правильные параметры будут вручную введены в командной строке. 66..33.. ККаакк яя ммооггуу ззааппииссааттьь ппррииммеерр?? При чтении устройств /dev/audio или /dev/dsp будут возвращаться оцифрованные данные, которые могут быть перенаправлены в файл. Программы, такие как vrec делают этот процесс легче, контролируя скорость дискретизации, продолжительность и т.п. Вам может также понадобится программа микширования для выбора нужного устройства ввода. 66..44.. ККаакк яя ммооггуу ииссппооллььззооввааттьь ббооллееее ччеемм ооддннуу ззввууккооввууюю ккааррттуу?? В настоящее время звуковой драйвер позволяет иметь несколько одновременно установленных в системе карт SoundBlaster, SoundBlaster/Pro, SoundBlaster16, MPU-401 или MSS. Установка двух карт SoundBlaster возможно, но требует определения макросов SB2_BASE, SB2_IRQ, SB2_DMA и (в некоторых случаях) SB2_DMA2, путем редактирования файла local.h вручную. Также возможно установить SoundBlaster одновременно с PAS16. С более новыми ядрами 2.0.x, которые настраивают звук используя make config, вместо local.h, вам необходимо отредактировать файл /usr/include/linux/autoconf.h. После секции содержащей строки: #define SBC_BASE 0x220 #define SBC_IRQ (5) #define SBC_DMA (1) #define SB_DMA2 (5) #define SB_MPU_BASE 0x0 #define SB_MPU_IRQ (-1) поместите следующие строки (со значениями для вашей системы): #define SB2_BASE 0x330 #define SB2_IRQ (7) #define SB2_DMA (2) #define SB2_DMA2 (2) Следующие драйвера не разрешают иметь много карт: ╥ GUS (ограничения драйвера) ╥ MAD16 (ограничения оборудования) ╥ AudioTrix Pro (ограничения оборудования) ╥ CS4232 (ограничения оборудования) 66..55.. ддииррееккттооррииии)) ддлляя ууссттррооййссттвв ззввууккаа ООшшииббккаа:: NNoo ssuucchh ffiillee oorr ddiirreecc╜╜ ttoorryy ((ННеетт ттааккооггоо ффааййллаа ииллии Вам необходимо создать файлы устройства драйвера звука. Сотрите раздел о создании файлов устройства. Если вы имеете файлы устройства, убедитесь, что они имеют правильные первичные (major) и вторичные (minor) номера (Некоторые старые дистрибутивы Linux могут не создавать правильные файлы устройства в течении установки). 66..66.. ууссттррооййссттвв ззввууккаа ООшшииббккаа:: NNoo ssuucchh ddeevviiccee ((ННеетт ттааккооггоо ууссттррооййссттвваа)) ддлляя Либо вы не загрузили ядро содержащее драйвер звука, либо настройки адресов портов ввода/вывода не соответствуют вашему оборудованию. Проверьте, что вы загрузили скомпилированное ядро и проверьте, что параметры которые вы ввели, когда настраивали драйвер звука, соответствуют настройкам вашего оборудования. 66..77.. ууссттррооййссттввее)) ддлляя ууссттррооййссттвв ззввууккаа ООшшииббккаа:: NNoo ssppaaccee lleefftt oonn ddeevviiccee ((ННее ооссттааллооссьь ммеессттаа ннаа Это может случится, если вы попытаетесь записать данные в файлы /dev/audio или /dev/dsp без создания необходимых файлов устройства. В настоящее время устройство звука является регулярным устройством и заполняет часть вашего диска. Вам необходимо запустить скрипт, описанный в разделе _С_о_з_д_а_н_и_е _ф_а_й_л_о_в _у_с_т_р_о_й_с_т_в_а этого документа. Это также может случаться с Linux 2.0 и более поздними если они не имеют достаточное количество свободной памяти, когда устройство открыто. Драйвер звука требует по крайней мере двух страниц (8k) непрерывной оперативной памяти для каждого канала DMA. Это случается иногда на машинах, которые имеют меньше чем 16M оперативной памяти или тех которые работают длительное время. Возможно освободить некоторое количество памяти откомпилировав и запустив следующую C-программу до открытия устройства снова: main() { int i; char mem[500000]; for (i = 0; i < 500000; i++) mem[i] = 0; exit(0); } 66..88.. ООшшииббккаа:: DDeevviiccee bbuussyy ((УУссттррооййссттввоо ззаанняяттоо)) ддлляя ууссттррооййссттвв ззввууккаа Только один процесс может открыть звуковое устройство. Скорее всего какой-то другой процесс использует устройство. Один из путей определить это -- использование команды fuser: % fuser -v /dev/dsp /dev/dsp: USER PID ACCESS COMMAND tranter 265 f.... tracker В вышеприведенном примере, команда fuser показывает, что процесс 265 открыл устройство. Ожидание пока процесс не завершится или его завершение (kill) позволит иметь доступ к устройству звука. Вы должны запустить команду fuser как администратор для того чтобы получить информацию об использовании другими пользователями. 66..99.. ЯЯ ввссее ррааввнноо ппооллууччааюю оошшииббккуу:: ууссттррооййссттввоо ззаанняяттоо!! Согласно сведениям Brian Gough, для карт SoundBlaster, которые используют DMA-канал 1, существует потенциальный конфликт с драйвером ленты QIC-02, который также использует DMA 1, вызывая ошибки "device busy (устройство занято)". Если вы используете FTAPE, у вас может быть разрешен этот драйвер. Согласно информации в FTAPE-HOWTO, драйвер QIC-02 не является необходимым для использования FTAPE; требуется только драйвер QIC-117. Переконфигурирование ядра для использования QIC-117, а не QIC-02 позволит сосуществовать FTAPE и драйверу звука. 66..1100.. ЧЧаассттииччннооее ппррооииггррыыввааннииее ззввууккооввооггоо ффааййллаа Обычный симптом -- звуковой пример играет около секунды и затем останавливается полностью или выдает сообщение об ошибке "missing IRQ (пропавшее IRQ)" или "DMA timeout (таймаут DMA)". Вероятнее всего у вас неправильные настройки IRQ или каналов DMA. Проверьте, что настройки ядра соответствуют установкам звуковой карты и что они не конфликтуют с другими картами. Другой симптом "зацикливание" звука. Это обычно вызывается конфликтом IRQ. 66..1111.. ВВооззннииккааюютт ппааууззыы ааоо ввррееммяя ппррооииггррыывваанниияя ффааййллоовв MMOODD Проигрывание MOD-файлов требует значительных мощи процессора. У вас может быть запущено слишком много процессов или ваш компьютер может быть слишком медленным для проигрывания в реальном времени. Вы можете сделать следующее: ╥ попытаться проигрывать с более низкой скоростью дискретизации или в моно режиме ╥ убрать другие процессы ╥ купить более мощный компьютер ╥ купить более мощную звуковую карту (например Gravis UltraSound) Если у вас карта Gravis UltraSound, вы должны использовать один из проигрывателей mod-файлов написанных специально для GUS (например gmod). 66..1122.. ООшшииббккии ккооммппиилляяццииии ппррии ккооммппиилляяццииии ззввууккооввыыхх ппррииллоожжеенниийй Версия 1.0c драйвера звука и более рание использовали другую и несовместимую схему ioctl(). Возьмите более свежую версию драйвера звука или сделайте необходимые изменения для адаптации приложений к новому драйверу звука. Для деталей смотрите файл Readme из поставки звукового драйвера. Также убедитесь, что вы используете последние версии файлов soundcard.h и ultrasound.h при компиляции приложения. Смотрите инструкции по инсталляции в начале этого текста. 66..1133.. ррааббооттааллоо SSEEGGVV ппррии ззааппууссккее ззввууккооввооггоо ппррииллоожжеенниияя,, ккооттооррооее ддоо ээттооггоо Вероятно это таже проблема, что и описана в предыдущем вопросе. 66..1144.. ККааккииее ииззввеессттнныы оошшииббккии ииллии ооггррааннииччеенниияя ззввууккооввооггоо ддррааййввеерраа?? Смотрите файлы Readme и CHANGELOG, включенные в исходные тексты звукового драйвера. 66..1155.. ГГддее ддооккууммееннттиирроовваанныы iiooccttll(()) ии тт..пп.. ззввууккооввооггоо ддррааййввеерраа?? Они частично документированы в _H_a_c_k_e_r_'_s _G_u_i_d_e _t_o _V_o_x_W_a_r_e, в настоящее время доступном в черновой форме. Последняя версия -- draft 2, и может быть найдена на . Заметим, что эта директория "скрытая" и не появляется в списке директорий. Если вы выполните команду "cd" на эту директорию и используете команду FTP "dir", то вы найдете _н_у_ж_н_ы_е файлы там. Во время написания, новая документация стала доступной на сервере 4Front Technologies. Другой источник документации -- Linux Multimedia Guide, описанное в разделе ссылок. 66..1166.. ззааппииссии ббеезз ппаауузз?? ККааккииее рреессууррссыы ппррооццеессссоорраа ннееооббххооддииммыы ддлляя ппррооииггррыывваанниияя ииллии На этот вопрос не легко ответить, так как это зависит от: ╥ используете вы PCM дискретизацию или FM-синтез ╥ скорость дискретизации и размер примера ╥ какое приложение используется для проигрывания или записи ╥ оборудование звуковой карты ╥ скорость ввода/вывода диска, скорость процессора, размер кэша, и т.п. В общем, любая 386 машина легко должна проигрывать примеры или FM-синтезированную музыку на 8-битной звуковой карте. Однако проигрывание MOD-файлов требует значительных ресурсов процессораs. Некоторые экспериментальные измерения показывают, что проигрывание на 44kHz требует более чем 40% скорости машины 486/50 и 386/25 может проигрывать едва быстрее чем 22 kHz (это все ч 8-битной звуковой картой такой как SoundBlaster). Такие карты как Gravis UltraSound выполняют больше функций сами, в железе, и будут требовать меньших ресурсов процессора. Эти выводы предполагают, что компьютер не выполняет другие ресурсоемкие задачи. Конвертация звуковых файлов или добавление эффектов, используя утилиты, такие как sox также быстрее, если у вас установлен математический сопроцессор (или CPU со встроенным FPU). Драйвер сам не выполняет любых вычислений с плавающей точкой. 66..1177.. ППррооббллееммыы сс PPAASS1166 ии ааддааппттеерроомм SSCCSSII AAddaapptteecc 11554422 (следующее объяснение было сделано seeker@indirect.com) Linux распознает адаптер 1542 только на адресе 330 (по умолчанию) или 334, и PAS разрешает эмуляцию MPU-401 только на адресе 330. Даже когда вы программно запретите MPU-401, что-нибудь захочет конфликтовать с адаптером 1542 если выбран адрес по умолчанию. Перестановка адаптера 1542 на адрес 334 сделает всех счастливыми. В качестве дополнения, и адаптер 1542 и PAS-16 используют 16-битное DMA, так что если вы используете 16-bit 44 KHz стерео-звук и сохраняете файл на SCSI-диск, установленный на адаптер 1542, вы будете иметь проблемы. Каналы DMA перекрываются и не остается достаточного времени для обновления оперативной памяти, так что вы получите ужасное сообщение ``PARITY ERROR - SYSTEM HALTED (ОШИБКА ЧЕТНОСТИ - СИСТЕМА ОСТАНОВЛЕНА)'', без объяснений что вызвало ее. Это ухудшается потому-что некоторые продавцы рекомендуют для ленточных устройств QIC-117 времена on/off шины, такие что даже для 1542 они дольше, чем нормальные. Возьмите программу SCSISEL.EXE с Adaptec BBS или с нескольких мест в internet, и уменьшайте время BUS ON или увеличивайте время BUS OFF до тех пор пока проблема не исчезнет. SCSISEL изменяет установки EEPROM, так что это более постоянно чем заплатка (patch) к строке драйвера DOS в CONFIG.SYS, и будет работать правильно если вы загрузитесь в Linux (в отличии от заплатки к DOS). Следующая проблема решена. Последняя проблема - старые наборы микросхем Symphony резко уменьшали синхронизацию циклов ввода/вывода для ускорения доступа к шине. Ни одна из разных карт, которые я пробовал не имеет _н_и _к_а_к_о_й проблемы с уменьшеной синхронизацией, исключая PAS-16. На BBS Media Vision есть SYMPFIX.EXE, который используется для решения этой проблемы путем изменения диагностического бита в контроллере шины Symphony, но это не дает твердой гарантии. Вы можете нуждаться в следующем: ╥ заставьте продавца материнской платы заменить старую версию контроллера шины, ╥ заменить материнскую плату, или ╥ купить другой тип звуковой платы. Young Microsystems обновляет импортируемые карты примерно за $30 (US); другие продавцы могут делать подобное, если вы сообщите кто произвел или импортировал материнскую плату (желаю удачи). Что касается меня, то проблема в микросхеме интерфейса шины ProAudio; _н_и_к_т_о не покупает $120 звуковую карту и засовывает ее в 6MHz AT. Большинство их используется в 25-40MHz 386/486 машинах, и дожны по крайней мере обслуживать скорость шины 12MHz, если микросхемы спроектированы правильно. Первая проблема зависит от набора микросхем, используемых на вашей материнской плате, какая скорость шины и других настроек BIOS, а также фазы луны. :-) Вторая проблема зависит от ваших настроек обновления памяти (скрытая или синхронная), скорости DMA адаптера 1542 и (возможно) скорости ввода/вывода шины. Третья может быть определена вызвав службу Media Vision и спросив какой тип микросхемы Symphony несовместим с их замедленным дизайном. Будьте осторожны, 3 из 4-х техников в которыми я говорил имеют "повреждение мозга". Должен ли я доверять _в_с_е_м_у, что они сказали о каком-то другом оборудовании, если они даже не знают свое собственное. 66..1188.. ВВооззммоожжнноо ллии ччииттааттьь ии ззааппииссыыввааттьь ппррииммееррыы ооддннооввррееммеенннноо?? Вследствии ограничения оборудования это невозможно с большинством звуковых карт. Некоторые новые карты поддерживают это. Для большей информации смотрите раздел "двунаправленный режим" в _H_a_c_k_e_r_'_s _G_u_i_d_e _t_o _V_o_x_w_a_r_e. 66..1199.. ррааззрреешшааеетт ээттоо ззннааччееннииее.. ММоояя ккааррттаа SSBB1166 ууссттааннооввллееннаа ннаа IIRRQQ 22,, нноо ппррооггррааммммаа ннаассттррооййккии ннее На 286 и поздних машинах, прерывание IRQ 2 каскадировано на второй контроллер прерываний. Это эквивалентно IRQ 9. 66..2200.. ППооддддеерржжииввааееттссяя ллии SSoouunnddBBllaasstteerr AAWWEE3322 ииллии SSoouunnddBBllaasstteerr1166 AASSPP?? В прошлом, Creative Labs не выпускало программную информацию о их картах. Сейчас они сменили свою политику и драйвер AWE включен в ядра Linux 2.1.x. 66..2211.. оошшииббккии ии//ииллии ззввууккооввыыее ппррииллоожжеенниияя ннее ррааббооттааюютт ппррааввииллььнноо.. ЕЕссллии яя ззааппууссккааюю LLiinnuuxx,, ззааттеемм ззааггрруужжааяяссьь вв DDOOSS,, яя ппооллууччааюю Это случается после "теплой" перезагрузки в DOS. Иногда сообщение об ошибке обманчива показывает на плохой файл CONFIG.SYS. Большинство современных звуковых карт имеют программируемые настройку IRQ и DMA. Если вы используете различные настройки в Linux и MS- DOS/Windows, это может вызвать проблемы. Некоторые звуковые карты не принимают новые параметры без полного сброса предыдущих (т.е. переключения питания или использования кнопки сброса). Для быстрого решения этой проблемы необходимо выполнить полную перезагрузку используя кнопку сброса (reset) или переключив питание вместо "теплой" перезагрузки (например Ctrl-Alt-Del). Правильное решение убедится, что вы используете теже самые настройки IRQ и DMA в MS-DOS и Linux (или не используйте DOS :-). 66..2222.. ППррооббллееммыы сс ззааппууссккоомм DDOOOOMM ппоодд LLiinnuuxx Пользователям игры DOOM компании ID software (версия для Linux) могут быть интересны эти сведения. Для правильного вывода звука вам нужен звуковой драйвер версии 2.90 или более поздней; он имеет поддержку для "DOOM режима" реального времени. Звуковые примеры являются 16-битными. Если у вас 8-битная звуковая карта вы все равно можете иметь звук, используя разные программы, доступные на . Если производительность DOOM в вашей системе плоха, то запрет звука (переименованием файла sndserver) может улучшить ее. По умолчанию DOOM не поддерживает музыку (как в версии DOS). Программа musserver добавит поддержку музыки в DOOM для Linux. Она может быть найдена на . 66..2233.. ККаакк яя ммооггуу ууммееннььшшииттьь шшуумм,, ииссппууссккааееммыыйй ммооеейй ззввууккооввоойй ппллааттоойй?? Использование хороших, качественно изолированных кабелей и попытка использования звуковой платы в разных слотах может помочь уменьшить шум. Если звуковая карта имеет контроль громкости, вы можете попытаться использовать разные настройки (вероятно максимальное значение будет наилучшим). Используя программу микширования вы можете убедится, что уровни устройств ввода (например микрофон) установлены в нулевое значение Некоторые звуковые карты просто не спроектированы с хорошей защитой и заземлением и склонны к испусканию шума. В конце замечу, что в моей системе я нашел, что опция командной строки ядра no-hlt уменьшает уровень шума. Она сообщает ядру, чтобы оно не использовало инструкцию halt при выполнении цикла ожидания процессов. Вы можете попробовать это вручную или установить используя команду append="no-hlt" в вашем файле конфигурации LILO. 66..2244.. ЯЯ ммооггуу ппррооииггррыыввааттьь ззввуукк,, нноо ннее ззааппииссыыввааттьь.. Если вы можете проигрывать звук, но не можете записывать, попробуйте сделать следующие шаги: ╥ используйте программу микширования для выбора необходимого устройства (например микрофона) ╥ используйте микшер для установки уровней ввода на максимум ╥ Если вы можете, попытайтесь протестировать работу записи звуковой карты под MS-DOS для того, чтобы определить может это аппаратная проблема Иногда для записи и проигрывания звука используются разные каналы DMA. В этом случае наиболее вероятная причина в том, что канал DMA для записи установлен неправильно. 66..2255.. ссннааччааллаа ппррооииннииццииааллииззииррууюю ееее ппоодд MMSS--DDOOSS.. ММоояя ""ссооввммеессттииммааяя"" ззввууккооввааяя ккааррттаа ррааббооттааеетт ттооллььккоо еессллии яя В большинстве случаев карты "совместимые с SoundBlaster" будет работать лучше под Linux если ее настроить под драйвер отличный от SoundBlaster. Большинство звуковых карт объявлено совместимыми (например "совместимая с 16-битным SB Pro" or "SB совместимая 16 бит"), но обычно этот режим SoundBlaster всего лишь "hack" сделанный для совместимости с играми для DOS. Большинство карт имеют собственный 16-битный режим, который скорее всего поддерживается недавними версиями Linux (2.0.1 и поздними). Только с некоторыми (обычно довольно старыми) картами необходимо попытаться заставить работать их в режиме SoundBlaster. Только новейшие карты, которые являются исключением из этого правила, являются картами основанными на Mwave. 66..2266.. ррааббооттааеетт ттооллььккоо вв 88--ббииттнноомм рреежжииммее ппоодд LLiinnuuxx.. ММоояя 1166--ббииттннааяя ""ссооввммеессттииммааяя"" сс SSoouunnddBBllaasstteerr ззввууккооввааяя ккааррттаа 16-битные звуковые карты описанные как совместимые с SoundBlaster в действительности совместимы только с 8-битной SoundBlaster Pro. Типично они имеют 16-битный режим, который не совместим с SoundBlaster 16 и не совместим с драйвером звука Linux. Вы можете заставить карту работать в 16-битном режиме используя драйвер MAD16 или MSS/WSS. 66..2277.. ГГддее яя ммооггуу ннааййттии ззввууккооввыыее ппррииллоожжеенниияя ддлляя LLiinnuuxx?? Здесь перечислены хорошие архивные сервера для поиска звуковых приложений специально для Linux: ╥ 66..2288.. ммооддуулльь?? ММоожжеетт ллии ззввууккооввоойй ддррааййввеерр ббыыттьь ссккооммппииллиирроовваанн ккаакк ззааггрруужжааееммыыйй В недавно появившихся ядрах звуковой драйвер поддерживается как загружаемый модуль. Для деталей смотрите файлы /usr/src/linux/drivers/sound/Readme.modules и /usr/src/linux/Documentation/modules.txt (или файл /usr/src/linux/README). 66..2299.. ссииссттееммнноойй ккооннссооллии?? ММооггуу яя ииссппооллььззооввааттьь ззввууккооввууюю ккааррттуу ддлляя ззааммеенныы ссииггннааллаа Попробуйте программу oplbeep, которую можно найти на Другим вариантом является программа beep доступная на Пакет modutils имеет пример программы и заплатку (patch) для ядра, которая поддерживает вызов произвольной внешней программы для генерации звука, когда требуется ядром. В качестве альтернативы на некоторых звуковых картах вы можете соединить вывод PC speaker'а к звуковой карте, так что все звуки будут выводится на динамики звуковой карты. 66..3300.. ЧЧттоо ттааккооее VVooxxWWaarree?? Драйвер звука поддерживает несколько различных Unix-совместимых операционных систем на базе Intel-based, и может быть получен как пакет отдельно от ядра Linux. До Февраля 1996 года, автор называл программное обеспечение "VoxWare". К сожалению это имя уже было зарегестрировано фирмой VoxWare Incorporated, и не могло быть использовано. Новое имя драйвера OSS/Free. Open Sound System (OSS) коммерчески доступный драйвер звука для разных Unix-систем, продаваемый 4Front Technologies. Свободная версия, известная как OSS/Free будет продолжаться быть свободной для Linux-систем. Другие имена -- TASD (Temporarily Anonymous Sound Driver) and USS (Unix Sound System), которые вы могли услышать, были использованы в прошлом для ссылок на тот же самый драйвер звука. Для большей информации смотрите страницу 4Front Technologies по адресу . Я написал обзор OSS/Linux в выпуске за Июнь 1997 Linux Journal. 66..3311.. ППооддддеерржжииввааююттссяя ллии PPlluugg aanndd PPllaayy ззввууккооввыыее ккааррттыы?? Полная поддержка Plug and Play должна появится в Linux версии 2.1. В промежуточное время существует некоторое количество способов (workarounds) чтобы заставить работать звуковые карты с Plug and Play. Если у вас новейшая Pentium-система с Plug and Play BIOS, она должна взять заботу о конфигурации карт для вас. Убедитесь, что вы настроили звуковой драйвер Linux на теже параметры адресов ввода/вывода IRQ, и каналов DMA что и в BIOS. Существует пакет Plug and Play утилит для Linux, который может быть использован для настройки карт. Он может быть найден на Web-сервере фирмы Red Hat (он также может быть включен в ваш дистрибутив Linux). Если вы используете карту под Windows95, вы можете использовать менеджер оборудования для настройки карты, затем "мягко" перезагрузиться в Linux используя программу LOADLIN. Убедитесь что Windows95 и Linux используют одинаковые настройки карты. Если вы используете карту под DOS, вы можете использовать утилиту icu, которая поставляется с картами SoundBlaster16 PnP для настройки их под DOS, затем "мягко" перезагрузиться в Linux используя программу LOADLIN. Затем убедитесь, что DOS и Linux используют одинаковые параметры настройки. Коммерческий звуковой драйвер фирмы OSS имеет поддержку звуковой карты SoundBlaster16 PnP. Вы можете купить этот драйвер у 4Front Technologies. 66..3322.. ((ннееппррааввииллььнныыйй ррааззммеерр ббллооккаа 11002244))"" SSooxx//PPllaayy//VVppllaayy ссооооббщщааеетт ""iinnvvaalliidd bblloocckk ssiizzee 11002244 Измение в драйвере звука в версии 1.3.67 некоторые программы проигрывания звука, которые (неправильно) проверяли, что результат из ioctl SNDCTL_DSP_GETBLKSIZE был больше чем 4096. Утилиты включенные в последний пакет-util-3.x.tar.gz (на ) теперь обрабатывают это правильно. Последние версии драйвера звука были также исправлены, чтобы избегать выделения фрагментов короче чем 4096 байтов, которое решило эту проблему для старых утилит. 66..3333.. ППооччееммуу ддррааййввеерр ззввууккаа ииммеееетт ссооббссттввееннннууюю ппррооггррааммммуу ннаассттррооййккии?? Звуковой драйвер поддерживает множество различных конфигурационных параметров. Программа configure, включенная в звуковой драйвер проверяет множество зависимостей между параметрами. Утилита используемая для настройки ядра не поддерживает такой уровень функциональности. Как было сказано, последние ядра опционально разрешают использование стандартной утилиты настройки ядра для драйвера звука (смотрите раздел "Настройка ядра"). 66..3344.. ззввууккооввооггоо ддррааййввеерраа ННаассттррооййккии ммииккшшеерраа ссббрраассыыввааююттссяя ккооггддаа яя ззааггрруужжааюю ммооддуулльь Вы можете скомпилировать драйвер звука как загружаемый модуль и использовать kerneld для того чтобы автоматически загружать и выгружать его. Это может представить одну проблему - когда модуль перезагружается установки микшера устанавливаются в значения по умолчанию. Для некоторых звуковых карт это может быть слишком шумным (например SoundBlaster16) или слишком тихим. Markus Gutschke (gutschk@uni-muenster.de) нашел решение. Используйте подобную строку в вашем файле /etc/conf.modules: options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75 Это запустит вашу программу микширования (в этом случае setmixer) немедленно после загрузки звукового драйвера. Параметр dma_buffsize это просто значение, необходимое потому-что команда option требует опцию командной строки. Измените эту строку как необходимо для соответствия вашей программе микширования и установкам уровней. Если вкомпилировали ваш драйвер звука в ядро и хотите установить уровни микширования во время загрузки, вы можете поместить вызов вашей программы микширования в стартовый файл системы такой как /etc/rc.d/rc.local. 66..3355.. ТТооллььккоо ааддммииннииссттррааттоорр ммоожжеетт ззааппииссыыввааттьь ззввуукк По умолчанию скрипт в файле Readme.linux, который создает файлы устройства звука, разрешает чтение устройств только пользователю root. Это затыкает потенциальную дыру в защите. В сетевой среде внешний пользователь может удаленно войти в систему с звуковой картой и микрофоном и подслушивать. Если вы не заботитесь об этом, вы можете изменить разрешения, используемые в скрипте. С настройками по умолчанию, пользователи могут проигрывать звуковые файлы. Это не риск безопасности, но потенциальная досада. 66..3366.. ППооддддеерржжииввааееттссяя ллии ззввууккооввооее ооббооррууддооввааннииее IIBBMM TThhiinnkkPPaadd?? Информация о том как использовать звуковую карту mwave на портативном компьютере IBM ThinkPad под Linux может быть найдена на . 77.. ССссыыллккии Если вы имеете звуковую карту, которая поддерживает CD-ROM или SCSI интерфейсы, документы Linux SCSI HOWTO и Linux CD-ROM HOWTO содержат дополнительную информацию, которая может быть полезна для вас. Документ Sound Playing HOWTO описывает как проигрывать различные типы звуковых и музыкальных файлов под Linux. Ultrasound Plug'n'play Mini-HOWTO описывает как заставить работать под Linux plug and play карту Gravis Ultrasound. Linux SoundBlaster 16 PnP Mini-HOWTO описывает как заставить работать под Linux plug and play карту SoundBlaster 16. Linux SoundBlaster AWE64 PnP Mini-HOWTO описывает как заставить работать под Linux plug and play карту SoundBlaster AWE64. Существует документ, называемый _H_a_c_k_e_r_'_s _G_u_i_d_e _t_o _V_o_x_W_a_r_e, доступный с . Большинство информации в нем заменилось документом на , но раздел о /dev/sequencer все еще может быть полезным. Следующие FAQ регулярно посылаются в группы новостей Usenet news.announce и также сохраняются на : ╥ PCsoundcards/generic-faq (Общий PC Soundcard FAQ) ╥ PCsoundcards/soundcard-faq (comp.sys.ibm.pc.soundcard FAQ) ╥ PCsoundcards/gravis-ultrasound/faq (Gravis UltraSound FAQ) ╥ audio-fmts/part1 (Описание форматов аудио-файлов) ╥ audio-fmts/part2 (Описание форматов аудио-файлов) Эти документы также перечисляют разные специфические списки рассылки и архивные сервера. Следующие группы новостей Usenet обсуждают темы относящиеся к звуку и/или музыке. ╥ alt.binaries.sounds.* (различные группы для рассылки звуковых файлов) ╥ alt.binaries.multimedia (для рассылки мультимедиа-файлов) ╥ alt.sb.programmer (разделы по программированию Soundblaster) ╥ comp.multimedia (разделы по мультимедиа) ╥ comp.music (теория и исследования в компьютерной музыке) ╥ comp.sys.ibm.pc.soundcard.* (различные группы о звуковых картах IBM PC) Web-сервер посвященный мультимедиа может быть найден по адресу . Creative Labs имеет Web-сервер на . Сервер MediaTrix расположен по адресу . Список рассылки Linux имеет несколько "каналов", посвященных различным темам, включая звук. Чтобы узнать как подключится к нему, пошлите почтовое сообщение со словом "help" в теле сообщения на адрес majordomo@vger.rutgers.edu. Эти списки рассылки не рекомендуются для вопросов об установке звуковых карт и т.п., они предназначены для дискуссий относящихся к разработке. Как замечено ранее, звуковой драйвер включает некоторое количество файлов Readme, содержащих полезную информацию о звуковом драйвере. Они обычно могут быть найдены в директории /usr/src/linux/drivers/sound. С автором драйвера звука, Hannu Savolainen, можно связаться по электронной почте hannu@voxware.pp.fi. Он также имеет WWW страницу по адресу . Этот сервер наилучший источник для нахождения информации о статусе поддерживаемых карт, известных проблемах, и исправлении ошибок. Информация об OSS, коммерческом драйвере звука для Linux и других Unix-совместимых операционных систем, может быть найдена на Web-странице 4Front Technologies по адресу . _L_i_n_u_x _S_o_f_t_w_a_r_e _M_a_p _(_К_а_р_т_а _п_р_о_г_р_а_м_м_н_о_г_о _о_б_е_с_п_е_ч_е_н_и_я _L_i_n_u_x_) (LSM) -- неоценимая ссылка для нахождения программного обеспечения для Linux. Поиск в LSM ключевых слов, таких как _s_o_u_n_d -- хороший способ для определения приложений относящихся к звуку. LSM может быть найден на разных анонимных FTP-серверах, включая . Linux Documentation Project выпустил несколько книг о Linux, включая _L_i_n_u_x _I_n_s_t_a_l_l_a_t_i_o_n _a_n_d _G_e_t_t_i_n_g _S_t_a_r_t_e_d _(_У_с_т_а_н_о_в_к_а _L_i_n_u_x _и _н_а_ч_а_л_а _р_а_б_о_т_ы_). Они свободно доступны по анонимному FTP с основных архивных серверов Linux или могут быть куплены в напечатанном виде. В заключении бесстыдная вставка: Если вы хотите больше обучится о мультимедиа под (особенно приложения и программирование CD-ROM и звуковых карт), выпишите мою книгу _L_i_n_u_x _M_u_l_t_i_m_e_d_i_a _G_u_i_d_e, ISBN 1-56592-219-0, опубликованную O'Reilly and Associates. Кроме оригинально Английской версии, Французский и Японский перевод сейчас в печати. Для деталей звоните call 800-998-9938 в Северной Америке или проверьте сервер или мою домашнюю страницу .