以下 dmesg 输出是什么意思?

Ank*_*kit 5 firmware kernel dmesg

我不确定以下是什么意思:-

[    0.652039] ACPI: Added _OSI(Module Device)
[    0.652044] ACPI: Added _OSI(Processor Device)
[    0.652049] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.652054] ACPI: Added _OSI(Processor Aggregator Device)
[    0.656286] ACPI: EC: Look up EC in DSDT
[    0.660361] ACPI: Executed 1 blocks of module-level executable AML code
**[    0.720310] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored**
[    0.721539] ACPI: SSDT 000000009ce70798 00727 (v01  PmRef  Cpu0Cst 00003001 INTL 20100121)
[    0.722623] ACPI: Dynamic OEM Table Load:
[    0.722630] ACPI: SSDT           (null) 00727 (v01  PmRef  Cpu0Cst 00003001 INTL 20100121)
[    0.752832] ACPI: SSDT 000000009ce71a98 00303 (v01  PmRef    ApIst 00003000 INTL 20100121)
Run Code Online (Sandbox Code Playgroud)

这是什么bug?此错误是否会影响我的系统性能。

Lek*_*eyn 9

ACPI 表(DSDT、SSDT)由 BIOS 提供。这些 ACPI 表允许操作系统通过抽象层 (ACPI) 控制硬件。制造商可以使用 ACPI_OSI方法(操作系统接口)来查询操作系统的某些功能。

通过这种机制,ACPI 可以检测操作系统(和版本)并在必要时应用一些怪癖。这对于 Windows 机器特别有用,因为旧的 Windows 版本可能不支持机器的新功能。然而,在 Linux 中,哲学是如果 Linux 内核不支持某个功能,则 BIOS 制造商不应进行排除。相反,社区(内核开发人员)必须添加代码以支持来自较新机器的这些功能。

过去,一些 BIOS 制造商在检测到 Linux 系统时会删除功能。虽然在 BIOS 发布时可能不支持某个功能,但将来可能会支持。因此,将忽略对“Linux”的查询。


Lui*_*ado 9

据我所知,这意味着无法识别来自与 ACPI 相关的 Bios/Firmware 的查询(如果您运行的是笔记本电脑,则意味着电池,如果您运行的是台式机,则意味着 UPS 或类似设备)。

Ubuntu 在那里所做的是忽略查询以免引起问题。因此,您可能会看到的一些内容是:

  1. Ubuntu 电池状态未检测到电池何时断开连接。向您显示仍然相同的“电池已连接”符号。

  2. 电池充电通知未正确更新。

这并不意味着电池不能正确充电,或者它没有正确检测电池的状态,只是意味着在桌面中您将无法正确看到它。这甚至并不意味着它不会正确显示给您。

对于性能相关的东西,您不会遇到任何性能问题。它将像往常一样运行。

基本上这来自 BIOS,首先假设操作系统是 Windows,然后对其进行查询以确认一些信息。

无论如何不要担心,Ubuntu 和任何其他 Linux 发行版都可以有效地告诉 BIOS 它实际上是 Windows 并从中获取正确的查询。Dmesg 和启动系统只是在那里发布该消息,以通知您有关 BIOS 向操作系统询问某些内容(请记住,它假设是 Windows)和 Linux 试图伪造它,因此 BIOS 发送完整的查询。这就是为什么 BIOS 制造商不应假设他们将使用的唯一硬件是 Windows 的原因。