考虑到 Linux 不支持 _OSI("Linux") ACPI 对象,在 BIOS 中使用它的任何依赖方式

Considering Linux is not supporting _OSI("Linux") ACPI object, any reliance way to use it in BIOS

考虑到 Linux 不支持 _OSI("Linux") ACPI 对象,在 BIOS 中使用它的任何依赖方式使得这个 ACPI _OS我在 Linux 的所有变体中工作。 acpi_osi 必须设置为内核参数,否则如果在 BIOS 中用于决定某些 IO 端口编程或任何其他 OS 特定检查 asl,它不会生效。

参考以下link: https://www.kernel.org/doc/html/latest/firmware-guide/acpi/osi.html

正如 link 所述,Linux 不支持 _OSI("Linux"),因为许多 BIOS 制造商在实施它时表现不佳,并且未能正确测试他们的环境。因此,您应该以适用于任何 OS 的方式编写 BIOS 代码。这意味着您的 BIOS 不仅可以在 Windows 和 Linux 上工作,而且可以在其他 OSes 上工作,例如 FreeBSD、NetBSD 和 OpenBSD。

如果发现您的系统存在错误,请尽可能确保您的 BIOS 在固件中处理它,而不是将其卸载到您的 Windows 驱动程序。如果这不可能,您可以使用 link 中概述的机制来使用 OEM 特定的挂钩,前提是您向内核发送补丁。

Linux 将有意避免尝试在固件中检测到,因此您最好不要尝试这样做。请注意,由于 Linux 往往会变化得相当快,因此尝试假设所有版本的工作方式可能不会很好。