Налаштування Linux для підтримки звуку включає наступні етапи:
- Установка звукової карти.
- Налаштування Plug and Play (якщо необхідно).
- Налагодження та компіляція ядра для підтримки звуку.
- Створення файлів пристрою.
- Завантаження ядра Linux і тестування.
Якщо ви працюєте в Red Hat Linux, то там є утиліта, названа sndconfig. яка в більшості випадків виявить вашу звукову карту і налаштує всі необхідні файли конфігурації для завантаження звукових драйверів, відповідних вашої звукової карти. Якщо ви працюєте в Red Hat, то я сподіваюся, що ви будете використовувати її. Якщо ця утиліта працює нормально, то ви можете пропустити залишок цього розділу.
Якщо sndconfig не працює, ви використовуєте інший дистрибутив Linux або ви хочете використовувати ручний метод для того, щоб краще зрозуміти що ви робите, то наступні розділи опишуть ці кроки більш детально.
Для установки обладнання дотримуйтесь інструкцій виробника або змусьте продавця встановити карту.
Старі мапи зазвичай мали перемикачі або набори перемикачів для установки IRQ, каналів DMA і т.п .; запишіть використовувані значення. Якщо ви не впевнені, використовуйте значення за замовчуванням. Намагайтеся, якщо можливо, уникати конфліктів з іншими пристроями (наприклад картами ethernet, адаптерами SCSI, послідовними і паралельними портами).
Зазвичай ви повинні використовувати ті ж самі установки для портів введення / виводу, IRQ і DMA, яких працюють під DOS. Однак в деяких випадках (особливо з PnP картами) ви можете використовувати інші настройки, щоб змусити карту працювати під Linux. Потрібно провести кілька експериментів.
Спочатку подивіться документацію на ваш дистрибутив Linux. У ньому вже може бути встановлена підтримка Plug and Play, або вона може працювати трохи по іншому, ніж описано тут. якщо вам необхідно налаштувати її самому, то подробиці цього процесу можуть бути знайдені в довідкових сторінках утиліт isapnp. Коротенько процес полягає в наступному:
Якщо з якоїсь причини ви не можете або не хочете використовувати пакет isapnp, тобто кілька інших способів. Якщо ви використовуєте карту при роботі в Microsoft Windows 95 або 98, то ви можете використовувати менеджер пристроїв для установки карти, а потім програмно перезавантажитися в Linux, використовуючи програму LOADLIN. Переконайтеся, що і Windows і Linux використовують одні і ті ж параметри карти.
Якщо ви використовуєте карту при роботі в DOS, то ви можете використовувати утиліту icu. яка поставляється з картами SoundBlaster16 PnP, для настройки карт в DOS, а потім програмно перезавантажитися в Linux за допомогою програми LOADLIN. Далі переконаєтеся, що DOS і Linux використовують одні і ті ж параметри карти.
Деякі з драйверів звукових карт включають програмне забезпечення, яке необхідно для ініціалізації Plug and Play для карти. Про деталі проконсультуйтеся в документації по драйверу карти.
Ви повинні проконсультуватися з Linux Kernel HOWTO для отримання детальної інформації про компіляції ядра. Я буду згадувати тут тільки речі, специфічні для звукових карт.
Якщо ви до цього ніколи не налаштовували ядро для підтримки звуку, то гарною ідеєю буде прочитати відповідні файли документації, що поставляються з драйвером звуку, особливо інформацію що відноситься до вашого типу карти. Файли можуть бути знайдені в каталозі з документацією по ядру, зазвичай вони встановлюються в каталог / usr / src / linux / Documentation / sound. Якщо у вас немає цього каталогу, то ви або використовуєте дуже старе ядро, або ви не встановили вихідні тексти ядра.
Дотримуйтесь звичайною процедурою побудови ядра. В даний час існує три інтерфейсу процесу конфігурації. Графічний інтерфейс, який запускається під керуванням X11 може бути запущений командою "make xconfig". Керована меню система, яка вимагає тільки текстовий екран викликається командою "make menuconfig". Оригінальний метод, використовуючи "make config", запускає простий текст-орієнтований інтерфейс.
При налаштуванні ядра представляється великий вибір типів наявних звукових карт, і параметрів використовуваних драйверів. Контекстна допомога всередині утиліти налаштування повинна забезпечувати пояснення кожного їх параметрів. Виберіть необхідні параметри.
Після налаштування параметрів, ви повинні скомпілювати і встановити нове ядро, як це описано в Kernel HOWTO.
Для правильного проведення операцій, для звукового драйвера повинні бути створені файли пристрою. За умовчанням вони створюються під час установки вашої системи Linux. Швидка перевірка може бути проведена за допомогою команди, показаної нижче. Якщо висновок такої ж як показаний (дата буде відрізнятися), тоді файли пристрою майже в нормі.
Зауважимо, що наявність правильних файлів пристрою не гарантує нічого. Драйвер повинен бути завантажений або вкомпільовані в ядро до того як пристрій буде працювати (більше про це далі).
У рідкісних випадках, якщо ви вважаєте що файли пристрою є неправильними, ви можете заново створити їх. Більшість дистрибутивів Linux має скрипт / dev / MAKEDEV, який може бути використаний для цієї ж мети.
Зараз ви повинні бути готові до завантаження нового ядра і тестування звукового драйвера. Дотримуйтесь звичайною процедурою інсталяції і завантажте нове ядро (збережіть старе ядро на випадок виникнення проблем).
Вони повинні відповідати вашому типу карти і установкам перемикачів (якщо вони є).
Зауважимо, що вищенаведені повідомлення не з'являються, коли ви використовуєте звуковий драйвер в вигляді завантаження модуля ядра (до тих пір поки ви не дозволите його, наприклад командою insmod sound trace_init = 1).
Коли драйвер звуку знаходиться в ядрі, повинні з'являтися повідомлення Sound initialization started (ініціалізація звуку розпочато) і Sound initialization complete (ініціалізація звуку виконана). Якщо вони не з'являються, це означає, що драйвера звуку немає в ядрі. В цьому випадку ви повинні перевірити чи дійсно ви встановили ядро з включеним звуковим драйвером.
Якщо нічого не з'являється між рядками Sound initialization started і Sound initialization complete. це означає, що ніякого звукового пристрою не виявлено. Швидше за все це означає, що ви не дозволили правильний тип драйвера, картка не підтримується, неправильно задані порти введення / виводу або що у вас PnP карта, яка не була налаштована.
Драйвер може також видавати деякі повідомлення про помилки і попередження в процесі завантаження. Спостерігайте за ними в процесі першого завантаження після настройки звукового драйвера.
Далі ви повинні перевірити файл пристрою / dev / sndstat. Читання файлу статусу звукового драйвера має дати додаткову інформацію чи був драйвер звукової карти инициализирован правильно. Простий висновок повинен виглядати подібно до цього:
Команда, наведена вище, може видавати деякі повідомлення про помилки. "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 це не кращий спосіб програвання звукових файлів, це просто швидка перевірка. Ви повинні взяти відповідну програму програвання звуку (описано пізніше), яка буде виконувати роботу краще.
Ці команди працюють, якщо принаймні один пристрій перераховано в розділі аудіо-пристроїв файлу / 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).
Тепер ви можете перевірити запис звуку. Якщо ви маєте можливість введення звуку, ви можете виконати швидку перевірку цього, використовуючи команди, такі як наступні:
Очевидно, що, щоб це працювало вам потрібен мікрофон, з'єднаний до звукової карти і ви повинні говорити в нього. Вам також потрібна програма мікшування, щоб встановити мікрофон як пристрій введення і вирівняти рівні посилення записи.
Якщо тести пройшли, ви можете бути впевнені, що звукові пристрої ЦАП і АЦП, і програмне забезпечення працюють. Якщо ви маєте проблеми, дивіться наступний розділ цього документа.
Якщо ви все ще стикаєтеся з проблемами після виконання інструкцій, викладених в цьому документі, тут викладено деякі речі, які необхідно перевірити. Перевірки викладені в порядку зростання складності. Якщо перевірка не вдалася, вирішите цю проблему до переходу до наступної стадії.
Крок 1: Переконайтеся, що ви дійсно запустили скомпілірованноеядро.
Ви можете перевірити дату ядра, для того щоб побачити чи дійсно ви запустили ядро, яке ви скомпілювали з підтримкою звуку. Ви можете зробити це за допомогою команди uname.
Якщо дата не відповідає тій, коли ви компілювали ядро, значить ви все ще працюєте зі старим ядром. Чи дійсно ви перезавантажити? Якщо ви використовуєте LILO, чи дійсно ви переставили його (зазвичай запуском lilo)? Якщо ви завантажуєтесь з дискети, створили ви новий завантажувальний диск і використовували його під час завантаження?
Крок 2: Переконайтеся, що звуковий драйвер вбудований в ядро.
Крок 3: Виявляє чи ядро вашу звукову карту в времязагрузкі?
Якщо ваша картка не знайшлася, значить щось неправильно. Переконайтеся, що вона дійсно встановлена. Якщо звукова карта працює під DOS, то ви точно переконаєтеся, що обладнання працює, так що проблеми швидше за все з налаштуванням ядра. Або ви налаштували свою карту вказавши неправильний тип або задавши неправильні параметри, або ваша карта не сумісна з будь-яким звуковим драйвером Linux.
Ще може бути, що у вас звукова карта сумісного типу, які вимагають ініціалізації драйвером DOS. Спробуйте завантажити DOS і завантажити поставляється продавцем драйвер звуку. Потім перезавантажте Linux ( "тепла" перезавантаження), натиснувши Control-Alt-Delete. Переконайтеся, що номери портів введення / виводу карти, настройки DMA, і IRQ в Linux ті ж самі, що і використовуються під DOS. Прочитайте файл Readme.cards з пакета звукового драйвера для інструкцій про конфігурацію вашого типу карти.
Якщо ваша картка не перерахована в цьому документі, можливо, що драйвер Linux не підтримує її. Ви можете перевірити це за допомогою деяких посилань, перерахованих в кінці документа.
Крок 4: Чи можете ви зчитувати дані з пристрою dsp?
Спробуйте вважати з пристрою / dev / audio використовуючи команду dd показану раніше в цьому документі. Команда повинна працювати без помилок.
Якщо вона не працює, ймовірно що проблема в конфлікті IRQ або DMA або певної міри несумісності обладнання (пристрій не підтримує Linux або драйвер налаштований для неправильне влаштування).
Малоймовірна можливість - зламане обладнання. Постарайтеся протестувати звукову карту під DOS для виключення цієї можливості.
Коли всі ці кроки дали збій
Якщо ви все ще маєте проблеми, тут деякі заключні побажання про речі, які треба постаратися зробити: