Чому моя таблиця DSDT відрізняється від тієї, яку я знайшов в Інтернеті?


2

Я знайшов поле в таблиці DSDT, де я хочу змінити звідси http://www.ztex.de/misc/c2ctl.e.html Загалом, я хочу змінити поле _PSS щодо процесора, щоб у мене було більше рівні частоти, доступні в інтерфейсі драйверів CPUfreq. Я намагаюся використовувати цю команду, щоб зібрати таблицю DSDT з мого робочого столу (Linux2.6.29, Intel CORE 2):

 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? Дякую,


І навіть у специфікації ACPI acpi.info/DOWNLOADS/ACPIspec30a.pdf я бачив поле _PSS (просто шукаю PSS). Чому в моєму файлі немає цього…
Хао Шен,

Відповіді:


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.