Jump to content
stephanchen

Anleitung für DSDT-Erstellung gesucht

10 posts in this topic

Recommended Posts

hi,

 

ich habe mein dsdt vor langer zeit erstellt und wollte nun, wegen einer neuen grafikkarte, das dsdt nochmal erstellen.

 

dabei sollen noch eine ganze reihe patche in das dsdt hineinwandern.

 

hat jemand eine gute anleitung bezüglich der dsdt-erstellung oder kennt einen link?

 

ich wäre sehr dankbar für die unterstützung.

 

herzlichen gruß

stephan

Share this post


Link to post
Share on other sites
Advertisement

hi,

 

ich habe folgende anleitung genutzt:

Blackosx Anleitung für DSDT

auch hier ist der Link zu finden: Link

 

im acpi patcher habe ich folgende fehlermeldung:

 

[ACPI] ROM is extracted to acpi.xtr

Intel ACPI Component Architecture

AML Disassembler version 20081204 [Dec 4 2008]

Copyright © 2000 - 2008 Intel Corporation

Supports ACPI Specification Revision 3.0a

 

 

Intel ACPI Component Architecture

ASL Optimizing Compiler version 20081204 [Dec 4 2008]

Copyright © 2000 - 2008 Intel Corporation

Supports ACPI Specification Revision 3.0a

 

dsdt.dsl 222: Method (\_WAK, 1, NotSerialized)

Warning 1080 - ^ Reserved method must return a value (_WAK)

 

dsdt.dsl 285: Store (Local0, Local0)

Error 4050 - ^ Method local variable is not initialized (Local0)

 

dsdt.dsl 290: Store (Local0, Local0)

Error 4050 - ^ Method local variable is not initialized (Local0)

 

ASL Input: dsdt.dsl - 5681 lines, 188203 bytes, 2339 keywords

Compilation complete. 2 Errors, 1 Warnings, 0 Remarks, 674 Optimizations

 

kann mir jemand sagen, was die errors bedeuten?

Share this post


Link to post
Share on other sites
hi,

 

ich habe folgende anleitung genutzt:

Blackosx Anleitung für DSDT

auch hier ist der Link zu finden: Link

 

im acpi patcher habe ich folgende fehlermeldung:

 

 

 

kann mir jemand sagen, was die errors bedeuten?

Nutze DSDTSE, da sind die häufigsten Fix§Patch schon beschrieben:

[size=1]
must return a value (_WAK)


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

At the end of the _WAK method, this must be added:

Return(Package(0x02){Zero, Zero})


Example:


Method (_WAK, 1, NotSerialized)
   {
       P8XH (One, 0xAB)
       If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
       {
           If (And (CFGD, 0x01000000))
           {
               If (LAnd (And (CFGD, 0xF0), LEqual (OSYS, 0x07D1)))
               {
                   TRAP (0x3D)
               }
           }
       }

       If (LEqual (RP2D, Zero))
       {
           Notify (\_SB.PCI0.RP02, Zero)
       }

       If (LEqual (Arg0, 0x03)) {}
       If (LEqual (Arg0, 0x04))
       {
           \_SB.PCI0.LPCB.EC.SELE ()
       }

       P8XH (Zero, 0xCD)

       Return (Package (0x02)
       {
           Zero, 
           Zero
       })
   }
[/size]

 

 

[size=1]
Method local variable is not initialized (Local0)




DSDT.dsl 242: Store (Local0, Local0)
Error 4050 – ^ Method local variable is not initialized (Local0)

This error is produced because a variable tries to store it's value in itself.



Original:



 Scope (\_SI)
 {
  Method (_MSG, 1, NotSerialized)
  {
   Store (Local0, Local0)
  }

  Method (_SST, 1, NotSerialized)
  {
   Store (Local0, Local0)
   If (LEqual (Arg0, 0x03)) {}
   If (LEqual (Arg0, 0x01)) {}
  }
 }


Repaired:



  Scope (\_SI)
  {
   Method (_MSG, 1, NotSerialized)
   {
/* Store (Local0, Local0) */      /* <------------ you need to comment this out or enclose on "" the first LOCAL0.*/ 
   }

   Method (_SST, 1, NotSerialized)
   {
/* Store (Local0, Local0) */       /* <------------ you need to comment this out or enclose on "" the first LOCAL0..*/ 
   If (LEqual (Arg0, 0x03)) {}
   If (LEqual (Arg0, 0x01)) {}
   }
  }

Local0 enclosed with "" :

Scope (\_SI)
 {
  Method (_MSG, 1, NotSerialized)
  {
/* Store ("Local0", Local0) */      /* <------------ you need to comment this out or enclose on "" the first LOCAL0.*/ 
  }

  Method (_SST, 1, NotSerialized)
  {
/* Store ("Local0", Local0) */       /* <------------ you need to comment this out or enclose on "" the first LOCAL0..*/ 
  If (LEqual (Arg0, 0x03)) {}
  If (LEqual (Arg0, 0x01)) {}
  }
 }

[/size]

Share this post


Link to post
Share on other sites

Hallo,

 

das beste DSDT Tool kommt aus Spanien und nennt sich DSDTSE.

 

Das mach aber "Leihen" oft Probleme beim Kompilieren. Einfach text copy paste geht da nicht so einfach, bzw. dann streikt der compilre.

 

Dafür gibst ein zweites nettes Tool, das die meisten Kompiler-Fehler bereinigt. DSDTEditor.

 

Beide haben die meisten Patches integriert, DSDTSE hat aber mehr Optionen.

 

Der häufigste Fehler ist, dass Leute vergessen das Chameleon in Bezug auf die DSDT in E/E case sensitive ist.

Also bitte das File DSDT.aml mit Upper Cases, wie hier gezeigt.

 

LG

DSDTEditor.zip

Share this post


Link to post
Share on other sites

Hallo,

 

mal eine Frage zum allgemeinen Verständnis des DSDT.

 

Wovon ist das reine Erstellen des DSDT abhängig? Vom BIOS und von der Hardware?

Oder von Registrierungseinträgen, welche u.U. verkehrt sind (wegen verkehrter Treiber o.ä.) und durch welche deshalb u.U. ein fehlerhaftes DSDT erzeugt wird?

 

Also ich habe mir ein DSDT mit DSDT Patcher Gui erstellen lassen, dann noch DSDTSE was für meinen Grafikchip reingefummelt und das ganze noch von MaLd0n patchen lassen.

http://www.insanelymac.com/forum/index.php?showtopic=235523

 

Aber was ich da so richtig gemacht wird, habe ich noch nicht ganz begriffen.

Kann mal jemand diese ganze Sache für mich entmystifizieren?

Share this post


Link to post
Share on other sites
Hallo,

 

mal eine Frage zum allgemeinen Verständnis des DSDT.

 

Wovon ist das reine Erstellen des DSDT abhängig? Vom BIOS und von der Hardware?

Oder von Registrierungseinträgen, welche u.U. verkehrt sind (wegen verkehrter Treiber o.ä.) und durch welche deshalb u.U. ein fehlerhaftes DSDT erzeugt wird?

 

Also ich habe mir ein DSDT mit DSDT Patcher Gui erstellen lassen, dann noch DSDTSE was für meinen Grafikchip reingefummelt und das ganze noch von MaLd0n patchen lassen.

http://www.insanelymac.com/forum/index.php?showtopic=235523

 

Aber was ich da so richtig gemacht wird, habe ich noch nicht ganz begriffen.

Kann mal jemand diese ganze Sache für mich entmystifizieren?

 

 

Die DSDT Einträge hängen direkt von der Hardware ab. Grundsätzlich hängt das BIOS ja auch von der Hardware ab, genau so wie Regitry Einträge.

 

Es läßt sich natürlich ein bisschen "drehen". Einfachstes Beispiel ist den Namen eines Audio Codecs umzubenennen.

 

Zum "entmystifizieren" muss du ein wenig deiner Zeit aufbringen, und dich in das Thema einlesen. Hier im Forum wirst du genügend Material finden.

 

Cheers

Share this post


Link to post
Share on other sites

http://de.wikipedia.org/wiki/Advanced_Conf...Power_Interface

 

DSDT wird beim Hochfahren aus dem BIOS geladen, und bleibt unverändert, auch wenn man die Hardware ändert ( mit einer Ausnahme: bei einigen Mainboards (z.B. Asus) nach Änderung des Arbeitsspeichers wird eine neue Adresse in DSDT geschrieben. Deswegen eine neue DSDT erzeugen.)

Man kann aber die DSDT an die (neue)Hardware anpassen.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×