问题标签 [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 投票
1 回答
811 浏览

linux-kernel - i2c 时钟频率值如何从 BIOS 传递到驱动程序?

我的i2c clock-frequency价值观来自 BIOS。

我已经提取了DSDTi2c clock-frequency字段如下:

但是没有提到不同模式(如 400k、1M 等)的 i2c 时钟频率值。这些值在哪里定义?它是如何从 BIOS 传递到驱动程序的?

0 投票
0 回答
990 浏览

windows - 如何使用 WinDBG 调试 AML (ACPI)?

我安装了 Windows 工具包和调试工具。我的电脑上还安装了 ACPI.sys 驱动程序。我启动 WinDGB.exe,打开可执行文件并输入 windbg.exe 命令

windbg.exe 说

问题:如何调试 AML 代码?我应该怎么做才能让它工作?可能是某些文件没有安装?或者一些偏好没有完成?还是不使用 windbg 进行 AML 调试?

0 投票
0 回答
444 浏览

linux - 将 Linux 配置为在 ACPI G2 软关闭时挂起到磁盘——因此 Google Compute Engine 可以通过磁盘挂起和恢复抢占式机器

Google Compute Engine以不同的价格租用从 1 核到 64 核的各种大小的 Linux 虚拟机。“可抢占”实例的价格约为保证实例的 1/4,但可抢占实例可以随时终止(带有 ACPI G2 软关闭警告和大约 30 秒直到硬中断)。尽管您可以提供启动和关闭脚本,但通常的方法似乎会导致不必要的开销,即必须创建额外的软件以允许中断计算,并管理部分计算结果,而挂起到磁盘/恢复在笔记本电脑和台式机中看到的 -from-disk 方案可能是一种更简单的存储和恢复计算的方法,因此更可取。

如果我在 GCE 上启动 Linux 可抢占式 VM,通常是否可以将 VM 的状态暂停到磁盘(又名休眠),然后从磁盘重新启动新的可抢占式 VM?我的想法是:

  1. 启动一个新的抢占式 Linux VM。
  2. 当操作系统收到抢占通知(ACPI G2 Soft Off 信号)时,触发挂起磁盘-休眠Linux操作系统。
  3. 从挂起的镜像中启动一个新的抢占式Linux VM,即恢复之前的VM,继续计算。

我将如何配置 Linux 以这种方式挂起/恢复?

0 投票
0 回答
265 浏览

linux - Thinkpad X240 acpi 状态“未知”

这是结果acpi

从什么时候开始我就没有意识到,但以前还好。我在内核 4.4.0-59 的 Ubuntu 16.04 上。

我该如何解决?

0 投票
2 回答
2002 浏览

bios - 为什么我们需要 AML - ACPI 机器语言?

据我了解,ACPI 定义了一个通用硬件编程模型,其中操作系统依赖 OEM 固件提供的 AML(ACPI 机器语言)代码来操作硬件。

为了执行 AML 代码,操作系统必须包含一个 AML 解释器。

因此,在我看来,固件开发人员使用 AML 来提供平台硬件和操作系统之间的控制接口。

但我们真的需要 AML 吗?

我认为最终只能通过平台的本机指令配置硬件。因此 AML 解释器必须将 AML 翻译成本机指令,否则无法在平台上执行。

但是使用像 AML 这样的中间语言有什么意义呢?我的意思是虽然 AML 据说是平台无关的,这意味着我可以使用 AML 以非本地方式描述我的平台。

但 AML 实际上是平台固件的一部分。并且整个固件已经内置到目标平台的本机指令中。那么让固件的一小部分独立于平台有什么好处呢?为什么不只使用本机指令?必须有某种方法让操作系统也使用它。这样操作系统就根本不需要 AML 解释器。可以避免很多复杂性。

0 投票
1 回答
321 浏览

operating-system - 为什么 ACPI 表中转储的处理器编号与实际安装的处理器不同?

我的电脑有一个 i5-4300U 处理器。它有 4 个逻辑处理器。

在此处输入图像描述

最大 cpu 名称为\_PR.CPU3

在此处输入图像描述

根据 ACPI 规范,ACPI 表之一,DSDT 表(差分系统描述表)应该描述我的平台。所以我使用RW Everything将 ACPI 表转储到我的计算机上。

在 DSDT 中,我看到:

所以看起来 DSDT 声称有 8 个处理器,这似乎与我的机器不匹配。更奇怪的是,它仍然可以工作。

这里发生了什么?

0 投票
1 回答
689 浏览

operating-system - 这些 ACPI 名称是什么意思?

我用RW Everything将 ACPI 表转储到我的笔记本电脑上。但我不知道所有这些奇怪的缩写是什么意思。

我可以猜到_PR处理器的代表,但我在哪里可以找到其他的?

在此处输入图像描述

加 1

我有一种感觉,这些名字是任意的。它们只是变量。变量名可以是任何东西。重要的是他们的价值观。并且在操作区域s中分配值以指示地址。

0 投票
1 回答
1476 浏览

linux-kernel - ACPI 错误:96 处的字段 [CDW3] 超出缓冲区

我刚刚从当前 ISO 安装了旧的 HP ML310 G5 盒 Fedora 25 服务器版本。它使用安装内核 - 4.8.6-300 启动。我在 dmesg 中看到了下面的错误,但它仍然可以启动。

在我做了 dnf makecache 之后;dnf 更新并从内核切换到 4.8.6-300 到 4.10.9-200 服务器无法启动...我无法获取日志,因为我无法登录到交互式提示...我唯一的消息在屏幕上看到的是:

我找到了一些关于 hw-PMU 资源的信息,但根据我从 HP 和 RHEL 文章中了解到的情况,这不是主要问题。这也是我的感觉,因为我可以用这个错误和 4.8 内核启动......我仍然找不到任何关于 ACPI 错误和 NMI 看门狗错误的有用信息。

任何想法如何解决这个问题?我希望我可以在使用 4.8 内核启动时解决 BIOS 更改或内核参数的问题...

0 投票
0 回答
188 浏览

c++ - ACPI _PS0 以 UNINITIALIZED_ARG 失败

我有一个需要通过 APCI 启用的触摸屏控制器(它是一个 I2C 从设备)。这应该通过调用_PS0ACPI 方法来完成。我通过使用AcpiEvaluateObject不带参数和不返回值来调用此方法。

在父对象 ( I2C4) 上调用此方法时,一切正常,但在触摸屏控制器 ( TCS2) 上调用它,则失败。也让我想知道的是,AE_AML_UNINITIALIZED_ARG即使它不需要任何参数(根据DSDT)它也会返回。

在同一个对象上调用该_CRS方法也没有任何问题。我还研究了 Linux 内核源代码,它们如何更改 ACPI 电源状态,并且它们使用完全相同的机制。归结为使用acpi_evaluate_objectin acpi_dev_pm_explicit_setwhich 似乎也适用于触摸屏设备。

我没有使用 Linux,而是使用 Genode 和 Apicica 库。

通过 ACPI 成功启用触摸屏设备我缺少什么?Linux内核是否正在隐式初始化(​​我找不到这样的东西)?

0 投票
0 回答
970 浏览

linux - ACPI 在哪里挂钩到 Linux 上的关闭序列以软关闭 PC?

我在哪里可以连接到 linux 以添加自定义软关机?

这就是问题所在。这就是我需要知道的原因:

我正在尝试使树莓派软断电。更准确地说,我希望 pi 在进入运行级别 0(又名)时关闭(电源断开sudo poweroff)。

我知道 Pi 没有执行此操作的硬件,因此我将构建一些自定义电子设备来切换 Pi 的电源。我将使用一个 GPIO 引脚,它允许 pi 上的软件向我的电子设备发出信号并切换(关闭)并有一个按钮将其重新打开。

到目前为止,一切都很好。

我的问题是我在哪里放置代码以通过 GPIO 发送信号?

有两件事浮现在脑海:

  • 也许我应该编写一个程序并将其包装在一个脚本中/etc/init以供systemd使用。
  • 也许我需要编写一个内核模块。但如果是这样,我在哪里/如何连接到关机序列?

我不能只是猜测。如果我弄错了,PI 会过早关闭并且无法完成关闭 linux。但是我在谷歌上花了几个小时并没有找到这方面的文档。

我知道这是可能的,因为这正是ACPI发生的事情。当 PC / 笔记本电脑关闭时,主板将向电源发出信号以切断 [大部分] 电源。操作系统(linux)中的某些东西必须触发这个。 那么 ACPI 软脱钩到 linux 上的关机序列在哪里呢?