|
6. Ответы на часто задаваемые вопросы (FAQ)В этом разделе отвечается на некоторые вопросы, которые часто задаваемы в группах новостей и списках рассылки. Ответы на большее количество вопросов также может быть найдено на странице звукового драйвера OSS.
6.1 Для чего различные файлы звукового устройства?Это наиболее "стандартные" имена файлов устройства, некоторые пакеты Linux могут использовать немного отличные имена.
Драйвер PC speaker обеспечивает следующие устройства:
6.2 Как я могу проиграть звуковой пример?Звуковые файлы рабочей станции Sun (.au) могут быть проиграны
копированием их на устройство /dev/audio.
Необработанные (сырые) данные могут быть посланы на устройство
/dev/dsp. Это в общем дает правильные результаты,
однако предпочтительно использование программ таких как
Программы подобные wavplay или vplay (из пакета snd-util) будут давать наилучшие результаты с файлами WAV files. Однако они не распознают WAV-файлы Microsoft, сжатые по технологии ADPCM. Также старые версии программы play (из пакета Lsox) не работают нормально с 16-битными WAV-файлами. Комманда splay, включенная в пакет the snd-util, может быть использована для проигрывания большинства звуковых файлов, если правильные параметры будут вручную введены в командной строке.
6.3 Как я могу записать пример?При чтении устройств /dev/audio или
/dev/dsp будут возвращаться оцифрованные данные,
которые могут быть перенаправлены в файл. Программы, такие как
6.4 Как я могу использовать более чем одну звуковую карту?В настоящее время звуковой драйвер позволяет иметь несколько одновременно установленных в системе карт 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) Следующие драйвера не разрешают иметь много карт:
6.5 Ошибка: No such file or directory (Нет такого файла или директории) для устройств звукаВам необходимо создать файлы устройства драйвера звука. Сотрите раздел о создании файлов устройства. Если вы имеете файлы устройства, убедитесь, что они имеют правильные первичные (major) и вторичные (minor) номера (Некоторые старые дистрибутивы Linux могут не создавать правильные файлы устройства в течении установки).
6.6 Ошибка: No such device (Нет такого устройства) для устройств звукаЛибо вы не загрузили ядро содержащее драйвер звука, либо настройки адресов портов ввода/вывода не соответствуют вашему оборудованию. Проверьте, что вы загрузили скомпилированное ядро и проверьте, что параметры которые вы ввели, когда настраивали драйвер звука, соответствуют настройкам вашего оборудования.
6.7 Ошибка: No space left on device (Не осталось места на устройстве) для устройств звукаЭто может случится, если вы попытаетесь записать данные в файлы /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); }
6.8 Ошибка: Device busy (Устройство занято) для устройств звукаТолько один процесс может открыть звуковое устройство. Скорее
всего какой-то другой процесс использует устройство. Один из путей
определить это -- использование команды
% fuser -v /dev/dsp /dev/dsp: USER PID ACCESS COMMAND tranter 265 f.... tracker В вышеприведенном примере, команда
6.9 Я все равно получаю ошибку: устройство занято!Согласно сведениям Brian Gough, для карт SoundBlaster, которые используют DMA-канал 1, существует потенциальный конфликт с драйвером ленты QIC-02, который также использует DMA 1, вызывая ошибки "device busy (устройство занято)". Если вы используете FTAPE, у вас может быть разрешен этот драйвер. Согласно информации в FTAPE-HOWTO, драйвер QIC-02 не является необходимым для использования FTAPE; требуется только драйвер QIC-117. Переконфигурирование ядра для использования QIC-117, а не QIC-02 позволит сосуществовать FTAPE и драйверу звука.
6.10 Частичное проигрывание звукового файлаОбычный симптом -- звуковой пример играет около секунды и затем останавливается полностью или выдает сообщение об ошибке "missing IRQ (пропавшее IRQ)" или "DMA timeout (таймаут DMA)". Вероятнее всего у вас неправильные настройки IRQ или каналов DMA. Проверьте, что настройки ядра соответствуют установкам звуковой карты и что они не конфликтуют с другими картами. Другой симптом "зацикливание" звука. Это обычно вызывается конфликтом IRQ.
6.11 Возникают паузы ао время проигрывания файлов MOD
Проигрывание MOD-файлов требует значительных мощи процессора. У вас может быть запущено слишком много процессов или ваш компьютер может быть слишком медленным для проигрывания в реальном времени. Вы можете сделать следующее:
Если у вас карта Gravis UltraSound, вы должны использовать один из
проигрывателей mod-файлов написанных специально для GUS (например
6.12 Ошибки компиляции при компиляции звуковых приложенийВерсия 1.0c драйвера звука и более рание использовали другую и
несовместимую схему Также убедитесь, что вы используете последние версии файлов soundcard.h и ultrasound.h при компиляции приложения. Смотрите инструкции по инсталляции в начале этого текста.
6.13 SEGV при запуске звукового приложения, которое до этого работало
Вероятно это таже проблема, что и описана в предыдущем вопросе.
6.14 Какие известны ошибки или ограничения звукового драйвера?
Смотрите файлы Readme и CHANGELOG, включенные в исходные тексты звукового драйвера.
6.15 Где документированы ioctl() и т.п. звукового драйвера?
Они частично документированы в Hacker's Guide to VoxWare, в настоящее время доступном в черновой форме. Последняя версия -- draft 2, и может быть найдена на ftp://nic.funet.fi/pub/Linux/ALPHA/sound/. Заметим, что эта директория "скрытая" и не появляется в списке директорий. Если вы выполните команду "cd" на эту директорию и используете команду FTP "dir", то вы найдете нужные файлы там. Во время написания, новая документация стала доступной на сервере 4Front Technologies. Другой источник документации -- Linux Multimedia Guide, описанное в разделе ссылок.
6.16 Какие ресурсы процессора необходимы для проигрывания или записи без пауз?
На этот вопрос не легко ответить, так как это зависит от:
В общем, любая 386 машина легко должна проигрывать примеры или FM-синтезированную музыку на 8-битной звуковой карте. Однако проигрывание MOD-файлов требует значительных ресурсов процессораs. Некоторые экспериментальные измерения показывают, что проигрывание на 44kHz требует более чем 40% скорости машины 486/50 и 386/25 может проигрывать едва быстрее чем 22 kHz (это все ч 8-битной звуковой картой такой как SoundBlaster). Такие карты как Gravis UltraSound выполняют больше функций сами, в железе, и будут требовать меньших ресурсов процессора. Эти выводы предполагают, что компьютер не выполняет другие ресурсоемкие задачи. Конвертация звуковых файлов или добавление эффектов, используя
утилиты, такие как
6.17 Проблемы с PAS16 и адаптером SCSI Adaptec 1542
(следующее объяснение было сделано 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-х техников в которыми я говорил имеют "повреждение мозга". Должен ли я доверять всему, что они сказали о каком-то другом оборудовании, если они даже не знают свое собственное.
6.18 Возможно ли читать и записывать примеры одновременно?
Вследствии ограничения оборудования это невозможно с большинством звуковых карт. Некоторые новые карты поддерживают это. Для большей информации смотрите раздел "двунаправленный режим" в Hacker's Guide to Voxware.
6.19 Моя карта SB16 установлена на IRQ 2, но программа настройки не разрешает это значение.
На 286 и поздних машинах, прерывание IRQ 2 каскадировано на второй контроллер прерываний. Это эквивалентно IRQ 9.
6.20 Поддерживается ли SoundBlaster AWE32 или SoundBlaster16 ASP?
В прошлом, Creative Labs не выпускало программную информацию о их картах. Сейчас они сменили свою политику и драйвер AWE включен в ядра Linux 2.1.x.
6.21 Если я запускаю Linux, затем загружаясь в DOS, я получаю ошибки и/или звуковые приложения не работают правильно.
Это случается после "теплой" перезагрузки в DOS. Иногда сообщение об ошибке обманчива показывает на плохой файл CONFIG.SYS. Большинство современных звуковых карт имеют программируемые настройку IRQ и DMA. Если вы используете различные настройки в Linux и MS-DOS/Windows, это может вызвать проблемы. Некоторые звуковые карты не принимают новые параметры без полного сброса предыдущих (т.е. переключения питания или использования кнопки сброса). Для быстрого решения этой проблемы необходимо выполнить полную перезагрузку используя кнопку сброса (reset) или переключив питание вместо "теплой" перезагрузки (например Ctrl-Alt-Del). Правильное решение убедится, что вы используете теже самые настройки IRQ и DMA в MS-DOS и Linux (или не используйте DOS :-).
6.22 Проблемы с запуском DOOM под Linux
Пользователям игры DOOM компании ID software (версия для Linux) могут быть интересны эти сведения. Для правильного вывода звука вам нужен звуковой драйвер версии 2.90 или более поздней; он имеет поддержку для "DOOM режима" реального времени. Звуковые примеры являются 16-битными. Если у вас 8-битная звуковая карта вы все равно можете иметь звук, используя разные программы, доступные на ftp://sunsite.unc.edu/pub/Linux/games/doom. Если производительность DOOM в вашей системе плоха, то запрет звука
(переименованием файла По умолчанию DOOM не поддерживает музыку (как в версии DOS).
Программа
6.23 Как я могу уменьшить шум, испускаемый моей звуковой платой?
Использование хороших, качественно изолированных кабелей и попытка использования звуковой платы в разных слотах может помочь уменьшить шум. Если звуковая карта имеет контроль громкости, вы можете попытаться использовать разные настройки (вероятно максимальное значение будет наилучшим). Используя программу микширования вы можете убедится, что уровни устройств ввода (например микрофон) установлены в нулевое значение Некоторые звуковые карты просто не спроектированы с хорошей защитой и заземлением и склонны к испусканию шума. В конце замечу, что в моей системе я нашел, что опция командной
строки ядра
6.24 Я могу проигрывать звук, но не записывать.
Если вы можете проигрывать звук, но не можете записывать, попробуйте сделать следующие шаги:
Иногда для записи и проигрывания звука используются разные каналы DMA. В этом случае наиболее вероятная причина в том, что канал DMA для записи установлен неправильно.
6.25 Моя "совместимая" звуковая карта работает только если я сначала проинициализирую ее под MS-DOS.
В большинстве случаев карты "совместимые с SoundBlaster" будет работать лучше под Linux если ее настроить под драйвер отличный от SoundBlaster. Большинство звуковых карт объявлено совместимыми (например "совместимая с 16-битным SB Pro" or "SB совместимая 16 бит"), но обычно этот режим SoundBlaster всего лишь "hack" сделанный для совместимости с играми для DOS. Большинство карт имеют собственный 16-битный режим, который скорее всего поддерживается недавними версиями Linux (2.0.1 и поздними). Только с некоторыми (обычно довольно старыми) картами необходимо попытаться заставить работать их в режиме SoundBlaster. Только новейшие карты, которые являются исключением из этого правила, являются картами основанными на Mwave.
6.26 Моя 16-битная "совместимая" с SoundBlaster звуковая карта работает только в 8-битном режиме под Linux.
16-битные звуковые карты описанные как совместимые с SoundBlaster в действительности совместимы только с 8-битной SoundBlaster Pro. Типично они имеют 16-битный режим, который не совместим с SoundBlaster 16 и не совместим с драйвером звука Linux. Вы можете заставить карту работать в 16-битном режиме используя драйвер MAD16 или MSS/WSS.
6.27 Где я могу найти звуковые приложения для Linux?
Здесь перечислены хорошие архивные сервера для поиска звуковых приложений специально для Linux:
6.28 Может ли звуковой драйвер быть скомпилирован как загружаемый модуль?
В недавно появившихся ядрах звуковой драйвер поддерживается как загружаемый модуль. Для деталей смотрите файлы /usr/src/linux/drivers/sound/Readme.modules и /usr/src/linux/Documentation/modules.txt (или файл /usr/src/linux/README).
6.29 Могу я использовать звуковую карту для замены сигнала системной консоли?
Попробуйте программу Другим вариантом является программа Пакет В качестве альтернативы на некоторых звуковых картах вы можете соединить вывод PC speaker'а к звуковой карте, так что все звуки будут выводится на динамики звуковой карты.
6.30 Что такое VoxWare?
Драйвер звука поддерживает несколько различных 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 по адресу http://www.4front-tech.com/. Я написал обзор OSS/Linux в выпуске за Июнь 1997 Linux Journal.
6.31 Поддерживаются ли Plug and Play звуковые карты?
Полная поддержка 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 http://www.redhat.com/ (он также может быть включен в ваш дистрибутив Linux). Если вы используете карту под Windows95, вы можете использовать менеджер оборудования для настройки карты, затем "мягко" перезагрузиться в Linux используя программу LOADLIN. Убедитесь что Windows95 и Linux используют одинаковые настройки карты. Если вы используете карту под DOS, вы можете использовать утилиту
Коммерческий звуковой драйвер фирмы OSS имеет поддержку звуковой карты SoundBlaster16 PnP. Вы можете купить этот драйвер у 4Front Technologies.
6.32 Sox/Play/Vplay сообщает "invalid block size 1024 (неправильный размер блока 1024)"
Измение в драйвере звука в версии 1.3.67 некоторые программы проигрывания звука, которые (неправильно) проверяли, что результат из ioctl SNDCTL_DSP_GETBLKSIZE был больше чем 4096. Утилиты включенные в последний пакет-util-3.x.tar.gz (на ftp://ftp.4front-tech.com/ossfree) теперь обрабатывают это правильно. Последние версии драйвера звука были также исправлены, чтобы избегать выделения фрагментов короче чем 4096 байтов, которое решило эту проблему для старых утилит.
6.33 Почему драйвер звука имеет собственную программу настройки?
Звуковой драйвер поддерживает множество различных конфигурационных
параметров. Программа Как было сказано, последние ядра опционально разрешают использование стандартной утилиты настройки ядра для драйвера звука (смотрите раздел "Настройка ядра").
6.34 Настройки микшера сбрасываются когда я загружаю модуль звукового драйвера
Вы можете скомпилировать драйвер звука как загружаемый модуль и
использовать
options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75 Это запустит вашу программу микширования (в этом случае
Если вкомпилировали ваш драйвер звука в ядро и хотите установить уровни микширования во время загрузки, вы можете поместить вызов вашей программы микширования в стартовый файл системы такой как /etc/rc.d/rc.local.
6.35 Только администратор может записывать звук
По умолчанию скрипт в файле Readme.linux, который создает файлы
устройства звука, разрешает чтение устройств только пользователю
С настройками по умолчанию, пользователи могут проигрывать звуковые файлы. Это не риск безопасности, но потенциальная досада.
6.36 Поддерживается ли звуковое оборудование IBM ThinkPad?
Информация о том как использовать звуковую карту mwave на портативном компьютере IBM ThinkPad под Linux может быть найдена на http://www.screamin.demon.co.uk/.
|
|||||||||||||||||
With any suggestions or questions please feel free to contact us |