问题标签 [dsdt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 如何破译此 ACPI 源语言代码?
我使用这个 .NET 程序在 .NET上进行 Windows 注册表的二进制转储HKLM/Hardware/ACPI/DSDT
。
然后,在上面运行微软的ASL 编译器,我可以得到这个ACPI 源语言:
我只懂点点滴滴。TZ指的是专用于热区的范围(我认为) 。
通过阅读ACPI Spec,我看到 _HOT 和 _CRT 是与温度阈值相关的 OSPM 对象。
_HOT 对象声明了 OSPM 可以选择将系统转换为 S4 睡眠状态的临界温度(如果支持);_CRT 对象声明了 OSPM 必须执行严重关闭的临界温度。
因此,我认为 DSDT 的片段与根据热区 0 中感应到的温度来操纵笔记本电脑风扇速度有关。基于此,我猜测FSTL
上面是 Fan-Set-Level 或类似的东西, 和FMAX
和FMIN
分别是 Fan-Max-Speed 和 -Min-Speed。我认为C2K
是一个转换为开尔文的函数。除此之外,我只是根据猜测进行猜测。
编辑:经过进一步审查,_PSL
是被动列表(根据 ACPI 规范),它返回被动温度控制设备的列表。在风扇被认为是“主动”温度控制的情况下,“被动”温度控制的一个例子是降低 CPU 的电压或速度。所以我不确定这部分是否控制风扇。它可以专门用于被动温度控制。
我想要做的是修改用于各种温度的笔记本电脑风扇速度。在某些 DSDT 中,温度和风扇速度之间的映射在一个整洁的小表格中,修改映射只是更改几个数字的问题。在这个 ASL 文件中似乎没有这样的表,所以我认为必须有一些程序逻辑在做映射。
谁能帮我破译一下?
我真正想做的是让风扇在 HP G60-244dx 笔记本电脑上放松一下。即使在 CPU 空闲时它运行的声音也太大,而且……如果它像我以前的 HP nc8430 笔记本电脑一样,风扇速度设置得不必要地高。可以降低风扇速度,但保持 CPU 温度不变。
我认为为了修改风扇速度,我需要修补 DSDT,这就是我想破译上述内容的原因。
非常感谢。
可能相关:
在 Linux 中设置 ACPI 字段
bios - ACPI 命名空间中的对象目录在哪里?
我正在尝试阅读并可能编写一些ACPI 源语言。
我在我正在查看的代码中看到,将值存储到特定的语句......啊,我猜是在 ACPI 对象命名空间中的寄存器。它看起来像这样:
我想要的是SB命名空间中的命名范围和对象及其含义的目录。
当我将值存储到 中时,这意味着什么_SB_.PCI0.LPC0.BCMD
?
还有其他例子:
所以,我不想要 BCMD 的答案,我想要描述所有可用对象、它们的名称以及它们的行为或含义的参考。
我想这个目录将特定于每种特定类型的硬件。我猜,一台带有变速风扇的计算机将通过 ACPI 对象公开对它的基本控制和管理;与生物识别指纹读取器和 1394 端口类似。我猜,每组特定于制造+型号计算机的硬件功能都有自己独特的名称树。
感谢您的任何指示。
c++ - 从 Windows 中的 DSDT 调用方法 (ACPI)
我最近发现在 Windows 中修改 DSDT 表是多么美妙。我已经重新映射了一些 Fn 键来做一些其他的事情,但这些事情位于实际的 DSDT 中(比如关闭 LED,打开/关闭风扇)。
现在,我想加强游戏并从操作系统控制事物。比如,在 DSDT 中定义一些自定义方法,然后使用 Windows 中的软件,调用这些东西。这将为一个全新的可能性水平打开大门。
那么,在 Windows 下使用 C++ 来完成此操作的步骤是什么?而且,有没有可以从 DSDT 调用通用方法的应用程序?因为那太棒了。
谢谢!
assembly - 如何在自定义操作系统的程序集中关闭 acpi?
我在 virtualbox 中运行自定义操作系统,并解析了 ACPI、FACP、DSDT 等表以获取 PM1a_CNT 和 SLP_TYPa 值。这些似乎是正确的。但是,当我尝试通过以下方式关闭 ACPI 时:
什么都没发生。PM1a_CNT
是 0x4004 并且SLP_TYPa
是 0,与我在其他地方看到的其他值相比,这似乎是合理的。我还检查了 PM1b_CNT,它是零,所以我不打扰它。
virtualbox 是否存在问题或技巧来使其正常工作?
macos - DSDT 补丁中的设备 HPET 在编译“无法从此范围访问对象 (BUF0)”时返回错误
有谁知道如何摆脱这个编译错误?这是 dsdt 中的设备,我正在使用存储库中的补丁。
原始设备HPET是:
修补的那个,它抛出了那个错误。问题是这样的,我正在尝试启动 OSX,但出现 No hpet 错误。
windows - 通过嵌入式控制器或 ACPI 控制笔记本电脑风扇
我一直在尝试控制我的 Lenovo Yoga 910-13IKB 笔记本电脑(Windows 10)的风扇以避免热节流(我已经降低了 CPU 和 GPU 的电压)。为了实现这一点,我需要找到一种方法来修改控制笔记本电脑嵌入式控制器上风扇的特定寄存器。
使用RWEverything
我打开计算机上的所有 ACPI 表,提取 DSDT 表后,我发现除了 1 个似乎与风扇有关的寄存器,“CFAN”它有 1 位长,更改它没有任何效果。似乎默认关闭。
在此之后,我开始调查并进入我发现这个的 SSDT 之一:
在我发现这个之后有几行:
如您所见,似乎风扇占空比为寄存器\_SB.PCI0.LPCB.H_EC.PENV
,风扇速度为\_SB.PCI0.LPCB.H_EC.CFSP
。但是,我在每个表中查找“PENV”和“CFSP”这两个词,但找不到数字地址。(任何地方都没有定义)
因此,使用RWEverything
我能够识别与风扇同步更改的几个寄存器。
(试图发布收银机的图片,但没有足够的声誉)
我尝试修改所有这些寄存器,但没有成功。
也许还有另一种修改\_SB.PCI0.LPCB.H_EC.PENV
和\_SB.PCI0.LPCB.H_EC.CFSP
通过 ACPI 的方法,或者 Microsoft ACPI-Compliant Embedded Controller 的第三方驱动程序?
随时提出任何问题,任何帮助将不胜感激。