PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DSDT Hilfe!? Standby Probleme



osmanovic100
08.05.07, 01:46
Hallo,

ich weiß nicht mehr weiter:
Standby funktioniert nur einmal, zweites mal geht gar nicht mehr, b.z.w Laptop wacht nicht auf ( schwarze bildschirm... )

ich benutze Ubuntu Dapper

/etc/default/acpi-support:
ACPI_SLEEP=true
ACPI_HIBERNATE=true
ACPI_SLEEP_MODE=mem
MODULES=""
MODULES_WHITELIST=""
SAVE_VBE_STATE=false
VBESTATE=/var/lib/acpi-support/vbestate
POST_VIDEO=true
SAVE_VIDEO_PCI_STATE=true
USE_DPMS=false
HIBERNATE_MODE=shutdown
LOCK_SCREEN=false
RESET_DRIVE=true
STOP_SERVICES="mysql "
RESTART_IRDA=true
ENABLE_LAPTOP_MODE=true

habe schon vieles versucht und kein erfolg gehabt! :(

ich glaube es liegt an DSDT, den da habe ich viele errors, siehe:

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20051216 [Jan 9 2006]
Copyright (C) 2000 - 2005 Intel Corporation
Supports ACPI Specification Revision 3.0

dsdt.dsl 145: Method (\_WAK, 1, NotSerialized)
Warning 2078 - ^ Reserved method must return a value (_WAK)

dsdt.dsl 482: Or (\_SB.PCI0.EIO.PIRA, 0x80, \_SB.PCI0.EIO.PIRA)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRA)

dsdt.dsl 482: Or (\_SB.PCI0.EIO.PIRA, 0x80, \_SB.PCI0.EIO.PIRA)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRA)

dsdt.dsl 493: If (LEqual (And (\_SB.PCI0.EIO.PIRA, 0x80), Zero))
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRA)

dsdt.dsl 495: And (\_SB.PCI0.EIO.PIRA, 0x0F, Local0)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRA)

dsdt.dsl 507: Or (Local0, And (\_SB.PCI0.EIO.PIRA, 0x70), \_SB.PCI0.EIO.PIRA)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRA)

dsdt.dsl 507: Or (Local0, And (\_SB.PCI0.EIO.PIRA, 0x70), \_SB.PCI0.EIO.PIRA)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRA)

dsdt.dsl 512: If (And (\_SB.PCI0.EIO.PIRA, 0x80))
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRA)

dsdt.dsl 537: Or (\_SB.PCI0.EIO.PIRB, 0x80, \_SB.PCI0.EIO.PIRB)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRB)

dsdt.dsl 537: Or (\_SB.PCI0.EIO.PIRB, 0x80, \_SB.PCI0.EIO.PIRB)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRB)

dsdt.dsl 543: And (\_SB.PCI0.EIO.PIRB, 0x0F, Local0)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRB)

dsdt.dsl 553: Or (Local0, And (\_SB.PCI0.EIO.PIRB, 0x70), \_SB.PCI0.EIO.PIRB)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRB)

dsdt.dsl 553: Or (Local0, And (\_SB.PCI0.EIO.PIRB, 0x70), \_SB.PCI0.EIO.PIRB)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRB)

dsdt.dsl 558: If (And (\_SB.PCI0.EIO.PIRB, 0x80))
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRB)

dsdt.dsl 583: Or (\_SB.PCI0.EIO.PIRC, 0x80, \_SB.PCI0.EIO.PIRC)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRC)

dsdt.dsl 583: Or (\_SB.PCI0.EIO.PIRC, 0x80, \_SB.PCI0.EIO.PIRC)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRC)

dsdt.dsl 589: And (\_SB.PCI0.EIO.PIRC, 0x0F, Local0)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRC)

dsdt.dsl 599: Or (Local0, And (\_SB.PCI0.EIO.PIRC, 0x70), \_SB.PCI0.EIO.PIRC)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRC)

dsdt.dsl 599: Or (Local0, And (\_SB.PCI0.EIO.PIRC, 0x70), \_SB.PCI0.EIO.PIRC)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRC)

dsdt.dsl 604: If (And (\_SB.PCI0.EIO.PIRC, 0x80))
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRC)

dsdt.dsl 629: Or (\_SB.PCI0.EIO.PIRD, 0x80, \_SB.PCI0.EIO.PIRD)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRD)

dsdt.dsl 629: Or (\_SB.PCI0.EIO.PIRD, 0x80, \_SB.PCI0.EIO.PIRD)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRD)

dsdt.dsl 635: And (\_SB.PCI0.EIO.PIRD, 0x0F, Local0)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRD)

dsdt.dsl 645: Or (Local0, And (\_SB.PCI0.EIO.PIRD, 0x70), \_SB.PCI0.EIO.PIRD)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRD)

dsdt.dsl 645: Or (Local0, And (\_SB.PCI0.EIO.PIRD, 0x70), \_SB.PCI0.EIO.PIRD)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRD)

dsdt.dsl 650: If (And (\_SB.PCI0.EIO.PIRD, 0x80))
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRD)

dsdt.dsl 1408: Device (MOD)
Error 1093 - ^ syntax error, unexpected PARSEOP_MOD, expecting PARSEOP_NAMESEG or PARSEOP_NAMESTRING

dsdt.dsl 1904: Store (\_SB.PCI0.EC.PST, Local0)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.PST)

dsdt.dsl 1918: Notify (\_SB.PCI0.ESB, Local0)
Error 1061 - Object does not exist ^ (\_SB.PCI0.ESB)

dsdt.dsl 1921: Store (Zero, \_SB.PCI0.EC.PST)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.PST)

dsdt.dsl 2732: Store (0x00, \_SB.PCI0.EC.ICT)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.ICT)

dsdt.dsl 2733: Store (0x00, \_SB.PCI0.EC.NMC2)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.NMC2)

dsdt.dsl 2738: Store (0x02, \_SB.PCI0.EC.NMC2)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.NMC2)

dsdt.dsl 2739: Store (0x5000, \_SB.PCI0.EC.ICT)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.ICT)

dsdt.dsl 2745: Store (0x01, \_SB.PCI0.EC.NMC2)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.NMC2)

dsdt.dsl 2746: Store (0x2000, \_SB.PCI0.EC.ICT)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.ICT)

dsdt.dsl 2751: Store (0x1000, \_SB.PCI0.EC.ICT)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EC.ICT)

dsdt.dsl 2770: }
Error 1093 - ^ syntax error, unexpected '}', expecting $end

ASL Input: dsdt.dsl - 2771 lines, 96598 bytes, 1400 keywords
Compilation complete. 37 Errors, 1 Warnings, 0 Remarks, 148 Optimizations




kann mir jemand bei DSDT helfen?

Danke im vorraus für antwort

Gruss,
Osmanovic

osmanovic100
08.05.07, 09:40
Problem 1:

dsdt.dsl 145: Method (\_WAK, 1, NotSerialized)
Warning 2078 - ^ Reserved method must return a value (_WAK)


Lösung:

Method (\_WAK, 1, NotSerialized)
{
\_SB.PHS (0x94)
If (LEqual (RIIN, 0x01))
{
Notify (\_SB.PWRB, 0x02)
Store (0x00, RIIN)
}

If (LEqual (Arg0, 0x01))
{
Store ("------------- System S1 to\tS0 mode\t-------------", Debug)
\_SB.PHS (0x81)
}

If (And (LNot (LLess (Arg0, 0x02)), LNot (LGreater (Arg0, 0x03))))
{
Store ("------------- System (S3 or S2) to\tS0 mode\t-------------", Debug)
\_SB.PHS (0x86)
}

If (LEqual (Arg0, 0x04))
{
Store ("------------- System S4 to\tS0 mode\t-------------", Debug)
Notify (\_SB.PWRB, 0x02)
\_SB.PHS (0x83)
}
Return(Package(0x02){0x00, 0x00})
}


nur wie ist diese fehler zu beheben:

dsdt.dsl 483: Or (\_SB.PCI0.EIO.PIRA, 0x80, \_SB.PCI0.EIO.PIRA)
Error 1061 - Object does not exist ^ (\_SB.PCI0.EIO.PIRA)



und das ist in Zeile 483 zu sehen:



Device (LNKA)
{
Name (_HID, EisaId ("PNP0C0F"))
Name (_UID, 0x01)
Name (_PRS, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared)
{3,4,5,7,9,11}
})
Method (_DIS, 0, NotSerialized)
{
Or (\_SB.PCI0.EIO.PIRA, 0x80, \_SB.PCI0.EIO.PIRA)
}

Method (_CRS, 0, NotSerialized)
{
Name (RSRC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared)
{}
})
CreateWordField (RSRC, 0x01, IRQ0)
If (LEqual (And (\_SB.PCI0.EIO.PIRA, 0x80), Zero))
{
And (\_SB.PCI0.EIO.PIRA, 0x0F, Local0)
ShiftLeft (0x01, Local0, IRQ0)
}

Return (RSRC)
}

Method (_SRS, 1, NotSerialized)


was fehlt den da....???

Danke im vorraus für antwort

Mfg,
Osmanovic

osmanovic100
08.05.07, 22:22
hmmm.... OK, so wie ich das sehe weißt hier auch keiner wie man die DSDT errors wegscript....

naja Linux-Helfer waren damals aktiver... :(

was ich nicht verstehe:
Linux ist super, (das wissen wir alle) aber warum ist ACPI bei Linux so schlecht...?

buzz768
09.05.07, 00:16
aber warum ist ACPI bei Linux so schlecht...?
http://www.linux-magazin.de/heft_abo/ausgaben/2004/02/einschlaf_hilfen


Noch ärgerlicher, dafür kann aber Linux nichts, ist, dass Systeme mit fehlerhaften DSDTs verkauft werden - auch von Herstellern, die selbst im ACPI-Konsortium sitzen

rkauskh
09.05.07, 21:30
Hi

Du schreibst nachts um 2 einen Beitrag und beschwerst dich noch am selben Tag das dir keiner hilft? :confused:

Vergleich mal diese DSDT mit deiner --> http://www.michael-prokop.at/computer/sony/dsdt.dsl

Ich weiß, is vermutlich für's falsche Laptop, aber dort taucht auch PIRA auf und irgendwo vor dem ersten Aufruf muß das definiert werden. Das fehlt bei dir. Zweite Möglicheit wäre alle Aufrufe der Methode _DIS auszukommentieren, wird aber vermutlich mehr Probleme verursachen als helfen.

Psycho Dad1
11.05.07, 16:33
Gugg doch erstmal ob es net schon eine gefixte DSDT-Tabelle für Deinen Laptop gibt.

http://acpi.sourceforge.net/dsdt/view.php

Ausserdem kanns net schaden, mal nach Deinem Laptopmodell + Linux zu googeln, vielleicht gibts schon eine Seite darüber, möglicherweise sogar mit DSDT.
Musst aber nachher aufpassen, das Biosversion und Speicherausstattung gleich sind.
Wenn du aber ne gefixte DSDT findest, kannst ja dann leicht anschauen, welche Korrekturen gemacht wurden und die dann analog bei Dir machen.
Und falls es im Netzt noch nichts zu finden gibt, und du schaffst es so, vergiss nicht die korrigierte DSDT unter dem oberen Link einzustellen, damit andere sich nicht dieselbe Arbeit machen müssen.
Und gibts eigentlich einen Grund so einen alten IASL-Compiler zu verwenden?

osmanovic100
14.05.07, 21:21
Gugg doch erstmal ob es net schon eine gefixte DSDT-Tabelle für Deinen Laptop gibt.
leider nicht :(

Ausserdem kanns net schaden, mal nach Deinem Laptopmodell + Linux zu googeln
also, das ist das erste was ich gemacht habe, und dieses Problem habe ich schon seit lange zeit....
erst wenn ich nicht mehr weiter weiß, dann wende ich mich an euch b.z.w an Leute die vielleicht mehr ahnung haben als ich... ;)

vergiss nicht die korrigierte DSDT unter dem oberen Link einzustellen

aber natürlich!


Und gibts eigentlich einen Grund so einen alten IASL-Compiler zu verwenden?
werde mit neure version von IASL versuchen
DANKE!



Du schreibst nachts um 2 einen Beitrag und beschwerst dich noch am selben Tag das dir keiner hilft?
wie gesagt Linux-Helfer waren schon aktiver.
du hast aber Recht! sorry das ich (manchmal) übetreibe ;)


Noch ärgerlicher, dafür kann aber Linux nichts, ist, dass Systeme mit fehlerhaften DSDTs verkauft werden - auch von Herstellern, die selbst im ACPI-Konsortium sitzen
richtig!
die frage ist, wieso kann Microsoft betriebsysteme damit umgehen und GNU/Linux nicht?

Vergleich mal diese DSDT mit deiner --> http://www.michael-prokop.at/computer/sony/dsdt.dsl
ich weiß echt nicht, wie ich mit diese dsdt vergleich, und meine dsdt z.b PIRA korrigiere "Or" dürch "Store" ersetzen, paar änderungen gemacht... hat nichts gebracht b.z.w von "31 error" wurde "45 error" ;(

wenn jemand ahnung davon hat, dann bitte um hilfe :(

ich würde diese laptop auch verkaufen und ein anderes kaufen, nur akku hält bei diesen Laptop 4Std! (4600mAh), hat alles was ich brauche u.s.w ein problem habe ich damit und das ist standby!
und wenn ich es bei Ebay zum verkaufen anbiete, kriege ich vielleicht 200€ (viellleicht noch weniger) da sage ich nä danke ebay-käufer....!

wenn ich dann für 200€ ein anderes kaufe, finde ich bestimmt kein laptop der noch super-gute akku hat, das heißt: dann muss ich noch super teures akku dazu kaufen u.s.w (kann ich mir gleich neuen kaufen, und dafür habe ich kein geld)
also was bleibt mir übrig? nein bitte kein Windoof!
besser: nach lösung bei linuxforen.de suchen ;) und nach erfolg, sich herzlich bedanken, oder? ;)

Gruss,
Osmanovic

rkauskh
14.05.07, 22:58
Hi

Wir wissen immer noch nicht von welchem Laptop wir reden? Eventuell gibt es einen anderen Verursacher für den Hänger aus dem Standby und der Bösewicht ist bereits hinlänglich bekannt?!?

Mein Hinweis zielte vor allem auf die Zeilen 530-551. Dort wird ein Device PIB definiert das ein Feld PIRA enthält. Wenn ich den Kompiler richtig verstehe, meckert er nicht über die OR-Funktion, sondern das das Device nicht existiert bzw. nicht definiert wurde.

osmanovic100
14.05.07, 23:54
Hallo rkauskh,


Wir wissen immer noch nicht von welchem Laptop wir reden?
Mitac 7521


Eventuell gibt es einen anderen Verursacher für den Hänger aus dem Standby und der Bösewicht ist bereits hinlänglich bekannt?!?
:confused:
ich benutze ubuntu (Feisty)
in /etc/default/acpi-support
mit:

MODULES_WHITELIST="ath_pci"
RESTART_IRDA=true
funktioniert nur 1x
bei 2x wacht es nich mehr auf...

glxgears zeigt schon bei 1x nichts? b.z.w opengl geht dann nicht mehr (
grafik onboard sis630


Mein Hinweis zielte vor allem auf die Zeilen 530-551. Dort wird ein Device PIB definiert das ein Feld PIRA enthält. Wenn ich den Kompiler richtig verstehe, meckert er nicht über die OR-Funktion, sondern das das Device nicht existiert bzw. nicht definiert wurde.

es gibt nichts mit 530 oder 551 error...
das ist meine dsdt:
http://binpaste.pastebin.ca/488218

und das sind die aktuelle error's (jetzt mit Feisty):
http://binpaste.pastebin.ca/488224

Gruss,
Osmanovic

buzz768
15.05.07, 09:37
die frage ist, wieso kann Microsoft betriebsysteme damit umgehen und GNU/Linux nicht?

Da ich mich mit der Thematik nicht auskenne, wieder ein Zitat [1]:


Fehlerhafte Tabellen führen besonders unter alternativen Betriebssystem wie Linux oder xBSD zu Problemen, da einige Hauptplatinenhersteller ihre Tabellen nur unter Microsoft Windows testen. Die Microsoft-ACPI-Implementation ist dafür bekannt, an einigen Stellen nicht zeichengetreu den Standard zu befolgen, so dass eventuelle Probleme den Herstellern nicht auffallen. Die zwei häufigsten Fehler sind, dass die Tabellen davon ausgehen, dass die Hauptplatine in jedem Fall nur unter Microsoft Windows laufen wird oder sie in bestimmten Funktionen keinen Wert zurückgeben (impliziter Return). Die ACPI-Implementationen der freien Betriebssysteme müssen um diese Fehler herumarbeiten.

[1] http://de.wikipedia.org/wiki/ACPI

Psycho Dad1
16.05.07, 22:03
dsdt.dsl 2770: }
Error 1093 - ^ syntax error, unexpected '}', expecting $end


Die letzte Zeile, also die letzte geschweifte Klammer sollte entfernt werden, dann sinds nur noch 36 errors :-)

osmanovic100
16.05.07, 22:20
Die letzte Zeile, also die letzte geschweifte Klammer sollte entfernt werden, dann sinds nur noch 36 errors :-)

@Psycho Dad1
Danke!

bleibt nur noch 35 errors :(


dsdt.dsl 145: Method (\_WAK, 1, NotSerialized)
Warning 2078 - ^ Reserved method must return a value (_WAK)
dafür gibt es auch lösung:
http://wiki.ubuntuusers.de/acpi-fix?highlight=%28acpi-fix%29

also, wer traut sich an meine dsdt? :)

Psycho Dad1
16.05.07, 22:30
Nee, 36 errors, das in Zeile 145 ist ja nur eine Warnung.

osmanovic100
16.05.07, 22:32
Nee, 36 errors, das in Zeile 145 ist ja nur eine Warnung.
stimmt!

also nuuur noch, 36 errors :(

Psycho Dad1
16.05.07, 23:26
Hab nochmal n bissle geguckt und mit meiner verglichen.
Also wenn ich die geschweifte Klammer am Ende wieder hinsetze und das

"Device (MOD)"

in Zeile 1425 durch

"Device (MODM)"

ersetze und die Warnung fixe, lauft es einwandfrei ohne errors durch.
Wenn ich mal so rumgoogle finde ich auch keine DSDT mit "Device (MOD)" ausser Deiner :-) Aber dafuer einige mit "Device (MODM)" gefolgt von aehnlichem Code.
Eigentlich geht so ziemlich alles mit 0 bis 4 Buchstaben, nur eben nicht "Device (MOD)"
An der sonstigen Syntax im Vergleich zu meiner DSDT kann ich in der Sektion nichts verdaechtiges finden
Sieht dann so aus:

http://familieriedel.fa.funpic.de/dsdtfixed.dsl

Allerdings kompilierts auch, wenn man die ganze Sektion entfernt, das kann aber net gut sein.
Ob das so bootet, irgendwelche Probleme behebt, der Laptop explodiert oder gar Windows installiert wird, kann ich leider net sagen.

Psycho Dad1
17.05.07, 14:22
Aja und ein Biosflash könnte auch helfen, wäre sogar die bessere Lösung.
Dann aber die DSDT neu machen.

osmanovic100
17.05.07, 20:14
"Device (MODM)"

nur ein buchstabe "M" (wie Magisch) und alle errors sind weg:rolleyes:

@Psycho Dad1
du bist ein genie!
Danke! Danke! Danke! :)

Gruss,
Osmanovic

Psycho Dad1
17.05.07, 22:49
Danke, aber ob das die optimale Lösung war, weiß ich nicht.
Bringt es irgendwas, mit dieser geänderten DSDT zu booten?
Eine DSDT, die ohne errors kompiliert, muss ja nicht heißen, das jetzt alles funktioniert.
Bei meinem Laptop hat das fixen der Compile-Errors noch keine Probleme gelöst.
Erst einige andere Änderungen der DSDT.

osmanovic100
18.05.07, 00:11
Bringt es irgendwas, mit dieser geänderten DSDT zu booten?
es scheint alles zu gehen, das Problem mit hibernate ist jetzt gelöst.
Ich habe 5x hintereinander den laptop mit hibernate schlafen gelegt und er wachte jedes mal auf... :)


das einzige problem was ich jetzt habe ist, das opengl nach aufwachen nicht mehr geht...?

Gruss,
Osmanovic