无法设置内核模块参数

无法设置内核模块参数

我最近从 4.9 内核更新到 4.14,却发现我的扬声器不断发出嗡嗡声。我已将问题范围缩小到模块power_save的参数snd_hda_intel。启用时会发出持续的嗡嗡声,但禁用(设置为 0)时会发出静音。

modprobe.d我尝试使用 a和 kernel 参数来设置该值。问题是,该值被我系统中的某些内容覆盖/设置。

强制重新加载模块(默认关闭)或写入 0/sys/module/snd_hda_intel/parameters/power_save将暂时解决问题,直到重新启动或从挂起状态唤醒。我无法确定是什么启用了 power_save 功能。我什至尝试使用inotifywaitlsof找到罪魁祸首,但没有结果(似乎在睡眠/唤醒周期中不起作用)。

这是一台台式电脑,因此没有电池,因此没有 AC 与 BAT 模式或类似 pm-util 的模式。我使用的是 Manjaro 的 GNOME 版本,但我确信任何平台的解决方案都可能有所帮助。如果有帮助的话,音频是板载 ALC887-VD 芯片组。

任何人都可以建议我还可以看看哪里或者可能导致这种情况的原因是什么?

更新:

我注意到我的发行版附带了 TLP(类似于pm-utils),并且在 4.14 内核上 TLP 始终以电池模式启动。我的电脑没有电池,但有无线外围设备。我认为这可能是 TLP 本身的一个错误。

答案1

更改后您是否更新了 initramfs 文件/etc/modprobe.d/?声音驱动程序模块可能会提前加载,并且在安装根文件系统之前您的修改将不可用 - 此时为时已晚,因为模块已经从 initramfs 加载。

我对 Arch 不太熟悉,但看起来像mkinitcpio是更新 initramfs 文件所需的命令。

答案2

我已经确认 TLP(版本 1,0)在这里有问题。它通过扫描 的内容来检测我的两个外围设备的电池/sys/class/power_supply。由于它检测到由电池供电的设备,并且没有检测到由主电源供电的设备,因此它错误地认为系统是由电池供电的。检测环路为这里如果有人想看这个。

在内核 4.9 上,我的/sys/class/power_supply目录是空的,但在 4.14 上,它填充了我的 Logitech 无线鼠标和键盘。我猜测许多其他拥有无线外围设备的 TLP 用户也可能受到此错误的影响。不过,在大多数情况下,许多人可能甚至没有意识到他们的台式电脑正在电池模式下运行。

更新:

该问题已在 TLP 1.1 beta 中得到修复。现在它会忽略 HID 设备并且系统正确使用 AC 模式。

相关内容