今天更新了我的 Lenovo Thinkpad X1 Carbon(第 6 代)上的软件包。我没想到会发生什么,但它确实发生了。 F1 和 F4 键上的静音 LED 指示灯停止工作。
我实际上知道这个问题很快就会得到解决。我只是提出一个问题,以便我可以回答它,以防其他人正在寻找解决方案。
答案1
情况
自 10 月 22 日起,运行 Arch Linux 的 Lenovo Thinkpad X1 Carbon 于 12 月 15 日更新了其软件包。重新启动后,麦克风静音和扬声器静音键的 LED 指示灯停止工作。
调查
我通过简单地搜索“静音 LED 不工作”之类的短语开始了我的调查,但找不到任何最近的内容。我知道这一定是最近发生的,因为症状是在更新后恰好出现的。
其他按钮工作正常,Caps Lock、Fn Lock,但只有静音按钮不起作用。
寻找负责的包
我/var/log/pacman.log/
检查了已更新的软件包。虽然有很多,但除了 PulseAudio、ALSA 和 Linux 内核的更新之外,没有任何东西可以干扰我的 Thinkpad 按钮。
我决定先检查内核。将内核降级到我执行的先前版本
~ # pacman -U /var/cache/pacman/linux-4.18.16.arch1-1-x86_64.pkg.tar.xz
重新启动后灯又亮了。我现在确信问题出在 Linux 内核的更新中。
查找负责的内核版本
我现在知道内核 4.18.16 可以工作,而我知道 4.19.8 不能!
来自 Arch Linux 软件包存档 (https://archive.archlinux.org/)我下载了版本 4.19 到 4.19.8,知道内核在两者之间的某个地方发生了故障。
因为我是2016年4月18日,所以升级到4.19.4。 19.4 的工作方式与 18.16 类似,因此该错误是在 19.4 之后但 19.8 之前引入的
接下来是 19.6。这个版本也运行得很好,所以我现在知道这个 bug 是在 19.7 中引入的。再次升级后,果然,4.19.7 是第一个发生这种“回归”(他们称之为)的版本。
找到负责的提交
由于 Linux 是开源的,您可以在以下位置查找每个 Linux 版本的变更日志:https://kernel.org
以下是 4.19.7 版本的变更日志:https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.9
警告,它非常大!为了找到问题开始的地方的一些迹象,我决定在文件中按 CTRL+F 一些关键字。首先我尝试了“led”,但没有任何看起来有希望的提交。然后我搜索“静音”,但再次没有找到。
在使用其他几个关键字之后,我尝试了“carbon”,然后发现了一个名为:
dcd51305cd41e77bf775992e6d6cee52f83426b7
ALSA: hda/realtek - fix the pop noise on headphone for lenovo laptops
我的第一个想法是“哦,太棒了,他们解决了这个问题!”,但由于这也是唯一提到联想的提交,而且这是回归内核的变更日志,所以我最好的选择是进行调查。
值得庆幸的是,这个提交包含了一个指向 launchpad.net 的 BugLink:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1805079
我想我可以问开发商他们的 LED 灯是否也有问题。但我什至不需要问,因为另一个用户已经描述了我遇到的问题:(关联)
I'm on Lenovo ThinkPad X1 Carbon 6th, model 20KH006JGE.
After upgrading to Linux 4.19.7, the audio mute and
microphone mute LEDs (on F1 and F4 keys) stopped working.
提交的创建者已经做出了回应,甚至提供了解决方案!很棒的东西,但现在怎么办?我不想编译自己的内核...哎呀!我需要知道此修复何时实施。
查找修复提交
幸运的是,整个 Linux 内核都在 GitHub 上!https://github.com/torvalds/linux
我深入研究了提交历史记录,然后按 CTRL+F 键选择“LED”,果然,第4页我找到了修复提交!(关联)
6ba189c5c1a4bda70dc1e4826c58b0246068bb8d
ALSA: hda/realtek - Fix the mute LED regresion on Lenovo X1 Carbon
太棒了,看来这个提交已经发布并经过审核了,那么它现在在哪里呢?修复程序什么时候发布?
了解修复程序何时发布
因此 Linux 的发行版由 Greg Kroah-Hartman 维护。您可能已经在我们之前查看的变更日志顶部看到了他的名字。每隔几天,他就会从存储库中收集有用的提交,并将它们捆绑到一个新的稳定版本中。
您可以在 kernel.org 的稳定邮件列表中跟踪发布周期的进度和讨论。如果您不想订阅,而只是阅读,您可以在这里找到存档:https://www.spinics.net/lists/stable/
在那里,我只是再次拿出我值得信赖的 CTRL+F 并搜索“LED”,是的,果然:[PATCH 4.19 140/142] 就是我正在寻找的提交。
Greg 已经包含了我们想要的提交,目前正在审查它的发布。几天后我就结束了讨论,随后发布了 4.19.10。
最后:解决方案
要解决此问题,请将内核降级至最高版本 4.19.6。
您也可以等待几天,因为 4.19.10 版本将修复回归问题,预计将于 12 月 16 日或 17 日发布。
我希望我的旅程读起来有点有趣,并且可以帮助您解决将来的问题。我了解了变更日志、提交、存储库、发布、邮件列表等等,所以我不得不分享。
亲切的问候,祝你玩得开心!
答案2
这也发生在我身上。我所做的是首先关掉灯:
sudo vim /sys/class/leds/platform::mute/brightness
并将值更改为0
。
然后按键F1再次起作用,我可以用它再次打开和关闭扬声器。