问题标签 [acpi]

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.

0 投票
0 回答
151 浏览

linux - time_in_state 和 i7z 工具的平均频率之间的差异

我正在使用 acpi_cpufreq 驱动程序。请帮助我理解为什么从 time_in_state 计算的平均频率为:

当涡轮增压开启时,从 i7z 工具或通过读取 msr 寄存器收集的平均频率在边界不相等?

我知道 time_in_state 中的第一行频率代表涡轮模式,在我的例子中是 1996000。

我在 CPU 上运行平衡负载,查看 CPU 使用率 ~70-80%。当我按 time_in_state 计算平均频率时,我得到 1899249.88(并且我在 time_in_state 的第一行计数器处没有看到任何增量),但是当我读取 msr 或通过 i7z 工具观看时,我看到 2129067.50。

根据 i7z CPU 已经处于 turbo 模式但 time_in_state 显示不...

有人可以解释一下吗?

0 投票
1 回答
645 浏览

windows - 如何注册 acpi 事件通知?(AcpiInterfaces.RegisterForDeviceNotifications)

现在我想在我的 acpi 驱动程序中添加该功能。功能是:获取 BIOS 通知。我搜索一些文档,然后编写代码

CompletionRoutine 返回 STATUS_SUCCESS,但接口仍然是 Empty...

Parameters.QueryInterface.Interface 没有填写...有人可以帮我吗???MSDN 关于 IRP_MN_QUERY_INTERFACE 在此处输入链接描述 在此处 输入图像描述

0 投票
1 回答
137 浏览

windows - 在 winpe 启动时取消 acpi 兼容性检查

我的任务是在嵌入式系统上加载我与操作系统分开构建的程序(它对系统文件执行一组操作,因此必须在操作系统启动之前完成)。是的,我知道了...

我选择将它放在一个干净的 winpe.wim 中(从 Windows AIK 获得)。在现代 BIOS 计算机上一切正常,但是当我在嵌入式系统上尝试时,我卡在 ACPI 引导检查中:该系统上的 BIOS 不是 acpi(标准 hal)

限制:更换 BIOS / 获取其他 winpe 目前不是选项。

我可以在我得到的 winpe 中以某种方式禁用 acpi 兼容性检查吗?也许通过bcdedit?非常感谢任何能帮助我解开这个谜题的建议。

还 - 引导是从可引导 CD 执行的

0 投票
2 回答
404 浏览

operating-system - ACPI 中的“硬件寄存器集”是什么意思?

我正在阅读ACPI 介绍文档。它说:

ACPI 首先可以理解为一个独立于架构的电源管理和配置框架,它在主机操作系统内形成一个子系统。该框架建立了一个硬件寄存器集来定义电源状态(睡眠、休眠、唤醒等)。硬件寄存器集可以适应专用硬件和通用硬件上的操作。

我不太了解register set的粗体部分。

我目前的理解是,平台上的所有设备都有自己的寄存器以提供可控性。ACPI 是否收集所有设备的所有寄存器并使用这些寄存器的状态来描述/控制平台?换句话说,ACPI 将平台视为一组寄存器。

0 投票
0 回答
311 浏览

firmware - 如何确定 ACPI“控制方法”的语义?

我是 ACPI 技术的新手。到目前为止,我了解 ACPI 定义了一些control methods可用于操作主板上的设备的内容。

我尝试acpiexec.exe了 ACPICA 的。并转储了许多控制方法如下:

但是我不知道每种方法的语义,例如:

  • 他们需要什么参数?

  • 他们采取什么行动?

我搜索了ACPI 6.0 sepc。但似乎没有我预期的所有控制方法的完整列表。任何人都可以解释一下吗?谢谢。

加 1

似乎 ACPI 6.0 规范确实涵盖了一些。我现在会在里面搜索。

0 投票
1 回答
457 浏览

assembly - 如何在自定义操作系统的程序集中关闭 acpi?

我在 virtualbox 中运行自定义操作系统,并解析了 ACPI、FACP、DSDT 等表以获取 PM1a_CNT 和 SLP_TYPa 值。这些似乎是正确的。但是,当我尝试通过以下方式关闭 ACPI 时:

什么都没发生。PM1a_CNT是 0x4004 并且SLP_TYPa是 0,与我在其他地方看到的其他值相比,这似乎是合理的。我还检查了 PM1b_CNT,它是零,所以我不打扰它。

virtualbox 是否存在问题或技巧来使其正常工作?

0 投票
1 回答
347 浏览

c - 内核环境:RSDP 指向无效的 RSDT

我目前正在开发一个简单的内核,我想与 ACPI 表交互。

但是,我的代码似乎只能在虚拟机中工作,即 Bochs,而在我迄今为止尝试过的所有真实硬件(从 2003 年到 2011 年的硬件)上,RSDP 指向明显无效的根系统描述符表。

这是来自 Bochs 的屏幕:注意所有描述符表都已找到。

在此处输入图像描述

以下是一个公认的相当老的 AMD Athlon64 平台,但是 BIOS 是 2003 年的,所以就我而言,它应该完全支持 v1 ACPI 修订版。

在此处输入图像描述

从 2010 年到 2011 年,我还尝试在笔记本电脑上运行我的检测程序,两者都给了我一个有效的 Root 系统描述符指针,但该指针指向空内存、内存填充0xFF或只是垃圾。


第一个也是显而易见的可能性是未初始化的寄存器,因为 Bochs 在上电时会将所有寄存器初始化为零,而对于真实硬件而言并非总是如此。但是,我已经检查了足够多的时间来保证在这些论坛上发布问题。

我还发现了大约 2002 年的一些旧的 Linux 内核邮件列表消息,其中海报的北桥与图像中运行的 PC 相似。它们与上面的 PC 具有相同的 RSDT 地址,这进一步向我保证 RSDP 没有错。

校验和也是有效的(低 eax (AX) 寄存器中的总和为零),读者可以另外检查。

我还怀疑,也许我打印内存区域的例程使用未初始化的值,并且由于 Bochs 初始化寄存器的倾向在那里工作,而不是在硬件上 - 然而,这意味着可以观察到不稳定的、不可重现的行为,但在我测试 RSDP 指向的内存区域的每台机器始终是相同的垃圾。


由于我什至不确定在哪里寻找问题,我将应读者的要求填写其他详细信息或源代码 - 简单地将所有内容转储到这里会很不方便,并且会使阅读变得不舒服。

内核入口点:

0 投票
0 回答
427 浏览

linux-device-driver - 如何覆盖 I2C 调整值的 ACPI 条目并使用自定义 I2C 调整值?

目前,I2C 调整值 ( HCNT, LCNT& SDA_HOLD_TIME) 在 DSDT 中作为 ACPI 条目传递,静态时序如下:

但是我想为我的平台板使用一些自定义 I2C 调整值,因此希望我的驱动程序覆盖这些来自 ACPI 条目的值。如何覆盖这些 ACPI 条目并使用怪癖,以便驱动程序可以使用自定义 I2C 调整值?提前致谢!

0 投票
0 回答
216 浏览

linux - 是否有 Buildroot 选项可以防止 ACPI 报告的冲突导致 i801_smbus 驱动程序无法加载?

当我的计算机模块 (Adlink comExpressBT) 启动 Linux 4.4.3 时,我收到以下错误,该错误对应于 PnP 故障,阻止了 SMBus 驱动程序加载:(仅供参考 - SMBus 用于 I2C 接口)

我从 Buildroot 中删除了 ACPI(和 acpid),然后加载了 SMBus 驱动程序。但是,对于我们正在使用的映射 RAM 的定制 PCIe FPGA,PnP 失败了。未正确读取 MSI 功能,导致以下情况:

尽管区域地址看起来不错,但无法正确读取 MSI 功能:(来自“lspci -vvv”)

看来我必须在某种程度上启用 ACPI 才能使 PnP-PCI 发现正常工作。有任何想法吗?提前致谢。——罗斯·R。

0 投票
1 回答
2149 浏览

linux - 如何在 CentOS 7 下关闭屏幕消隐/睡眠模式?

几分钟后,我新安装的最小 CentOS 安装黑屏并断开 WiFi。当我按下任何键时,系统会重新唤醒。我怀疑这与屏幕消隐和/或睡眠模式的设置有关。

我在网上找到了一些提示,但其中大部分都围绕窗口管理器设置(我没有安装窗口管理器)。一个似乎做某事的人,我已经尝试过:

此命令不会产生任何输出,但也不能解决问题:系统会在一段时间后保持黑屏。

安装后,iwconfig睡眠模式设备设置不可用NetworkManager