ACPI唤醒4字母代码的含义是什么?


19

我必须禁用某些事件以避免在台式机中挂起后立即唤醒,而我是通过反复尝试而做到的(工作正常,所以这不是问题)。但我想知道...例如,在我的笔记本电脑中,我的清单很长/proc/acpi/wakeup

[...]
RP03      S4    *disabled
PXSX      S4    *disabled
RP04      S4    *disabled  pci:0000:00:1c.3
PXSX      S4    *enabled   pci:0000:03:00.0
RP06      S4    *disabled
[...]

我已经四处搜寻,但找不到第一列说明4字母代码含义的列表的地方。我以为事件后带有设备名称的事件是由该设备链接/生成的,但是我对其余大部分感到迷茫...减去了疯狂的猜测。

我怎么知道事件RP06是什么?哪里有清单?还是这些代码是特定于供应商的?

Answers:


24

这些代码来自BIOS的DSDT(差异系统描述表)。此“表”描述了主板上的集成设备,它们的依存关系和电源管理功能。

DSDT中的设备排列成树状,每个路径组成部分限制为4个字符。中的代码/proc/acpi/wakeup是供应商用于设备的设备的最后路径组件(即名称)。

它们本质上是特定于供应商的,因为供应商可以根据自己的喜好命名任何设备。但是,许多供应商之间有一些通用的名称,要么是因为它们被用作ACPI规范中的示例,要么是明显的缩写:

  • PS2K:PS / 2键盘
  • PS2M:PS / 2鼠标
  • PWRB或PBTN:电源按钮
  • 盖:笔记本电脑盖
  • RP0x或EXPx:PCIE插槽#x(aka PCI Express根端口#x)
  • EHCx或USBx:USB 2.0(EHCI)芯片
  • XHC:USB 3.0(XHCI)芯片
  • PEGx:图形插槽#x的PCI Express
  • GLAN:千兆以太网

2
好答案!谢谢。IGBE和HDEF呢?;-)
Monah Tuk

3
好吧,它们本质上是特定于供应商的,因此您不太确定。但是HDEF很可能意味着“高清”,因此它很可能是集成音频设备,而IGBE可以代表“英特尔千兆以太网”或“集成千兆以太网”,因此它应该是以太网LAN控制器。
cg909

PXSX
BuZZ-dEE

1
@ BuZZ-dEE PXSX似乎是使用PCI Express的设备的通用名称。至少在我的计算机上,有一个PXSX设备与每个RP0x设备相对应。阅读计算机的DSDT可能会获得更多信息。如果/proc/acpi/wakeup输出的右侧有PCI ID,则可以将其与lspci
cg909 '18

2

acpi名称空间上的linux内核文档对这些缩写可能是什么提供了诱人的提示,例如“ Scope(RP03):PCI0电源范围”,并且/ proc文件的内核源称它是a dev->pnp.bus_id,但不是救命。

958页的acpi spec 5.0非常有趣,但是对这些名称也没有帮助。


2

您可以为计算机提取并反编译ACPI表。

通过使用英特尔的ASL编译器,您可以将系统DSDT表转换为源代码。

您需要安装acpica-tools

  • Ubuntu: sudo apt-get install acpica-tools
  • Arch Linux: sudo pacman -S --needed acpica

步骤如下:

  1. 提取ACPI表(作为根): # cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
  2. 反编译:iasl -d dsdt.dat,我们得到输出文件dsdt.dsl
  3. 查找在中定义的设备/proc/acpi/wakeup并将其与dsdt.dsl

参考文献

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.