首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >acpi_os_name和acpi_osi语义

acpi_os_name和acpi_osi语义
EN

Unix & Linux用户
提问于 2020-09-18 06:06:02
回答 1查看 1.1K关注 0票数 0

我在笔记本电脑上冬眠,我正经历着奇怪的行为,我想假装我正在运行一个最新版本的Windows,看看这是否有帮助。

微软的如何在ACPI中识别Windows版本_OSI指的是_OSI,我假设它映射到内核命令行acpi_osi

然而,基于内核文档,提到了关于欺骗的acpi_os_name

代码语言:javascript
复制
    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。

内核doco说,acpi_osi用于支持的OSes:

代码语言:javascript
复制
    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.1是否覆盖另一个?
  2. 如果我设置了acpi_os_name,是否也应该将它作为“支持”的操作系统添加到acpi_osi中?
  3. 在设置另一个值之前,我应该禁用所有acpi_osi=!吗?
  4. 禁用和删除字符串有什么区别?是否在重新启动时持久化?
  5. 有没有办法找出ACPI/UEFI支持或期望的值是什么?
EN

回答 1

Unix & Linux用户

发布于 2020-09-18 06:26:23

部分回答5)

列出来自ACPI的与Windows匹配的字符串:

代码语言:javascript
复制
(cd /tmp && mkdir acpi && cd acpi && sudo acpidump -b && for i in *; do echo $i:; strings -a $i | grep -i windows; done)

我的产出是:

代码语言:javascript
复制
[...]
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

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/609985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档