为什么我的 DSDT 表与我在网上找到的不同?

为什么我的 DSDT 表与我在网上找到的不同?

我在 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

相关内容