Вопрос или проблема
Я пытаюсь настроить звук на своем Baytrail – rt5640 на Ubuntu 16.04 последние несколько недель. Но звука нет даже с вашим патчем ядра 4.10-Rc5 +Ubuntu 16.04
Я пересобрал свое ядро, так как моя таблица DSDT не содержит информации о CHAN для устройства (RTEK). Я взял информацию о канале из Windows.
Пожалуйста, проверьте логи.
Какие-нибудь предложения??
Пожалуйста, посмотрите мой лог ядра
[ 6.427853] Audio Probbed BIOS Routing: AIF1 connected
[ 6.427858] bytcr_rt5640 bytcr_rt5640: quirk IN1_MAP enabled
[ 6.427861] bytcr_rt5640 bytcr_rt5640: quirk DIFF_MIC enabled
[ 6.427863] bytcr_rt5640 bytcr_rt5640: quirk SSP0_AIF1 enabled
[ 6.427865] bytcr_rt5640 bytcr_rt5640: quirk MCLK_EN enabled
[ 6.427867] Audio Probbed byt_rt5640_cpu_dai_name ssp0-port
[ 6.427875] bytcr_rt5640 bytcr_rt5640: Не удалось получить MCLK от pmc_plt_clk_3: -2
[ 6.431975] Audio Probbed Не удалось получить MCLK от pmc_plt_clk_3: -2
[ 6.439096] rt5640_probe snd_soc_codec_force_bias_level
[ 6.442536] rt5640_probe sRT5640_ID_5640
[ 6.442758] rt5640_probe вернул Успех
[ 6.443609] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> media-cpu-dai сопоставление ок
[ 6.443678] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> deepbuffer-cpu-dai сопоставление ок
[ 6.443724] сжатие asoc: snd-soc-dummy-dai <-> compress-cpu-dai сопоставление ок
[ 6.444599] bytcr_rt5640 bytcr_rt5640: rt5640-aif1 <-> ssp0-port сопоставление ок
[ 6.447420] devm_snd_soc_register_card Успех вызова platform_set_drvdata 0
[ 6.447422] Audio Probbed snd_byt_rt5640_mc_probe возвращает
[ 10.603446] ASoC: Baytrail Audio Port нет действительного маршрута захвата
[ 10.603455] soc_pcm_open вызван
[ 10.603457] ASoC: cpu_dai->name media-cpu-dai
[ 10.654754] SST_IPC ***IPC_IA_FW_INIT_CMPLT_MRFLD: RX ***
[ 10.654757] SST_IPC *** Сообщение инициализации прошивки пришло***
[ 10.654765] intel_sst_acpi 80860F28:00: Версия прошивки 01.0c.00.01
[ 10.654766] Версия прошивки RX 01.0c.00.01
[ 10.654768] Дата сборки RX Mar 4 2015 Время 22:09:57
[ 10.654797] platform->component.name = sst-mfld-platform
[ 10.654800] ASoC: старт кодека cpu_dai->name media-cpu-dai
[ 10.655173] Baytrail Audio Port: ASoC: нет включенных DAIs для Baytrail Audio Port
[ 10.655711] Baytrail Audio Port: ASoC: нет включенных DAIs для Baytrail Audio Port
[ 10.655970] Baytrail Audio Port: ASoC: нет включенных DAIs для Baytrail Audio Port
----------------------------------------------------
Во время установки Gentoo на GPD Pocket у меня была такая же проблема, странным образом я обнаружил, что pulseaudio
решает проблему… запустите его, и он завершится с ошибкой, но после этого вы сможете использовать aplay
для воспроизведения wav-файла.
Вывод pulse audio, когда я его запускаю:
W: [pulseaudio] main.c: Эта программа не предназначена для запуска от имени root (если не указано --system).
Убито
Это вывод моего dmesg
, если я пытаюсь использовать aplay
до запуска pulseaudio
, я использую ядро 4.14.0 (только что выпущено на момент написания):
[ 98.209199] hci_uart_bcm serial0-0: BCM irq: 134
[ 98.209250] usb 1-3: USB отключен, номер устройства 3
[ 98.283103] Ошибка: Драйвер 'pcspkr' уже зарегистрирован, прерывание...
[ 98.350269] rt5645 i2c-10EC5645:00: i2c-10EC5645:00 поставка avdd не найдена, используется дummies-регулятор
[ 98.350316] rt5645 i2c-10EC5645:00: i2c-10EC5645:00 поставка cpvdd не найдена, используется дummies-регулятор
[ 98.431735] Bluetooth: hci0: BCM: id чипа 101
[ 98.432058] Bluetooth: hci0: BCM: особенности 0x2f
[ 98.433075] Bluetooth: hci0: BCM4354A2
[ 98.433080] Bluetooth: hci0: BCM4356A2 (001.003.015) сборка 0000
[ 98.442394] bluetooth hci0: Прямое загрузка прошивки для brcm/BCM4356A2.hcd не удалось с ошибкой -2
[ 98.442398] Bluetooth: hci0: BCM: Патч brcm/BCM4356A2.hcd не найден
[ 98.547281] intel_sst_acpi 808622A8:00: LPE base: 0xa1600000 size:0x200000
[ 98.547284] intel_sst_acpi 808622A8:00: IRAM base: 0xa16c0000
[ 98.547346] intel_sst_acpi 808622A8:00: DRAM base: 0xa1700000
[ 98.547359] intel_sst_acpi 808622A8:00: SHIM base: 0xa1740000
[ 98.547366] intel_sst_acpi 808622A8:00: Mailbox base: 0xa1744000
[ 98.547370] intel_sst_acpi 808622A8:00: DDR base: 0x20000000
[ 98.547598] intel_sst_acpi 808622A8:00: Полученные данные drv max поток 25
[ 98.612056] cht-bsw-rt5645 cht-bsw-rt5645: snd-soc-dummy-dai <-> media-cpu-dai сопоставление ок
[ 98.612107] cht-bsw-rt5645 cht-bsw-rt5645: snd-soc-dummy-dai <-> deepbuffer-cpu-dai сопоставление ок
[ 98.612131] сжатие asoc: snd-soc-dummy-dai <-> compress-cpu-dai сопоставление ок
[ 98.612461] cht-bsw-rt5645 cht-bsw-rt5645: rt5645-aif1 <-> ssp2-port сопоставление ок
[ 98.668833] input: chtrt5645 Headset как /devices/pci0000:00/808622A8:00/cht-bsw-rt5645/sound/card1/input14
[ 99.043453] hpet1: потеряно 9601 прерываний rtc
[ 190.221386] intel_sst_acpi 808622A8:00: Версия прошивки 01.0b.02.02
[ 190.222291] Audio Port: ASoC: нет включенных DAIs для Audio Port
[ 230.054571] Audio Port: ASoC: нет включенных DAIs для Audio Port
Если я пытаюсь воспроизвести обычный WAV-файл с помощью aplay -D hw:1,0 /file.wav
, то получаю это сообщение об ошибке:
Воспроизведение WAVE '/file.wav' : Подписанный 16 битный Little Endian, Частота 44100 Гц, Стерео
Предупреждение: частота не точна (запрошенная = 44100 Гц, полученная = 48000 Гц)
пожалуйста, попробуйте плагин plug
aplay: set_params:1361: Невозможно установить параметры hw:
ДОСТУП: RW_INTERLEAVED
ФОРМАТ: S16_LE
ПОДФОРМАТ: STD
БИТЫ_СЕМПЛЯ: 16
БИТЫ_КАДРА: 32
КАНАЛЫ: 2
ЧАСТОТА: 48000
ВРЕМЯ_ПЕРИОДА: 125000
РАЗМЕР_ПЕРИОДА: 6000
БАЙТЫ_ПЕРИОДА: 24000
ПЕРИОДЫ: 4
ВРЕМЯ_БУФЕРИЗАЦИИ: 500000
РАЗМЕР_БУФЕРИЗАЦИИ: 24000
БАЙТЫ_БУФЕРИЗАЦИИ: 96000
ВРЕМЯ_ТИКА: 0
Замена hw на plughw не делает большой разницы.
Я постараюсь выяснить, какая часть pulseaudio решила проблему… это должно быть довольно просто, так как после устранения проблемы он завершился с ошибкой.
Ответ или решение
Решение проблемы с аудио на Baytrail: "ASoC: no backend DAIs enabled for Baytrail Audio Port"
Введение
В данной статье мы внимательно проанализируем проблему с отсутствием звука на платформе Baytrail при использовании кодека RT5640 на Ubuntu 16.04. Мы рассмотрим логи ядра, возможные источники проблем и шаги для их исправления. Если вы столкнулись с сообщениями об ошибках, подобными "ASoC: no backend DAIs enabled for Baytrail Audio Port", это руководство поможет вам определить и устранить причину данной неисправности.
Контекст проблемы
Пользователь, испытывающий трудности с настройкой аудио, подробно описал свои действия: он сконструировал ядро 4.10-Rc5 с учетом своего DSDT, который не содержал нужной информации о каналах (CHAN) для устройства (RTEK). Это привело к неоднократным попыткам включения аудио безуспешно. Кроме того, в одном из тестов использование pulseaudio
частично решило проблему, однако само приложение выдало сообщение об ошибке.
Анализ логов ядра
Ниже приведены важные строки из логов, которые указывают на ключевые проблемы:
[ 6.427865] Audio Probbed byt_rt5640_cpu_dai_name ssp0-port
[ 6.427875] bytcr_rt5640 bytcr_rt5640: Failed to get MCLK from pmc_plt_clk_3: -2
[10.603446] ASoC: Baytrail Audio Port no valid capture route
[10.655970] Baytrail Audio Port: ASoC: no backend DAIs enabled for Baytrail Audio Port
-
Неудача в получении MCLK: Ошибка
Failed to get MCLK from pmc_plt_clk_3: -2
указывает на проблемы с тактовыми сигналами (clocking). Возможно, аппаратные компоненты не корректно инициализированы, и это мешает правильной работе аудиочипа. -
Недоступные бэкенды DAI: Сообщение
no backend DAIs enabled for Baytrail Audio Port
говорит о том, что не установлены необходимые интерфейсы (DAI) для передачи аудиосигнала. Это может указывать на неправильные конфигурации или отсутствие драйверов.
Рекомендации по устранению
-
Проверка конфигурации DSDT: Убедитесь, что ваша таблица DSDT содержит все необходимые записи об аудиоустройствах. Не стесняйтесь обращаться к документации для извлечения нужной информации из Windows.
-
Параметры ядра: Попробуйте следующие параметры загрузки ядра:
snd_soc_rt5640.force_private=1
Это может помочь в активации дополнительных функций аудиодрайвера в случае его неправильной конфигурации.
-
Обновление ядра: Первоначально использованное ядро 4.10 является устаревшим для вашего устройства. Рекомендуем обновить ядро до 4.14 или более поздней версии, так как в них могут быть исправлены многие ошибки, связанные с поддержкой новых технологий и чипов.
-
Pulseaudio: Использование
pulseaudio
может временно улучшить состояние. Проверьте его конфигурации и убедитесь, что он запущен с правильными правами. Возможно, существует проблема с запуском как root, которая может блокировать функции. -
Использование APlay: Если
aplay
не работает корректно, попробуйте задать параметры устройства:aplay -D plughw:1,0 /file.wav
Это обеспечит использование плагина, который автоматически адаптирует параметры.
-
Обращение к сообществу: Если проблемы продолжаются, рассмотрите возможность обращения к специализированным форумам или группам поддержки Linux, таким как ALSA или соответсвующие группы на GitHub.
Заключение
Проблема с отсутствием звука на устройствах Baytrail может быть вызвана многими факторами, начиная от неправильных конфигураций до физических ошибок оборудования. Ключ к успеху – это системный подход и анализ логов. Надеемся, что предложенные рекомендации помогут вам восстановить работу аудиоустройства. Будьте внимательны и терпеливы в процессе поиска решения!