Jump to content
oswaldini

[Część 6] Fixy dla notebooków/netbooków oraz PC

Recommended Posts

Fixy dla notebooków/netbooków oraz PC

v1.0 - Pierwsza publikacja

 

SPIS TEMATÓW O MODYFIKACJI DSDT:

 

[Cześć 1] Wydobycie DSDT z naszego sprzętu

[Cześć 2] Podstawowe modyfikacje DSDT

[Cześć 3] Sekcja audio w DSDT

[Cześć 4] Modyfikacja sekcji USB

[Cześć 5] Dopisywanie grafiki do DSDT

[Cześć 6] Fixy dla notebooków/netbooków oraz PC

[Cześć 7] Kosmeytka DSDT + Uciszanie kompilatora

[Cześć 8] Sprawdzenie działania Power Managmentu (SpeedStep)

 

:arrow: 1. Shutdown fix dla Asusa (PC: TAK, NOTE/NET: ?)

Dzięki tej modyfikacji nie potrzebujemy EvOReboot/OpenHaltRestart oraz działa usypianie z przycisku Power (trzeba to jeszcze ustawic w Preferencjach systemowych). Modyfikacja przetestowana przeze mnie na P5Q Pro i działa !

 

Sekcja oryginalna

    Method (_PTS, 1, NotSerialized) 
   { 
       Store (Arg0, DBG8) 
       PTS (Arg0) 
       Store (Zero, Index (WAKP, Zero)) 
       Store (Zero, Index (WAKP, One)) 
       If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) 
       { 
           Sleep (0x0BB8) 
       } 
       Store (ASSB, WSSB) 
       Store (AOTB, WOTB) 
       Store (AAXB, WAXB) 
       Store (Arg0, ASSB) 
       Store (OSFL (), AOTB) 
       Store (Zero, AAXB) 
   }

 

Modyfikacja:

 

Jeżeli nasza skecja nie wyglada tak: Store (Arg0, 0x05) musimy dodać warunek. Po pierwszym "{" w sekcji a przed "Store (Arg0, DBG8)" dodajemy:

If (LEqual (Arg0, 0x05)) {} 
        Else
        {

Na samym koncu dodajemy jeszcze "}", który kończy naszą sekcje.

 

Sekcja zmodyfikowana

    Method (_PTS, 1, NotSerialized) 
   { 
       If (LEqual (Arg0, 0x05)) {} 
        Else
        { 
        Store (Arg0, DBG8) 
       PTS (Arg0) 
       Store (Zero, Index (WAKP, Zero)) 
       Store (Zero, Index (WAKP, One)) 
       If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) 
       { 
           Sleep (0x0BB8) 
       } 
       Store (ASSB, WSSB) 
       Store (AOTB, WOTB) 
       Store (AAXB, WAXB) 
       Store (Arg0, ASSB) 
       Store (OSFL (), AOTB) 
       Store (Zero, AAXB) 
        } 
   }

 

Jeżeli powyższa modyfikacja nie zadziała należy dodać jeszcze modyfikacje nr 3, ktora znajduje się poniżej.

 

:arrow: 2. Shutdown fix dla Gigabyte (PC: TAK, NOTE/NET: ?)

Dzięki tej modyfikacji nie potrzebujemy EvOReboot/OpenHaltRestart oraz działa usypianie z przycisku Power (trzeba to jeszcze ustawic w Preferencjach systemowych).

 

Sekcja oryginalna:

    Method (_PTS, 1, NotSerialized) 
   { 
       Or (Arg0, 0xF0, Local0) 
       Store (Local0, DBG1) 
       OSTP () 
       If (LEqual (Arg0, 0x05)) 
       { 
           Store (0x99, SMIP) 
           Store (One, \_SB.PCI0.PX40.AG3E) 
           Store (Zero, SLPE) 
           Sleep (0x10) 
       } 
       Else
       { 
           Store (Zero, \_SB.PCI0.PX40.AG3E) 
       } 
   }

 

Modyfikacja:

Usuwamy z sekcji "If (LEqual (Arg0, 0x05))":

            Store (0x99, SMIP) 
           Store (One, \_SB.PCI0.PX40.AG3E)

Zostawiamy tylko:

            Store (Zero, SLPE) 
           Sleep (0x10)

 

Jeżeli nasza sekcja się różni, usuwamy wszystko z pomiędzy środkowych { } i kopiujemy zawartość przykładu.

 

Sekcja zmodyfikowana:

    Method (_PTS, 1, NotSerialized) 
   { 
       Or (Arg0, 0xF0, Local0) 
       Store (Local0, DBG1) 
       OSTP () 
       If (LEqual (Arg0, 0x05)) 
       { 
            Store (Zero, SLPE) 
            Sleep (0x10) 
        } 
       Else
       { 
           Store (Zero, \_SB.PCI0.PX40.AG3E) 
       } 
   }

 

Jeżeli powyższa modyfikacja nie zadziała należy dodać jeszcze modyfikacje nr 3, ktora znajduje się poniżej.

 

:arrow: 3. Power button fix (PC: TAK, NOTE/NET: TAK)

 

Sekcja oryginalna:

Device (PWRB) 
       { 
           Name (_HID, EisaId ("PNP0C0C")) 
           Name (_UID, 0xAA) 
           Name (_STA, 0x0B) 
       }

 

Modyfikacja:

 

_HID zmieniamy na _CID

 

Sekcja zmodyfikowana:

Device (PWRB) 
{ 
    Name (_CID, EisaId ("PNP0C0C")) 
    Name (_UID, 0xAA) 
    Name (_STA, 0x0B) 
}

 

Jeżeli ktoś ma coś sprawdzonego i PRZETESTOWANEGO bardzo prosze o dopisywanie z kolejnym numerem wg wzoru:

 

:arrow: NR TYTUŁ (PC: TAK/NIE, NOTE/NET: TAK/NIE)

***ew opis***

 

Sekcja oryginalna:

***

 

Modyfikacja:

 

***opis*** / w

 co dodajemy/usuwamy/zamieniamy
 
Sekcja zmodyfikowana:
[code]***

Share this post


Link to post
Share on other sites

:arrow: 4. LID Fix (PC: NIE, NOTE/NET: TAK)

Ta modyfikacja powoduje wyłączenie usypiania systemu po zamknięciu klapy matrycy. Szczególnie przydatna gdy sleep nie do końca działa poprawnie (przykładowo u mnie podświetlanie ustawia się na 100% i nie da się tego zmienić).

 

Wyszukujemy w IORegistryExplorer ciągu LID. U mnie jest to urządzenie LID0.

 

Sekcja oryginalna:

                   Device (LID0) 
                   { 
                       Name (_HID, EisaId ("PNP0C0D")) 
                       Method (_LID, 0, NotSerialized) 
                       { 
                           Return (LIDS) 
                       } 
                   } 

 

Modyfikacja:

Można w prawdzie usunąć całą sekcję, ale ja polecam ją skomentować. Dzięki temu nie będzie brana pod uwagę podczas kompilacji, ale będziemy mogli łatwo ją przywrócić, na przykład, gdy uda się naprawić problemy ze sleepem.

 

Sekcja zmodyfikowana:

                 /*     Device (LID0) 
                   { 
                       Name (_HID, EisaId ("PNP0C0D")) 
                       Method (_LID, 0, NotSerialized) 
                       { 
                           Return (LIDS) 
                       } 
                   }  */

 

Ważne jest by skomentować wszystkie odwołania do tej sekcji.

Wyszukujemy LID0 i komentujemy wszystkie odwołania odnoszące się do modyfikowanej sekcji:

 

Przykładowe odwołanie:

Przed:

            If (IGDS) 
           { 
               \_SB.PCI0.GFX0.GLID (LIDS) 
              Notify (\_SB.LID0, 0x80) 
           }

 

Po:

            If (IGDS) 
           { 
               \_SB.PCI0.GFX0.GLID (LIDS) 
            //   Notify (\_SB.LID0, 0x80) 
           }

W analogiczny sposób modyfikujemy wszystkie odwołania.

Share this post


Link to post
Share on other sites

:arrow: 5. LID SLEEP Fix (PC: NIE, NOTE/NET: TAK)

Jest to jeden z wielu fixów i w przeciwieństwie do poprzedniego powoduje uśpienie systemu po zamknięciu klapy matrycy. Niestety nie pamiętam czyjego jest autorstwa.

 

Wyszukujemy w DSDT ciągu "PNP0C0D". Na ogół jest to urządzenie LID0.

 

Sekcja oryginalna:

                   Device (LID0) 
                   { 
                       Name (_HID, EisaId ("PNP0C0D")) 
                       Method (_LID, 0, NotSerialized) 
                       { 
                           Return (LIDS) 
                       } 
                   } 

 

Modyfikacja:

Dodajemy ponad Return (LIDS) kod:

                           XOr (LIDS, One, Local0) 
                           If (Local0) 
                           { 
                               Notify (SLPB, 0x80) 
                           } 

 

Sekcja zmodyfikowana:

                   Device (LID0) 
                   { 
                       Name (_HID, EisaId ("PNP0C0D")) 
                       Method (_LID, 0, NotSerialized) 
                       { 
                           XOr (LIDS, One, Local0) 
                           If (Local0)            // sprawdzenie czy klapa zamknięta
                           { 
                               Notify (SLPB, 0x80) 
                           } 
                           Return (LIDS) 
                       } 
                   } 

 

[ Dodano: 2010-12-15, 15:10 ]

:arrow: 6. WAKE Fix (PC: ?, NOTE/NET: TAK)

Naprawia wybudzenie systemu jeśli po uśpieniu musieliśmy 2- lub więcej razy nacisnąć przycisk zasilania aby wybudzić komputer.

 

Wyszukujemy w DSDT ciągu "PNP0C09". Jest to Embedded Controller i u mnie nazywa się Device (H_EC).

 

Fragment oryginalnej sekcji:

               Device (H_EC) 
               { 
                   Name (_HID, EisaId ("PNP0C09")) 
                   Name (_UID, One) 

                                ...

                   Name (_GPE, 0x17) 

                                ...

               } 

 

Modyfikacja:

Dodajemy pod Name (_GPE, 0x17) kod:

                   Name (_PRW, Package (0x02) 
                   { 
                       0x18, 
                       0x04
                   }) 

 

który należy skopiować z Device (PWRB) w swojej DSDT

                   Device (PWRB) 
                   { 
                       Name (_HID, EisaId ("PNP0C0C")) 
                       Name (_PRW, Package (0x02) 
                       { 
                           0x18, 
                           0x04
                       }) 
                   } 

 

Sekcja Device (H_EC) jest długa, więc wybrałem dla ułatwienia miejsce jak w oryginalnym MBP5,1.

Powyższe wartości to przykład działający w Samsungu R510AS02. W Samsungu R780JS03 wygląda to tak:

                   Name (_PRW, Package (0x02) 
                   { 
                       0x1E, 
                       0x04
                   }) 

 

Testowałem z powodzeniem wartość 0x03 zamiast 0x04.

 

Sekcja zmodyfikowana:

              Device (H_EC) 
               { 
                   Name (_HID, EisaId ("PNP0C09")) 
                   Name (_UID, One) 

                                ...

                   Name (_GPE, 0x17) 
                   Name (_PRW, Package (0x02) 
                   { 
                       0x18, 
                       0x04
                   }) 

                                ...

               } 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.