speedstep - acpi - DSDT Tabelle

flammenflitzer

Routinier
Beiträge
388
Hallo
Ich habe Probleme mit speedstep.
Code:
localhost boot # dmesg | grep DSDT
Nichts. Jetzt dachte ich, ich könnte DSDT aus dem Bios auslesen und die Tabelle beim Booten laden.
Code:
http://page.mi.fu-berlin.de/chjacob/samsung/samsung.html#acpi
Code:
emerge pmtools
Code:
localhost olaf # /usr/sbin/acpidump  >> /tmp/ACPI
Code:
localhost olaf # /usr/bin/acpixtract-pmtools -l /tmp/ACPI

Signature Length  OemId     OemTableId   OemRevision CompilerId
CompilerRevision

    DSDT   29672  "NVIDIA"  "AWRDACPI"    00001000    "MSFT"
03000000
    FACS      64
    FACP     244  "Nvidia"  "ASUSACPI"    42302E31    "AWRD"
00000000
    HPET      56  "Nvidia"  "ASUSACPI"    42302E31    "AWRD"
00000098
    MCFG      60  "Nvidia"  "ASUSACPI"    42302E31    "AWRD"
00000000
    APIC     152  "Nvidia"  "ASUSACPI"    42302E31    "AWRD"
00000000
    SSDT     772  "Nvidia"  "ASUSACPI"    42302E31    "AWRD"
00000000
    XSDT      76  "Nvidia"  "ASUSACPI"    42302E31    "AWRD"
00000000
    RSDP          "Nvidia"

Found 9 ACPI tables [20060324]
Code:
localhost olaf # cd /root
localhost ~ # mkdir ACPI
localhost ~ # cd ACPI
Code:
localhost olaf # /usr/bin/acpixtract-pmtools -a /tmp/ACPI
Acpi table [DSDT] -  29672 bytes written to DSDT.dat
Acpi table [FACS] -     64 bytes written to FACS.dat
Acpi table [FACP] -    244 bytes written to FACP.dat
Acpi table [HPET] -     56 bytes written to HPET.dat
Acpi table [MCFG] -     60 bytes written to MCFG.dat
Acpi table [APIC] -    152 bytes written to APIC.dat
Acpi table [SSDT] -    772 bytes written to SSDT.dat
Acpi table [XSDT] -     76 bytes written to XSDT.dat
Acpi table [RSDP] -     36 bytes written to RSDP.dat
Code:
localhost ACPI # ls
APIC.dat  FACP.dat  HPET.dat  RSDP.dat  XSDT.dat
DSDT.dat  FACS.dat  MCFG.dat  SSDT.dat
Code:
localhost ACPI # iasl -d /root/ACPI/DSDT.dat

Intel ACPI Component Architecture
AML Disassembler version 20060912 [Aug 23 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

Loading Acpi table from file /root/ACPI/DSDT.dat
Acpi table [DSDT] successfully installed and loaded
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
...............................................................................$
Parsing completed
Disassembly completed, written to "DSDT.dsl"
Code:
localhost ACPI # iasl -tc DSDT.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060912 [Aug 23 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

DSDT.dsl   356:     Method (\_WAK, 1, NotSerialized)
Warning  1079 -                 ^ Reserved method must return a value
(_WAK)

DSDT.dsl  6268:                 Method (GSLI, 1, NotSerialized)
Warning  1086 -                            ^ Not all control paths
return a value (GSLI)

ASL Input:  DSDT.dsl - 8450 lines, 259484 bytes, 3279 keywords
AML Output: /root/ACPI/DSDT.aml - 27447 bytes 1073 named objects 2206
executable opcodes

Compilation complete. 0 Errors, 2 Warnings, 0 Remarks, 881 Optimizations
Code:
... Nun muss man dafür sorgen, dass der Kernel nicht die ACPI-Tabelle aus dem Bios benutzt, sondern die modifizierte Tabelle, die man ihm über die RAMDISK übergibt:... (bei mir wird wohl gar nicht die BIOS Tabelle genutzt)
Ich habe das mal bei meinenm Ubuntu Testsystem geladen.
Code:
root@localhost:/#cp DSDT.aml /etc/initramfs-tools/DSDT.aml
root@localhost:/#cd  /boot
root@localhost:/boot#mv initrd.img-2.6.22-14-generic
initrd.img-2.6.22-14-generic-alt
root@localhost:/boot# mkinitramfs `uname -r` -o /boot/initrd.img-`uname -r`

reboot

Code:
olaf@localhost:~$ dmesg | grep DSDT
[    0.000000] ACPI: DSDT 7FEE3240, 73E8 (r1 NVIDIA AWRDACPI     1000
MSFT  3000000)
[   26.924807] ACPI: Looking for DSDT in initramfs... successfully read
27447 bytes from /DSDT.aml.
[   26.924825] ACPI: Table DSDT replaced by host OS
[   26.924826] ACPI: DSDT 00000000, 6B37 (r1 NVIDIA AWRDACPI     1000
INTL 20060912)
[   27.179083] ACPI: EC: Look up EC in DSDT

Code:
olaf@localhost:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     E6750  @ 2.66GHz
stepping        : 11
cpu MHz         : 800.000
cache size      : 4096 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall
lm constant_tsc pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr
lahf_lm
bogomips        : 5337.62
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     E6750  @ 2.66GHz
stepping        : 11
cpu MHz         : 800.000
cache size      : 4096 KB
physical id     : 0
siblings        : 2MHz
core id         : 1
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall
lm constant_tsc pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr
lahf_lm
bogomips        : 5333.37
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
Hat nichts gebracht. Die Tabelle ist wohl nicht korrekt. Oben wurde ja ohne Fehler kompilliert. Aber der Takt pendelt nach wie vor zwichen 600 und 800 MHz. Sollte doch aber irgendwo zwischen 2 und 2,66 GHz pendeln. Dazu müßte wohl die DSDT manuell überarbeitet werden? Das ist mir zu hoch.
 

chb

Steirer
Beiträge
2.359
Du kannst auch versuchen den Takt nicht über ACPI zu regeln, sondern über die CPU, da gibts eine Option im Kernel bei CPU Frequency Support.
 

knumskull

Foren As
Beiträge
87
ich hatte das Problem bei meinem X2 auch. Habe allerdings gerade nicht die Seite parat, wo ich die Lösung her hatte. Aber imprinzip ging es in die selbe Richtung. Ich musste die DSDT Tabelle auch von hand im Kernel mit einbinden. Allerdings habe ich meine auch noch manuell bearbeitet. Ich schaue heute zu Hause noch mal nach, wie ich das gemacht habe.
 

flammenflitzer

Routinier
Beiträge
388
Ich denke der entscheidende Abschnitt in der DSDT.dsl ist der
Code:
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20060912
 *
 * Disassembly of /root/ACPI/DSDT.dat, Fri Feb  1 21:25:14 2008
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x000073E8 (29672)
 *     Revision         0x01
 *     OEM ID           "NVIDIA"
 *     OEM Table ID     "AWRDACPI"
 *     OEM Revision     0x00001000 (4096)
 *     Creator ID       "MSFT"
 *     Creator Revision 0x03000000 (50331648)
 */
DefinitionBlock ("/root/ACPI/DSDT.aml", "DSDT", 1, "NVIDIA", "AWRDACPI", 0x00001000)
{
    Scope (\_PR)
    {
        Processor (\_PR.CPU0, 0x00, 0x00000000, 0x00) {}
        Processor (\_PR.CPU1, 0x01, 0x00000000, 0x00) {}
        Processor (\_PR.CPU2, 0x02, 0x00000000, 0x00) {}
        Processor (\_PR.CPU3, 0x03, 0x00000000, 0x00) {}
    }
 

knumskull

Foren As
Beiträge
87
poste mal bitte die ganze table. Dann kann ich vielleicht den zusammenhang rausfiltern. Die sache liest sich zwar nich wie nen gutes buch, aber ich brauch meistens den gesamten zusammenhang ;)
 

flammenflitzer

Routinier
Beiträge
388
Ich habe jetzt 2 dsdt.dat von Usern, die den gleichen Prozessor nutzen.
Code:
iasl -d dsdt.dat
Code:
cat dsdt.dsl | grep Processor
        Processor (CPU0, 0x01, 0x00000410, 0x06) {}
        Processor (CPU1, 0x02, 0x00000410, 0x06) {}
        Processor (CPU2, 0x03, 0x00000410, 0x06) {}
        Processor (CPU3, 0x04, 0x00000410, 0x06) {}
Bei beiden die gleiche Ausgabe. Weiß jemand, ob es ausreicht, wenn ich in meiner Tabelle
Code:
        Processor (\_PR.CPU0, 0x00, 0x00000000, 0x00) {}
        Processor (\_PR.CPU1, 0x01, 0x00000000, 0x00) {}
        Processor (\_PR.CPU2, 0x02, 0x00000000, 0x00) {}
        Processor (\_PR.CPU3, 0x03, 0x00000000, 0x00) {}
durch obigen Eintrag ersetzte?
 
D

drhirsch

Gast
Hallo, bin zufaellig auf den Thread gestossen (ich versuche overclocking+speedstep mittels eigener DSDT unter einen Hut zu bringen). Fuer mich sieht das so aus, als ob deine Anzeige in /proc/cpuinfo nicht stimmt und der Prozessor mit 2.66 GHz laeuft.
model name : Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
cpu MHz : 800.000
...
bogomips : 5337.62
Gruende: der Bogomips-Wert passt genau zu einem E6xxx it 2.66 GHz und der E6750 kann ohne weiteres gar nicht mit 800 MHz laufen (minimaler Multiplikator ist 6, Bustakt 266).
 

Ähnliche Themen

CentOS 5.3 2.6.24.7-x86_64 Boot Fehler

Rollei Mini Wifi Camcorder

Wo sind die Geräte?

Ubuntu X / dbus problem

Modulfehler?

Oben