我在 DSDT 表中找到了一个字段,我想从这里进行修改 http://www.ztex.de/misc/c2ctl.e.html 一般来说,我想修改处理器的 _PSS 字段,以便在 CPUfreq 驱动程序接口中提供更多频率级别。我尝试使用此命令从我的桌面(Linux2.6.29,Intel CORE 2)反汇编 DSDT 表:
cat /proc/acpi/dsdt > dsdt.aml
iasl -d dsdt.aml
然后我有一个如下的文件 dsdt.dsl(很长,所以我只显示文件的开头):
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20090123
*
* Disassembly of dsdt.aml, Mon May 6 20:41:40 2013
*
*
* Original Table Header:
* Signature "DSDT"
* Length 0x00003794 (14228)
* Revision 0x01 **** ACPI 1.0, no 64-bit math support
* Checksum 0x46
* OEM ID "DELL"
* OEM Table ID "dt_ex"
* OEM Revision 0x00001000 (4096)
* Compiler ID "INTL"
* Compiler Version 0x20050624 (537200164)
*/
DefinitionBlock ("dsdt.aml", "DSDT", 1, "DELL", "dt_ex", 0x00001000)
{
Method (DBIN, 0, NotSerialized)
{
Noop
}
Scope (\)
{
Device (_SB.VBTN)
...................
但是我找不到上面给出的网站中显示的 _PSS 字段。我不知道为什么?我确信当前的 cpufreq 驱动程序显示 4 个可用的频率级别。所以至少表中应该有显示这一点的内容..对吧?这里有人之前玩过 DSDT 表吗?谢谢,
答案1
还有其他表包含 ACPI 方法等,除了主 DSDT 之外,还有次要 SSDT。
有多种方法可以检索这些表。在我的 3.9 内核上,存在一个/sys/firmware/acpi/tables
目录:
$ ls /sys/firmware/acpi/tables/{DSDT,SSDT*}
/sys/firmware/acpi/tables/DSDT
/sys/firmware/acpi/tables/SSDT1
/sys/firmware/acpi/tables/SSDT2
# for i in /sys/firmware/acpi/tables/{DSDT,SSDT*}; do cp $i ${i##*/}.aml; done
$ iasl -d *.dat
如果您的内核没有这个,您也可以尝试 acpidump(不是来自 iasl,而是来自内核源代码树)。Arch Linux 的示例软件包):
# acpidump > acpidump.txt
$ acpixtract acpidump.txt
$ iasl -d *.dat