Por que minha tabela DSDT é diferente da que encontrei on-line?

2

Eu encontrei um campo na tabela DSDT onde eu quero modificar daqui link Geralmente, eu quero modificar o campo _PSS sobre o processador para que eu possa ter mais níveis de freqüência disponíveis na interface do driver CPUfreq. Eu tento usar este comando para dissimular a tabela DSDT da minha área de trabalho (Linux2.6.29, Intel CORE 2):

 cat /proc/acpi/dsdt > dsdt.aml 
 iasl -d dsdt.aml

Então eu tenho um arquivo dsdt.dsl como seguindo (muito longo, então eu apenas mostro o começo do arquivo):

    /*
     * 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)
...................

Mas não consigo encontrar o campo _PSS como mostrado no site que dei acima. Eu não sei porque? Eu tenho certeza que o atual driver cpufreq mostra 4 níveis de freqüência disponíveis. Então, pelo menos deveria haver algo na tabela mostrando isso ... certo? Alguém já jogou com a mesa DSDT antes? Obrigado,

    
por Hao Shen 07.05.2013 / 04:07

1 resposta

1

Existem outras tabelas que contêm métodos ACPI e, além do DSDT primário, também há SSDTs secundários.

Existem várias maneiras de recuperar essas tabelas. No meu kernel 3.9, existe um diretório /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

Se o seu kernel não tem isso, você também pode tentar o acpidump (não do iasl, mas da árvore de fontes do kernel. Example package para Arch Linux :

# acpidump > acpidump.txt
$ acpixtract acpidump.txt
$ iasl -d *.dat
    
por 27.06.2013 / 11:21

Tags