Ich habe gerade den Wiki-Artikel acpi-fix gefunden.
moose@pc07:~$ iasl -sa dsdt.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20081204 [Jan 10 2009]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a
dsdt.dsl 383: Name (_HID, "*pnp0c14")
'''Error 4001 - ^ String must be entirely alphanumeric (*pnp0c14)'''
dsdt.dsl 412: Method (_WED, 1, NotSerialized)
Warning 1087 - ^ Not all control paths return a value (_WED)
dsdt.dsl 412: Method (_WED, 1, NotSerialized)
Warning 1080 - ^ Reserved method must return a value (_WED)
dsdt.dsl 667: Name (_T_0, 0x00)
Remark 5110 - Use of compiler reserved name ^ (_T_0)
dsdt.dsl 781: Name (_T_1, 0x00)
Remark 5110 - Use of compiler reserved name ^ (_T_1)
dsdt.dsl 825: Name (_T_2, 0x00)
Remark 5110 - Use of compiler reserved name ^ (_T_2)
dsdt.dsl 876: Name (_T_3, 0x00)
Remark 5110 - Use of compiler reserved name ^ (_T_3)
dsdt.dsl 913: Name (_T_4, 0x00)
Remark 5110 - Use of compiler reserved name ^ (_T_4)
dsdt.dsl 955: Name (_T_5, 0x00)
Remark 5110 - Use of compiler reserved name ^ (_T_5)
dsdt.dsl 6500: Method (HKDS, 1, NotSerialized)
Warning 1087 - ^ Not all control paths return a value (HKDS)
ASL Input: dsdt.dsl - 8073 lines, 285795 bytes, 3171 keywords
Compilation complete. 1 Errors, 3 Warnings, 6 Remarks, 925 Optimizations
Ich denke damit könnte man den boot-Fehler beheben. Kennt ihr euch da aus?
edit:
edit:
Hogger hilft mir nun, hier ein paar Anmerkungen von ihm:
schau mal hier: http://www.mail-archive.com/linux-acpi@vger.kernel.org/msg06782.html
und hier: http://users.telenet.be/PrittyFlemishPages/linux/aspire1800_3.html
"Reserved method must return a value" ist in acpi-fix beschrieben,
"String must be entirely alphanumeric" und "Use of reserved word" im ersten Link,
"Not all control paths return a value" im zweiten Link.
und
Wenn du dich noch mehr damit beschäftigen willst, könntest du dir auch mal die "Windows"-Abfragen in deiner DSDT anschauen, da hab ich mal irgendwo was drüber gelesen.
moose@pc07:~$ nl dsdt.dsl | grep -i win
971 If (_OSI ("Windows 2001"))
975 If (_OSI ("Windows 2001 SP1"))
979 If (_OSI ("Windows 2001 SP2"))
983 If (_OSI ("Windows 2006"))
zum Beheben der dsdt.dsl_
Method (_WED, 1, NotSerialized)
{
Store (Arg0, P80H)
If (LEqual (Arg0, 0xB0))
{
Return (B0ED)
}
Return(Package(0x02){0x00, 0x00})
}
wie in acpi-fix (Abschnitt „Warning-1079-Reserved-method-must-return-a-value-WAK“) beschrieben, ab Z. 412 - nun kommen nur noch "1 Errors, 1 Warnings, 6 Remarks, 927 Optimizations"
Nun zu "Use of compiler reserved name ^ (_T_0)" - siehe acpi-fix (Abschnitt „Error-1080-Use-of-reserved-word-T-0“)
in der ganzen dsdt.dsl "_T_0" durch "dit0", "_T_1" durch "dit1" usw. bis "_T_5" durch "dit5" ersetzen. Nun sind wir bei "1 Errors, 1 Warnings, 0 Remarks, 927 Optimizations"
Kann ich wegen "^ String must be entirely alphanumeric (*pnp0c14)" einfach den Stern in Zeile 383 entfernen? "pnp0c14" kommt kein zweites mal vor und der Fehler ist weg ... aber ich weiß nicht warum er vorher da war - damit wären wir bei "0 Errors, 1 Warnings, 0 Remarks, 927 Optimizations"
Das letzte Warning, hier noch der Zwischenstand:
moose@pc07:~$ iasl -sa dsdt.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20081204 [Jan 10 2009]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a
dsdt.dsl 6501: Method (HKDS, 1, NotSerialized)
Warning 1087 - ^ Not all control paths return a value (HKDS)
ASL Input: dsdt.dsl - 8074 lines, 285831 bytes, 3172 keywords
AML Output: dsdt.aml - 30373 bytes, 737 named objects, 2435 executable opcodes
Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 927 Optimizations
Method (HKDS, 1, NotSerialized)
{
If (LEqual (0x00, DSEN))
{
If (LEqual (Arg0, 0x10))
{
If (IGDS)
{
If (\ASLB)
{
\_SB.PCI0.GFX0.GHDS (0x00)
Return (0x00)
}
}
Store (PHSR (0x27, 0x00), Local0)
Increment (Local0)
If (LGreaterEqual (Local0, 0x03))
{
Store (0x00, Local0)
}
}
Else
{
Store (Arg0, Local0)
}
If (LEqual (Local0, 0x00))
{
Store (0x0101, NSTE)
}
If (LEqual (Local0, 0x01))
{
Store (0x0808, NSTE)
}
If (LEqual (Local0, 0x02))
{
Store (0x0909, NSTE)
}
If (LEqual (Local0, 0x03))
{
Store (0x0404, NSTE)
}
If (LEqual (Local0, 0x04))
{
Store (0x0202, NSTE)
}
If (LEqual (Local0, 0x05))
{
Store (0x0C0C, NSTE)
}
If (LEqual (Local0, 0x06))
{
Store (0x0A0A, NSTE)
}
If (IGDS)
{
If (\ASLB)
{
\_SB.PCI0.GFX0.SNDL (NSTE)
\_SB.PCI0.GFX0.GHDS (0x04)
}
Else
{
Notify (\_SB.PCI0.GFX0, 0x80)
}
}
Else
{
Notify (\_SB.PCI0.PEGP.VGA, 0x80)
}
}
If (LEqual (0x01, DSEN))
{
If (LEqual (Arg0, 0x10))
{
PHSR (0x26, 0x00)
}
Else
{
PHSR (0x28, Arg0)
}
}
}
Kann man dafür eventuell einfach wie auf dieser Seite beschrieben "Return(Package(0x02){0x00, 0x00})" in Zeile 6592 eingeben? Wenn ich das mache kommt "0 Errors, 0 Warnings, 0 Remarks, 929 Optimizations"
Hier steht einiges über die Tatsache, dass Windows in der DSDT steht, aber laut diesem Artikel sollte man das meiste auskommentieren... (siehe 4.)
Laut dieser Quelle kann man einfach das Sternchen weg machen (siehe 3.)
Ändert ein acpi-fix etwas an der Ausgabe von dmesg? Hier mal eine Auswahl von Nachrichten, die zusammenhängen könnten:
[ 0.525396] ACPI: EC: Look up EC in DSDT
[ 0.532820] ACPI: BIOS _OSI(Linux) query ignored
[ 0.532020] ACPI: EC: non-query interrupt received, switching to interrupt mode
[ 0.564082] ACPI: Interpreter enabled
[ 0.564087] ACPI: (supports S0 S3 S4 S5)
[ 0.564110] ACPI: Using IOAPIC for interrupt routing
[ 0.581117] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[ 0.581120] ACPI: EC: driver started in interrupt mode
[ 0.584095] ACPI: No dock devices found.
[ 0.584106] ACPI: PCI Root Bridge [PCI0] (0000:00)
[...]
[ 2.404640] ACPI Warning (nspredef-0852): \_SB_.PCI0.SATA.PRT0._GTF: Return type mismatch - found Integer, expected Buffer [20080926]
Wenns fertig ist werde ich es auf acpi.sourceforge.net hochladen