解决一项ACPI错误:SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32

在部分惠普服务器上,若执行dmesg,会反复看到下述错误:

ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20140424/exfield-420)
ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMM] (Node ffff88007d0480b8), AE_AML_BUFFER_LIMIT (20140424/psparse-536)
ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20140424/power_meter-338)

这个错误是由于程序lm-sensors尝试读取功率传感器(power meter sensor)失败引起的。惠普的硬件会忽略该读取请求,从而导致上述错误。这个错误的解决方法有三个:

  1. 假装没看到错误——这完全是安全的, 就是有点让人不爽
  2. 等待lm-sensor或者惠普固件更新——估计要等到下个世纪了
  3. 让lm-sensor跳过读取功率传感器的数据

下面只讲讲方法三。首先尝试执行sensors,看看该错误能否复现。如果执行sensors的返回值包含如下结果(数据读取失败):

power_meter-acpi-0
Adapter: ACPI interface
power1: 0.00 W (interval = 300.00 s)

就再试试dmesg,如果错误复现。那就说明确实是lm-sensors导致的问题。要解决该问题,编辑文件:/etc/sensors3.conf

在该文件的末尾加上:

chip “power_meter-acpi-0”
ignore power1

然后保存退出(如果你的功率传感器模块名不同,需要自行修改为对应的名称)。

尝试重新执行sensors,错误解(wu)决(shi)。

本文是对该文的编译:https://www.serveradminblog.com/2015/05/kernel-acpi-error-smbusipmigenericserialbus/(只有英文版)

发表评论

电子邮件地址不会被公开。 必填项已用*标注