LINUX.ORG.RU

[alsa] snd-hda-intel model=?

 


0

0

Ноутбук Acer Extensa 5220, звуковая карта «product: 82801H (ICH8 Family) HD Audio Controller».
В snd-hda-intel есть специальный параметр «model», который оно по умолчанию и определяет как «model=acer».

Однако как к model=acer, так и к другим режимам есть нарекания:

model=acer:
Pros
почти всё хорошо, но
Cons
Одна регулировка громкости, неотключаемый port detection.
Нельзя включить одновременно наушники и колонки.
При вытыкании наушников внезапно включаются колонки => hate!


model=quanta-il1
Pros
Нормально играет, можно индивидуально регулировать.
Cons
Некоторые ненужные регуляторы,
Headphones означают колоки, Speaker означают наушники.
Запись может вестись только со встроенного микрофона.

model=3stack
Pros
Можно выбирать откуда вести запись
Cons
Наушники играют тихо.
Некоторые ненужные регуляторы,
Headphones означают колоки, Speaker означают наушники.


model=test
Pros
Все режимы доступны.
Можно переназначить порты микрофона и line-in под
дополнительный выводы (правда, тихие)
Cons
Максимум регуляторов и переключателей.
Нету регулятора «Master», неудобно контролировать
громкость с клавиатуры.


В данный момент испольую model=quanta-il1, но переключаю в model=3stack, когда нужно что-либо записать.


Вопрос: следует ли мне попытаться сделать свою модель, как в model=acer, но без port detection, или это rocket science и без знания дела там не разобраться?
Если да, следует ли посылыть куда-либо патчи?


Опечатки

s/дополнительный выводы/дополнительне выводы/ s/колоки/колонки/ s/означают/означает/

vi0
() автор топика

А если с первым вариантом сделать alsamixer -c0?

У меня на рабочем компьютере по-умолчанию 1 регулятор, а с указанием устройства - все.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Sekai

Если указать model=acer-aspire-6530g или какую-нибуть несуществующую model=qqq, то результат получается наиболее близким к требуемому (запись есть, колонки и наушники можно регулировать отдельно, но колонки принудительно отключаются, когда обнаружены наушники).

vi0
() автор топика
Ответ на: комментарий от Eddy_Em

Только 1 регулятор у меня был на какой-то старой версии ядра.

Наушники тогда вообще не играли, пока не укажешь явно «model=acer».

Помню, запустил скрипт, который перебирает все модели и играет звук, и сидел в наушниках. Правильную модель прочувствовал хорошо, запомнилось (громкость была 100%).

Одно время ещё нужно было переключать драйвера между версией с наушниками и версией, в которой внутренний модем работает (теперь он вообще в Linux не работает).

vi0
() автор топика

У HD Audio c каждым из портов вода-вывода (микрофон, наушники, внутренний динамик, etc) связан Pin-регистр, который описывает его функциональность. doc гуглится на негрософтовском сайте по «hd audio pin config». выглядит это примерно так:

 
Node 0x15 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0001003c: IN OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x0221101f: [Jack] HP Out at Ext Front
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=04, enabled=1
  Connection: 1
     0x10
в данном случае 0x40018d - конфигурация пина 0x15 за port detection отвечает один из битов регистра (в негрософтовском Doc-файле все подробно описано). для анализа всего этого есть http://www.alsa-project.org/main/index.php/HDA_Analyzer, позволяет менять роутинг портов, играть с gpio карты. подкорректировать настройки можно через правку исходноков альсы, однако код там хитрозакрученный. в текущих версиях альсы сделали поддержку early patch'ей, можно написать текстовый файлик с настройками для конкретной модели, кинуть его в /lib/firmware, значения регистров будут записываться при загрузке модуля, как это делается смотрите в документации HD Audio в исходниках ядра

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