LINUX.ORG.RU

[Solution] Звук на ASUS A7U, A7K с Intel HDA (SBx00 Azalia, Realtek ALC660-VD)


0

0

Хочу поделиться решением неприятной проблемы со звуком на некоторых моделях ноутбуков ASUS. Подвержены как минимум две модели: A7U и A7K. Проблема довольно старая (я бы даже сказал, застарелая), и до недавнего времени красивого решения не имевшая (кроме как использовать старые версии ядра и alsa-driver). Была замечена даже на ЛОРе.

Звуковая карта определяется lspci так:

# lspci | grep "Intel HDA"

00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)

Версия кодека:

# cat /proc/asound/card0/codec#0 | grep Codec

Codec: Realtek ALC660-VD

Симптомы: звук работает только со старыми версиями alsa-driver <= 1.0.15. Все последующие версии либо вообще не выдают звука, либо выдают очень тихий, шипящий и щёлкающий звук (слышно если выкрутить все регуляторы на максимум и хорошо прислушаться). Манипуляции с параметрами модуля snd-hda-intel (model, position_fix, enable_msi, probe_mask) не помогают.

Причина: эти модели используют один и тот же выход для вывода и аналогового, и цифрового сигнала (S/PDIF). По идее, драйвер должен сам определять, какое оборудование подключено к устройству, и в зависимости от этого выдавать либо аналоговый, либо цифровой сигнал. Но по какой-то причине это перестало работать начиная с alsa-driver 1.0.16.

Решение: заставить HDA-кодек выдавать аналоговый сигнал. Для этого нужно:

  1. прописать в modprobe.conf
    options snd-hda-intel model=auto position_fix=1
    
  2. скачать и собрать утилиту hda-verb;
  3. добавить в rc.local (или что у вас там) следующие строки:
    /usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 3
    /usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 1
    /usr/local/sbin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 1
    
  4. наслаждаться звучанием.

Это элегантное решение было найдено пользователем dfm7a с багтрекера ALSA (баг #0004380), за что ему огромный респект и уважуха. Работает для моего ASUS A7U, возможно сработает также для некоторых похожих моделей.

Наконец-то я смог без потерь обновить ядро, до этого приходилось сидеть на древнем 2.6.23 — с более новыми ядрами alsa-driver 1.0.15 не собирался.

Спасибо за внимание (-;

★★★
Ответ на: комментарий от ist76

Для фака оно может слишком специфично, а вот в индексе гугла пусть будет — там пока только вопросы без ответов. Неплохо бы запостить на ubuntuforums.org да на forums.gentoo.org.

theSoul ★★★
() автор топика

ох. надо б на моей аудиджи испытать, а то там тоже самое, звук вроде есть, но похоже только на цифровой выход.

iSage ★★★★
()
Ответ на: комментарий от iSage

Этот способ подойдёт только для встроенных карточек на базе Intel HDA. Прога hda-verb предназначена для работы c HDA-кодеком напрямую. А для Аудиджи, если мне не изменяет амнезия, предназначен драйвер emu10k1.

theSoul ★★★
() автор топика
Ответ на: комментарий от iSage

>ох. надо б на моей аудиджи испытать, а то там тоже самое, звук вроде есть, но похоже только на цифровой выход.

AudigySE? Тогда запускай альтернативную ОСь и переключи режим digital/analog, должно после этого все заработать в лялеге.

linux4ever
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.