Die Kiste läuft immer noch semi-optimal. Das mit lm-sensors hatte ich vor einiger Zeit aufgegeben, weil nirgens Informationen über die neue Hardware (Asus P5B Core2Duo 6400) zu finden war. Eigentlich war das auch nebensächlich. Auf der alten Kiste hatte ich mir halt ein Superkaramba-Theme erstellt, dass mir die CPU-Last und die Temperatur von CPU und MB mit lm-sensors anzeigte. Auf der neuen Kiste habe ich das bisher nicht zum Laufen gekriegt. Heute habe ich mich dann nochmal an das Problem gemacht. Es schien wohl ein Problem mit der ACPI zu sein. in /proc/acpi sind die Verzeichnisse fast alle leer. Nach meinem Verständnis muss dort die Information über die vorhandene Hardware da sein, sonst kann nicht darauf zurückgegriffen werden. In der dmesg fand ich dann folgende Ausgabe:
CODE:
[17179569.628000] ACPI: Core revision 20060707
[17179569.628000] ACPI: Looking for DSDT ... not found!
[17179569.668000] CPU0: Intel(R) Core(TM)2 CPU
6400 @ 2.13GHz stepping 06
[17179569.668000] SMP alternatives: switching to SMP code
[17179569.668000] Booting processor 1/1 eip 3000
[17179569.680000] Initializing CPU#1
Die DSDT-Tabelle, die vom Bios bereitgestellt wird wurde nicht gefunden. Dies ist oft auf eine fehlerhaft implementierte ACPI-Tabelle im BIOS zurückzuführen. Ich bin dann auf ein
acpi-fix gestoßen. Bei
ACPI4LINUX können bereits gefixte DSDT-Tabellen runtergeladen werden. Für das P5B ist dort aber keine vorhanden. Also mit der Hand am Arm selbst ist die Frau. Zuerst iasl per aptitude installiert und dann nach Anleitung erst disassembliert und dann wieder kompiliert. Der erste Durchgan zeigt folgende Fehlermeldungen:
CODE:
root@toelvatux:/home/lirio# iasl -sa dsdt2.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060608 [Jun 29 2006]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
dsdt2.dsl 2547: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 2618: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 2691: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 2768: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 6356: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 6377: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 6468: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 6512: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 6574: Name (_T_1, Zero)
Error 4081 - Use of reserved word ^ (_T_1)
dsdt2.dsl 6606: Name (_T_2, Zero)
Error 4081 - Use of reserved word ^ (_T_2)
dsdt2.dsl 6910: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 6945: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7029: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7043: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7162: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7232: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7337: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7358: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7415: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7429: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7603: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 7715: Name (_T_0, Zero)
Error 4081 - Use of reserved word ^ (_T_0)
dsdt2.dsl 8254: Acquire (MUTE, 0x03E8)
Warning 1103 - ^ Possible operator timeout is ignored
dsdt2.dsl 8268: Acquire (MUTE, 0x03E8)
Warning 1103 - ^ Possible operator timeout is ignored
dsdt2.dsl 8283: Acquire (MUTE, 0x03E8)
Warning 1103 - ^ Possible operator timeout is ignored
dsdt2.dsl 8298: Acquire (MUTE, 0x0FFF)
Warning 1103 - ^ Possible operator timeout is ignored
dsdt2.dsl 8312: Acquire (MUTE, 0x03E8)
Warning 1103 - ^ Possible operator timeout is ignored
dsdt2.dsl 8327: Acquire (MUTE, 0x03E8)
Warning 1103 - ^ Possible operator timeout is ignored
dsdt2.dsl 8342: Acquire (MUTE, 0x03E8)
Warning 1103 - ^ Possible operator timeout is ignored
dsdt2.dsl 8677: Method (WFZF, 1, NotSerialized)
Warning 1086 - ^ Not all control paths return a value (WFZF)
dsdt2.dsl 9308: Method (VGET, 1, NotSerialized)
Warning 1086 - ^ Not all control paths return a value (VGET)
dsdt2.dsl 9353: Method (TGET, 1, NotSerialized)
Warning 1086 - ^ Not all control paths return a value (TGET)
dsdt2.dsl 9406: Method (FGET, 1, NotSerialized)
Warning 1086 - ^ Not all control paths return a value (FGET)
dsdt2.dsl 9437: Store (VGET (Local0), Local1)
Warning 1091 - ^ Called method may not always return a value
dsdt2.dsl 9479: Store (TGET (Local0), Local1)
Warning 1091 - ^ Called method may not always return a value
dsdt2.dsl 9512: Store (FGET (Local0), Local1)
Warning 1091 - ^ Called method may not always return a value
ASL Input: dsdt2.dsl - 9744 lines, 320122 bytes, 4516 keywords
Compilation complete. 22 Errors, 14 Warnings,
0 Remarks, 47 Optimizations
Zunächst die ERRORS beseitigt durch Ersetzen von _T_0 -> dit0, _T_1 -> dit1 usw. Bleiben nur noch die Warnmeldungen. Zum Vergleich habe ich bei ACPI4Linux eine gefixte Datei von einem ähnlichen MB gezogen und mit meiner Datei verglichen. Danach habe ich folgende Änderungen durchgeführt:
Ersetzen von: Acquire (MUTE, 0x03E8) -> Acquire (MUTE, 0xFFFF)
Ersetzen von: Acquire (MUTE, 0x0FFF) -> Acquire (MUTE, 0xFFFF)
In den o. a. Method:
CODE:
Method (WFZF, 1, NotSerialized)
{
OperationRegion (HRGC, SystemIO, Arg0, One)
Field (HRGC, ByteAcc, NoLock, Preserve)
{
CREG, 8
}
Store (0xFFFF, Local1)
Store (CREG, Local2)
And (Local2, 0x80, Local2)
If (LEqual (Local2, Zero))
{
Return (Zero)
}
While (Local1)
{
Stall (0x0F)
Decrement (Local1)
If (LEqual (Local1, Zero))
{
Return (Zero)
}
Store (CREG, Local2)
And (Local2, 0x80, Local2)
If (LEqual (Local2, Zero))
{
Return (Zero)
}
Decrement (Local1)
}
++ Return (Zero) ++
}
Die anschließende Kompilierung ergibt:
CODE:
root@toelvatux:/home/lirio# iasl -sa dsdt2.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060608 [Jun 29 2006]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
ASL Input: dsdt2.dsl - 9749 lines, 320195 bytes, 4520 keywords
AML Output: dsdt.aml - 35392 bytes
1028 named objects 3492 executable opcodes
Compilation complete. 0 Errors, 0 Warnings,
0 Remarks, 47 Optimizations
Die neue dmesg:
CODE:
[17179569.628000] ACPI: Looking for DSDT in initramfs...
found /DSDT.aml ... successfully read 35392 bytes from /DSDT.aml
[17179569.628000] ACPI: Using customized DSDT
[17179569.628000] ACPI (tbget-0289): Table [DSDT]
replaced by host OS [20060707]
[17179569.668000] CPU0: Intel(R) Core(TM)2 CPU
6400 @ 2.13GHz stepping 06
[17179569.668000] SMP alternatives: switching to SMP code
[17179569.668000] Booting processor 1/1 eip 3000
[17179569.680000] Initializing CPU#1
Aber leider nur ein Teilerfolg. Denn:
CODE:
[17179570.636000] ACPI: (supports S0 S1 S3 S4 S5)
[17179570.720000] ACPI (exconfig-0455): Dynamic SSDT Load -
OemId [AMI] OemTableId [ CPU1PM] [20060707]
[17179570.720000] ACPI (exconfig-0455): Dynamic SSDT Load -
OemId [AMI] OemTableId [ CPU2PM] [20060707]
[17179570.720000] ACPI Exception (acpi_processor-0693):
AE_NOT_FOUND, Processor Device is not present [20060707]
[17179570.720000] ACPI: Getting cpuindex for acpiid 0x3
[17179570.720000] ACPI Exception (acpi_processor-0693):
AE_NOT_FOUND, Processor Device is not present [20060707]
[17179570.720000] ACPI: Getting cpuindex for acpiid 0x4