SMBus/IPMI/GenericSerialBus写入需要长度为66的缓冲区,发现长度为32

SMBus/IPMI/GenericSerialBus写入需要长度为66的缓冲区,发现长度为32

今天,我的基于 debian 9 的 nas 开始在启动阶段写出此错误,通过调用以下命令以红色报告相同的错误journalctl -xe

ACPI Error: SMBus/IPMI/Generic write requires Buffer of length 66, found length 32 (20160831/exfield-427)
ACPI Error: Method parse/execution failed [\SB.PMIO._PMM] (Node ffff8a71878aeaf0), AE_AML_BUFFER_LIMIT (20160831/psparse-543)
ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20160831/power_meter-338)

我有一个双重raid1(sda/sdbSD/SDD)在这个 nas 内部,是否有一个磁盘会出现故障?

我应该担心吗?是什么原因导致此错误以及如何修复它?

难道是因为我有时按下电源关闭而不是手动登录并写入而导致错误shutdown -h now

谢谢

答案1

ACPI是使用 BIOS 信息来控制硬件的子系统,主要用于电源管理、温度传感和相关问题。 SMBus 是一种简单的两线通信协议,用作访问温度传感器和其他硬件的侧通道。

因此,您的 BIOS 包含草率的 ACPI 数据,该数据为该通道上的写入操作指定了错误的缓冲区大小。_PMM似乎表明它与某些测​​量功率相关的芯片有关。这意味着它可能无法初始化某些监视某处电压电平的芯片。这通常不是问题(除非您想测量电压水平,并在出现异常情况时关闭计算机,这是您必须安装和设置的功能,并且通常仅在服务器上使用)。

您可以通过查看 ACPI 数据来调查这一点,但这需要一些专业知识。马虎的 BIOS 数据并不罕见(不幸的是),供应商在正确设置 BIOS 方面很糟糕,因为他们只使用预装的 Windows 驱动程序进行测试,即使数据有问题,这些驱动程序也可能工作。

答案2

HP的\\SB._OSC方法违反了ACPI规范。\\SB._OSC被记录为采用 8 字节参数,而 HP 固件尝试将其解释为 12 字节参数。 HP 忽略了此方法的规范,并实施了自己的方法作为处理器时钟控制规范的一部分。

如果不冒破坏符合规范的机器的风险,我们就无法解决这个问题。打印此错误实际上不会破坏任何内容。此错误表明内核无法通过调用 ACPI 方法读取 ACPI 功率计值。

考虑将acpi_power_meter内核模块列入黑名单。

modprobe -r acpi_power_meter
echo "blacklist acpi_power_meter" >> /etc/modprobe.d/hwmon.conf
echo "install acpi_power_meter /bin/false" >> /etc/modprobe.d/hwmon.conf

vi /etc/sensors3.conf

转到文件底部并添加:

chip “power_meter-acpi-0”
ignore power1

然后重新启动。

相关内容