我的笔记本电脑在休眠时遇到奇怪的行为,我想假装我正在运行最新版本的 Windows,看看这是否有帮助。
微软的如何使用 _OSI 识别 ACPI 中的 Windows 版本
指的是_OSI
我假设映射到内核命令行acpi_osi
。
然而基于内核文档,acpi_os_name
提到了欺骗:
acpi_os_name= [HW,ACPI] Tell ACPI BIOS the name of the OS
Format: To spoof as Windows 98: ="Microsoft Windows"
奇怪的是,这个 gentoo 页面不是说要修改acpi_os_name
,而是acpi_osi
说要冒充Windows。
内核文档说这acpi_osi
是针对受支持的操作系统的:
acpi_osi= [HW,ACPI] Modify list of supported OS interface strings
[...]
acpi_osi=!* # remove all strings
acpi_osi=! # disable all built-in OS vendor strings
文档似乎很少,对我来说提出了这些问题:
两者之间有什么区别/相互作用?
1.1 一个是否会凌驾于另一个之上?
如果我设置了
acpi_os_name
,我是否也应该将其添加acpi_osi
为“受支持”的操作系统?acpi_osi=!
在设置另一个值之前我应该禁用所有 with 吗?禁用和删除字符串有什么区别?是否在重新启动后仍然存在?
有没有办法找出 ACPI/UEFI 支持或期望的值是什么?
答案1
5)的部分答案
列出来自 ACPI 的匹配字符串Windows
:
(cd /tmp && mkdir acpi && cd acpi && sudo acpidump -b && for i in *; do echo $i:; strings -a $i | grep -i windows; done)
我的输出是:
[...]
dsdt.dat:
Windows 2001
Windows 2001 SP1
Windows 2001 SP2
Windows 2001.1
Windows 2006
Windows 2009
Windows 2012
Windows 2013
Windows 2015
[...]
ssdt9.dat:
Windows 2013
我不知道为什么ssdt9
只包含Windows 2013
.