Определите элемент, запрашивающий звуковой чип спать

С нескольких месяцев звук внезапно останавливается на моем ноутбуке через какое-то время. Мой компьютер является Спутником Toshiba L755 со звуковым чипом Conexant CX20585, под управлением Ubuntu 17.04.

Я узнал, что это вызывается звуковым чипом, помещаемым в сон, как объяснено здесь.

Когда звук работает, читая /proc/asound/card0/codec\#0 шоу:

Codec: Conexant CX20585
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x14f15069
Subsystem Id: 0x1179fc50
Revision Id: 0x100302
[...]
Node 0x1f [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x92170110: [Fixed] Speaker at Int Front
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Power states:  D0 D1 D2 D3 D3cold EPSS
  Power: setting=D0, actual=D0

И когда звук не работает, он показывает:

Node 0x1f [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00000010: OUT
  Pin Default 0x92170110: [Fixed] Speaker at Int Front
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Power states:  D0 D1 D2 D3 D3cold EPSS
  Power: setting=D3, actual=D3

Узел 0x1f устанавливаемый в состоянии электропитания D3 является поэтому проблемой. Как я узнал в предыдущей ссылке, я могу отложить ее к состоянию электропитания D0 с командой sudo hda-verb /dev/snd/hwC0D0 0x1f SET_POWER_STATE 0. Звук затем обратно, но только в течение нескольких минут.

Отслеживание hda событий с echo 1 > /sys/kernel/debug/tracing/events/hda/enable шоу, которые никакое hda событие не отправляется аудиодрайвером, когда звук сокращает:

cat /sys/kernel/debug/tracing/trace 
# tracer: nop
#
# entries-in-buffer/entries-written: 20/20   #P:4
#
#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
 alsa-sink-CX205-2584  [001] d...   240.469929: snd_hdac_stream_stop: stream_tag: 5
        hda-verb-3617  [003] ....   257.329599: hda_send_cmd: [0000:00:1b.0:0] val=0x01f70500
        hda-verb-3617  [003] ....   257.329672: hda_get_response: [0000:00:1b.0:0] val=0x00000000
 alsa-sink-CX205-2584  [001] ....   279.844834: hda_send_cmd: [0000:00:1b.0:0] val=0x010a0000
 alsa-sink-CX205-2584  [001] ....   279.844888: hda_get_response: [0000:00:1b.0:0] val=0x00004011
 alsa-sink-CX205-2584  [001] ....   279.855672: hda_send_cmd: [0000:00:1b.0:0] val=0x01020011
 alsa-sink-CX205-2584  [001] ....   279.855722: hda_get_response: [0000:00:1b.0:0] val=0x00000000
 alsa-sink-CX205-2584  [001] ....   279.855725: hda_send_cmd: [0000:00:1b.0:0] val=0x011a0000
 alsa-sink-CX205-2584  [001] ....   279.855758: hda_get_response: [0000:00:1b.0:0] val=0x00004011
 alsa-sink-CX205-2584  [001] ....   279.867648: hda_send_cmd: [0000:00:1b.0:0] val=0x01120011
 alsa-sink-CX205-2584  [001] ....   279.867701: hda_get_response: [0000:00:1b.0:0] val=0x00000000
 alsa-sink-CX205-2584  [001] d...   279.867829: snd_hdac_stream_start: stream_tag: 5
 alsa-sink-CX205-2584  [001] d...   297.821668: snd_hdac_stream_stop: stream_tag: 5
[Set sound on with hda-verb]
        hda-verb-3649  [002] ....   300.602038: hda_send_cmd: [0000:00:1b.0:0] val=0x01f70500
        hda-verb-3649  [002] ....   300.602087: hda_get_response: [0000:00:1b.0:0] val=0x00000000
[Start/stop a Youtube video]
 alsa-sink-CX205-2584  [001] d...   312.264676: snd_hdac_stream_start: stream_tag: 5
 alsa-sink-CX205-2584  [001] d...   376.447668: snd_hdac_stream_stop: stream_tag: 5
 alsa-sink-CX205-2584  [001] d...   389.212522: snd_hdac_stream_start: stream_tag: 5
 alsa-sink-CX205-2584  [001] d...   405.072648: snd_hdac_stream_stop: stream_tag: 5
 alsa-sink-CX205-2584  [001] d...   410.938035: snd_hdac_stream_start: stream_tag: 5
[Sound cuts]

Я пытался загрузиться с опцией ядра "acpi=off" чтобы проверить, имел ли ACPI роль в этой проблеме, поскольку эта ошибка предположила, что это могло бы быть вызвано сверхагрессивным управлением питанием. Но звук все еще сокращает через какое-то время без ACPI.

Звуковой чип поэтому помещается для сна другим элементом, который я не могу найти, только путем изменения состояния электропитания контакта. Какая-либо идея, как я мог определить его? Это мог быть BIOS?

3
задан 7 May 2017 в 22:36

1 ответ

Это на самом деле, потому что звуковой чип перегревается.

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

существует программное обеспечение, вводят по абсолютному адресу для микросхемы, которая задерживает перегрев. Я поместил команду в Спутник Toshiba своей сестры /etc/rc.local. Я должен буду связаться с нею для получения команды, поскольку я не вспоминаю это из памяти. Я обновлю этот ответ, как только у меня есть детали.

Обновление:

# turn on power management for audio codec
# to solve loosing sound after a few minutes
echo "1" > /sys/module/snd_hda_intel/parameters/power_save
1
ответ дан 1 December 2019 в 17:30

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

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