![SMBus/IPMI/GenericSerialBus写入需要长度为66的缓冲区,发现长度为32](https://linux22.com/image/127058/SMBus%2FIPMI%2FGenericSerialBus%E5%86%99%E5%85%A5%E9%9C%80%E8%A6%81%E9%95%BF%E5%BA%A6%E4%B8%BA66%E7%9A%84%E7%BC%93%E5%86%B2%E5%8C%BA%EF%BC%8C%E5%8F%91%E7%8E%B0%E9%95%BF%E5%BA%A6%E4%B8%BA32.png)
今天,我的基于 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/sdb和SD/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
然后重新启动。