Rma*_*ano 37 acpi linux-kernel
我必须禁用某些事件以避免在我的台式机中挂起后立即唤醒,并且我通过反复试验来实现(效果很好,所以这不是问题)。但我想知道......例如在我的笔记本电脑中,我有一个很长的列表/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
[...]
Run Code Online (Sandbox Code Playgroud)
我四处搜索,找不到解释第一列中具有 4 个字母代码含义的列表的地方。我想象在它们之后带有设备名称的事件是由该设备链接/生成的,但我对其余的大部分都不知所措......减去疯狂的猜测。
例如,我怎么知道事件RP06
是什么?有没有清单?或者该代码是特定于供应商的?
cg9*_*909 40
这些代码来自 BIOS 的 DSDT(差分系统描述表)。这个“表格”描述了主板上的集成设备、它们的依赖关系和电源管理功能。
DSDT 中的设备以树状排列,每个路径组件限制为 4 个字符。中的代码/proc/acpi/wakeup
是供应商用于设备的设备的最后一个路径组件(也称为名称)。
它们本质上是特定于供应商的,因为供应商可以随意命名任何设备。但是有一些名称在许多供应商之间是通用的,要么是因为它们在ACPI 规范中用作示例,要么是因为它们是明显的缩写:
小智 7
PCI 设备的明显解决方案:
# cat /proc/acpi/wakeup
Device S-state Status Sysfs node
GP12 S4 *enabled pci:0000:00:07.1
GP13 S4 *enabled pci:0000:00:08.1
XHC0 S4 *enabled pci:0000:08:00.3
GPP0 S4 *enabled pci:0000:00:01.1
GPP8 S4 *enabled pci:0000:00:03.1
GPP1 S4 *enabled pci:0000:00:01.2
PTXH S4 *enabled pci:0000:02:00.0
PT20 S4 *enabled pci:0000:03:00.0
...
Run Code Online (Sandbox Code Playgroud)
是按公交车号码搜索:
# lspci | grep 08:00.3
08:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
# lspci | grep 02:00.0
02:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] Device 43ee
Run Code Online (Sandbox Code Playgroud)
您可以为您的计算机提取并反编译 ACPI 表。
通过使用Intel的ASL编译器,您可以将系统DSDT表转换为源代码。
您需要安装acpica-tools
:
sudo apt-get install acpica-tools
sudo pacman -S --needed acpica
步骤如下:
sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
iasl -d dsdt.dat
,我们得到输出文件dsdt.dsl
/proc/acpi/wakeup
并将其与dsdt.dsl
归档时间: |
|
查看次数: |
13926 次 |
最近记录: |