几天前,我的联想 Thinkpad T410(型号:2537A11)上的扬声器突然随机停止工作。每次我观看视频或收听音乐文件时都会发生此错误。声音突然停止。目前,无论我做什么都无法发出任何声音。我在这台笔记本电脑上使用 Debian GNU/Linux,似乎没有其他问题(风扇工作正常,没有异常发热(保持在约 40°C 左右),没有其他明显的错误或问题)。
以下是不错的节目有人向我指出:
martin@martin:~/Downloads$ sudo python run.py --monitor
Using temporary directory: /dev/shm/hda-analyzer
You may remove this directory when finished or if you like to
download the most recent copy of hda-analyzer tool.
Downloading file hda_analyzer.py
Downloading file hda_guilib.py
Downloading file hda_codec.py
Downloading file hda_proc.py
Downloading file hda_graph.py
Downloading file hda_mixer.py
Downloaded all files, executing hda_analyzer.py
Watching 1 cards
======================================
声音正常工作然后停止并出现以下行:
Diff for codec 0/0 (0x14f15069):
---
+++
@@ -164,17 +164,17 @@
Power: setting=D0, actual=D0
Node 0x1f [Pin Complex] wcaps 0x400501: Stereo
Pincap 0x00000010: OUT
Pin Default 0x901701f0: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x40: OUT
- Power: setting=D0, actual=D0
+ Power: setting=D3, actual=D3
Connection: 2
0x10* 0x11
Node 0x20 [Pin Complex] wcaps 0x400781: Stereo Digital
Pincap 0x00000010: OUT
Pin Default 0x40f001f0: [N/A] Other at Ext N/A
Conn = Unknown, Color = Unknown
DefAssociation = 0xf, Sequence = 0x0
Misc = NO_PRESENCE
现在 dmesg 输出中也有一个错误
hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.
我将 bdl_pos_adj 更改为各种数字(-1、0、64、1024),但要么完全没有变化,要么 dmesg 报告调整太大。我想知道这个 bdl_pos_adj 是否是导致错误的真正原因。
这是我的硬件信息由 alsa-info.sh 网站提供。
好的,我做了一些认真的测试,甚至安装了 Windows,现在我正式得出结论,这是我的笔记本电脑扬声器的硬件相关问题。
原因:
- 这个错误发生在我安装的 Debian Linux、Ubuntu Live 发行版和 Windows XP 中
- 所有操作系统中均未出现任何错误消息。声音一直在响,我什么也听不到。
- 我测试了不同的设置,包括 OSS、ALSA 和上面的 pulseaudio 服务器
- 如果我使用新的 USB 耳机,我可以一直听到声音,而不会突然静音。所以很明显,虽然难以置信,但我的笔记本电脑扬声器有问题(从未听说过类似情况)。
我会将赏金奖励给任何能为我提供好的教程或更换 T410 扬声器的程序的人(我仍有保修。这台笔记本电脑是在德国购买的,但现在我在丹麦)。或者奖励给能向我解释 hda-analyzer 的输出(上面的大日志)的人。
答案1
这是硬件问题,设计缺陷。据说联想改变了 T420 的风扇设计。
联想已经意识到了这个问题,他们更换了主板,没有任何问题。我正准备购买第三块主板。第一块主板从一开始就存在缺陷。前 6 个月,我几乎尝试了所有与软件相关的操作。然后我与联想经销商进行了交谈,他们说“是的,我们知道了。”第二块主板工作了大约 6 个月。
答案2
在我的情况下,每次睡眠/关机后声音都会再次出现。之后我尝试
$cat /sys/module/snd_hda_intel/parameters/power_save
0
于是我尝试了一下。
echo 1 > /sys/module/snd_hda_intel/parameters/power_savelaptop.
现在,当我停止音频源(youtube、amarok 等)时,声音会恢复一会儿。
我在 Bugzilla 上开了一个票,但还没有收到答复。那里有我运行的测试的更详细信息。https://bugzilla.redhat.com/show_bug.cgi?id=1023830。