Как понять Аудио Подсистему?

Я уже использовал много версий Ubuntu, я запустил с 5,10. Но eversince у меня были проблемы с аудио подсистемой. Какие аппаратные средства, в настоящее время у меня есть два компьютера, и у обоих есть проблемы. На моем ноутбуке я должен инициировать канал Динамика для получения звуковым на моем Рабочем столе, также Ubuntu 10.04/32 укусила его, взял меня также большая игра для получения звуковой работы. На самом деле это просто работало случайно. Хотя входное качество звука все еще действительно плохо.

Теперь я установил на другом разделе, Ubuntu 10.04/64bit и звук не работают, хотя программный стек высокого уровня, кажется, прекрасен. Регистры Pavucontrol звучат и показывают корректные аппаратные средства, но я не могу услышать вещь. (За исключением других выходных разъемов, передней панели и другого канала, я слышу странные звуки.)

Мой вопрос: Как я могу учиться понимать аудиосистему Ubuntu и мочь отладить такие проблемы сам?

И другой вопрос: Почему аудио на Ubuntu так сложно? Должны быть десятки тысяч потоков на онлайн-форумах об этих проблемах, и я уже видел десятки потоков, указывающих ни на какое успешное решение. С другой стороны, должны быть сотни проблемы, решив руководства, но ни один из них не может покрыть все это...

Спасибо, Philip

3
задан 5 December 2010 в 06:40

2 ответа

В течение моего срока, поддерживая стопку аудио ПК в Ubuntu, я сделал несколько презентаций отладки настольного аспекта, и можно найти этого самым нежным или информативным. Суть вопроса - то, что комбинации эго (иначе "техническая гордость"), политика и коллизии владения (иначе "никакой специалист по обслуживанию") заставили болото API неожиданно возникать за прошлое десятилетие (и несколько лет), и много неправильных предположений были сделаны повсеместно. Мы продолжаем устранять многие несоответствия и плохие предположения. Для Ubuntu а именно, у нас есть группа Панели запуска разработчика. Я не могу говорить за других участников, потому что они - все Канонические сотрудники и могут иметь дополнительные ограничения, но конечно не стесняться связываться со мной через Панель запуска; я рад обойти Вас посредством процесса отладки индивидуально, поскольку наши расписания сцепляются.

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

Подводя итоги, существует два общих подхода для методической аудио отладки. Или каждый запускает на прикладном уровне, скажем, Банши, или каждый запускает на аппаратном уровне. Ради непротиворечивости я назову первого "высоким уровнем", т.е. выше в стеке и последнем как "низкий уровень", или понижусь в стеке, самом близком к аппаратным средствам. Я - самый удобный поиск и устранение неисправностей от самого низкого уровня вверх, так как мое участие в аудио за прошлое десятилетие (от создания и поддержания драйверов устройств посредством интеграции приложений) видело, что OEMs повторяет ошибки, что Linux, т.е. ядро, должен работать вокруг (или "бездельничать" как мы, разработчики иногда называют его). Все же аппаратные люди не более виновны, чем люди программного обеспечения. Эти проблемы имеют много оснований: не имеет значения, лежат ли они в BIOS, источнике питания, мостах материнской платы, звуковых контроллерах и кодеках, ядре или частях пространства пользователя (библиотеки, API, PulseAudio, приложения, и так далее). В конце проблема довольно проста: все мы недостаточно обрабатываем за пределы условия от каждого уровня ниже и через.

На аппаратном уровне ПК мы начинаем отлаживать путем идентификации точно, какие компоненты используются. Самые современные настольные аудио аппаратные средства имеют два значительных сведения: идентификатор подсистемы PCI и идентификатор подсистемы аудиокодека. Можно найти первого через lspci -nv; ищите аудио коды подсистемы 0401 (AC '97) или 0403 (Аудио С высоким разрешением). В зависимости от аппаратных средств последний может быть идентифицирован через информацию, выставленную самим драйвером ALSA в /proc/asound (отладка разработчиков сценария, который я просто связал, автоматизирует большую часть того сбора информации). Абсолютно жизненно важно, чтобы каждый понял и помнил, что подобные, даже идентичные, признаки часто имеют переменные аппаратные и программные причины. По этой причине является самым легким на людях, исправляющих ошибки иметь четкий отчет об ошибках, и вот почему в Ubuntu мы имеем ubuntu-bug alsa-base для проблем с драйвером и ubuntu-bug pulseaudio для проблем приложения. Если Вы не уверены, что виновным, просто выберите один или используйте аудио признак ошибки человечности. Независимо, мы запросим дополнительную информацию по мере необходимости.

SSID PCI важен, потому что это - запись, которой производитель компьютеров интегрируется который набор аудио компонентов на материнскую плату. Например, Вы будете часто находить Dell, HP/Compaq, Acer, Samsung, Lenovo, и так далее с помощью различных комбинаций IDT/Sigmatel, Realtek, Усика, Аналога и компонентов аудио Conexant. Dell, который имеет Realtek 269, не обязательно имеет то же поведение как HP с Realtek 269.

Кодек SSID можно считать аналогом PCI один с точки зрения производителя аудиооборудования. Информация связалась с кодеком, который SSID может использоваться для нахождения, какой пересмотр был интегрирован на кремний.

К сожалению, вот то, где проблемы начинаются. При предположении, что BIOS в порядке (который является довольно слепым предположением, с тех пор существует много поврежденных BIOS, которые наносят ущерб с аудио Linux), иногда SSID PCI снова используется неправильно. В тех ситуациях наше обращение за помощью должно применить определенные причуды в драйвере на основе кодека SSID. К сожалению, все еще иногда кодек SSID снова используется неправильно. В тех ситуациях мы должны посмотреть на определенные изменения кодека в дополнение к более вслепую вынуждающим скота попыткам повторно инициализировать драйвер.

Для большей части новейшего оборудования мы склонны полагать, что BIOS вместо того, чтобы использовать наше историческое "просто использует это трудно кодированное определение" подход. В некоторых ситуациях мы должны использовать инструменты для эмуляции кодека для нахождения, какие определения контакта работают что функции. Пропавшие без вести функций в драйвере для обработки смысла разъема, т.е. (ООН), отключающей звук внутренних динамиков, когда наушники (удалены) вставленные, могут быть легко исправлены этим способом.

После того как мы решили, что Ваше используемое оборудование не повреждается и что аудиодрайвер не должен быть исправлен, мы смотрим на слой пространства пользователя, а именно, alsa-lib, alsa-plugins, и pulseaudio. Подавляющее большинство проблем лежит в драйвере или в (некоторый интерфейс к) PulseAudio.

alsa-lib ответственно за обработку всех собственных операций ALSA (таким образом, PulseAudio использует ее, также). Проблемы здесь проявятся независимо, используется ли PulseAudio. С другой стороны, проблемы, возникающие только, когда виртуальное устройство ALSA 'по умолчанию' используется, могут указать на любого на PulseAudio alsa-lib плагин (в alsa-plugins) или к самому PulseAudio. В стандартной Ubuntu 8.10 и установках Kubuntu 10.10, маршруты 'по умолчанию' через PulseAudio, таким образом переключаясь между и собственными выводами PulseAudio 'по умолчанию' (или исходные данные, поскольку вариант использования может быть) должны помочь сузить который слой далее заняться расследованиями.

8
ответ дан 1 December 2019 в 13:11

Вы могли бы хотеть начать читать из записи PulseAudio в Wiki человечности.

2
ответ дан 1 December 2019 в 13:11

Другие вопросы по тегам:

Похожие вопросы: