Podstawy patchowania DSDT

Zestaw poradników który pomoże zacząć Ci z DSDT i SSDT.
Awatar użytkownika
Alpha01
Hardcore Hackintosher
Posty: 3654
Rejestracja: 21 kwie 2019, 18:04
Lokalizacja: Silesia Superior

Podstawy patchowania DSDT

Post autor: Alpha01 »

Wstęp ogólny inspirowany tekstem od al6042
Wstęp ten jest próbą przedstawienia podstaw patchowania DSDT.


Część 1

Uwagi!
• Używaj aktualnej wersji MacIASL ze zaktualizowanym IASL

• Ważne jest również, aby wiedzieć, które urządzenia są faktycznie zainstalowane w DSDT. W tym celu polecam sprawdzenie stron internetowych producentów zgodnie ze specyfikacjami odpowiednich płyt lub skorzystanie z menedżera DPCI: https://www.hackintosh-forum.de/index.p ... post234134

• W niektórych sytuacjach może być potrzebna jeszcze bardziej szczegółowa kontrola podzespołów. W tym celu polecam IORegistryExplorer. Dzięki niemu może pokazać dokładną „lokalizację” w systemie.

• Wyodrębnianie DSDT.aml z działającego BIOS odbywa się poprzez naciśnięcie klawisza F4 w menu Clovera

- Powoduje to wkopiowanie DSDT.aml wraz z pakietem innych plików aml do folderu /EFI/CLOVER/ACPI/origin
- Ważne: Naciśnięcie klawisza F4 nie daje żadnej informacji o wkopiowaniu tych plików, ale możesz być pewny że tam są

• Nigdy nie patchuj pliku bezpośrednio w folderze /origin, ale skopiuj go na pulpit lub do innej wybranej lokalizacji

• Aby ostatecznie załatany DSDT mógł być użyty, musi być przeniesiony do folderu /EFI/CLOVER/ACPI/patched i system musi zostać ponownie uruchomiony.

UWAGA: 

Nie ma nigdy gwarancji bezbłędności plilków DSDT. Ponadto funkcjonalność Clovera została na tyle rozszerzona w ostatnich latach, że w wielu wypadkach nie są wymagane już poprawki DSDT.

1. Możliwe błędy w DSDT

Po pierwsze należy sprawdzić DSDT pod kątem błędów przed rozpoczęciem poprawek. Odbywa się to za pomocą funkcji „Kompiluj” w MaciASL. 
Jeśli nie pojawią się żadne błędy, wszystko jest w porządku i możesz kontynuować. 

Niestety, niektóre oryginalne DSDT zawierają błędy. 

Przykład 1:
Występują następujące błędy:
1.jpg
1.jpg (35.51 KiB) Przejrzano 6149 razy
 

są to na zielono zaznaczone elementy
 
2.jpg
2.jpg (72.44 KiB) Przejrzano 6149 razy
3.jpg
3.jpg (29.32 KiB) Przejrzano 6149 razy
Jeśli usuniesz wpisy „Arg” zaznaczone na zielono (usuwając te linie) i ponownie skompilujesz, wynikiem będzie usunięcie błędu z linii 14127 i nie będzie go już na liście w czasie kolejnej kompilacji:
4.jpg
4.jpg (66.7 KiB) Przejrzano 6149 razy

Przykład 2:

Występuje następujący błąd:
5.jpg
5.jpg (32.84 KiB) Przejrzano 6149 razy
są to na zielono zaznaczone elementy
6.jpg
6.jpg (91 KiB) Przejrzano 6149 razy

Gdzie „Zero” przechodzi ponad 119 linii. 
Usuwając te linie i ponownie kompilując 
wynik byłby: 

7.jpg
7.jpg (59.61 KiB) Przejrzano 6149 razy

Pamiętaj, że są to tylko przykłady, a wyniki po usunięciu tych błędów mogą się oczywiście różnić lub zawierać więcej błędów.  :D Ha ha

Trzeba by było je dalej analizować, zanim będzie można kontynuować. 
Na niektóre błędy istnieją poprawki w patchach.

Część 2

Alternatywnie dla wszystkich chipsetów Skylake (SKL), Kabylake (KBL) i Coffeelake (CFL):

1. Jeśli posiadasz to wyłącz port szeregowy w BIOSie .... Zdecydowana większość tego nie używa i oszczędza dodatkowy patch w Clover.

2. Zmień nazwę HDAS na HDEF jeśli konieczne (za pomocą funkcji „Znajdź / Zamień” -> Aby OSX mógł nastawiać Onboard-Audio samodzielnie.
8.jpg
8.jpg (399.38 KiB) Przejrzano 6149 razy
3. Zmień nazwę HECI na IMEI (za pomocą funkcji „Znajdź / Zamień” dla wszystkich wpisów) -> Aby OSX mógł nastawiać HDMI-Audio samodzielnie. Podobnie jak powyżej.

4. łatka na płytę główną serii 9 - (UWAGA: jeśli nie istnieje dla twojej płyty wybierz poprawkę innej, podobnej płyty) lub
1. Pod “SourceForge” -> „Insert DTGP”
2. Pod „General” -> “Basic Apple Device Renames”.  UWAGA: ta poprawka może nie być dostępna.

3. W obszarze „Intel9” -> sprawdź poprawki i użyj ich w razie potrzeby

5. Niektóre łaty z serii Intel9 mają pewne stałe identyfikatory urządzeń, które dla serii SKL, KBL i CFL nie powinny być wykorzystywane

6. W sekcji „Laptopy” -> „RTC Fix”

7. W sekcji „Laptopy” -> „Sprawdzanie systemu operacyjnego” (wszystkie = Win Vista, Win 10, Win 8, Win 7 i Linux)

8. W sekcji „Laptopy” -> „IRQ Fix”

9. W sekcji „Laptopy” -> „Zmień nazwę GFX0 na IGPU”, jak pokazano powyżej w foto 8, w celu prawidłowego rozróżnienia grafiki wewnętrznej / zewnętrznej

10. W obszarze „Intel 9” -> sprawdź łaty i dodaj je, jeśli to konieczne

11. W obszarze „HDMI-9Series” -> „AMI-HD4600-AMD-Nvidia-A1” ... UWAGA: Tylko task 1, wszystkie pozostałe psują już wcześniejsze ustawienia. Służy do prawidłowej alokacji możliwych wyjść zewnętrznej grafiki i przygotowania do dźwięku HDMI poprzez kartę graficzną

12. W obszarze „General” -> „Shutdown Fix -%” dla kart Asus lub GA -Nazwa jest jasna ... Dla firmy Intel, jeśli problem istnieje


13. Sprawdź wpisy „Device (HDEF)” i „Device (GLAN)” i użyj załączonych przykładowych plików, aby dodać brakujące wpisy „_DSM” lub wprowadzić dane odpowiedniego układu audio lub LAN.

Część 3

2. Standardowy przebieg poprawek DSDT dla komputerów z chipsetami serii 9: 


1. bezpośrednia lub przybliżona łatka dla płyty głównj (UWAGA: Jeśli po użyciu przybliżonej poprawki nadal występują błędy, wybierz poprawkę innej, podobnej płyty) lub:
a. Pod „SourceForge” -> „Insert DTGP”
b. Pod „General” -> „Basic Apple Device Renames” - UWAGA: (może nie być dostępna)
c. W obszarze „Intel9” -> Krótko sprawdź poprawki i użyj ich w razie potrzeby
2. W sekcji „Laptops” -> „RTC Fix”
3. W sekcji „Laptops” -> „OS Check Fix” (wszystkie = Win Vista, Win 10, Win 8, Win 7 i Linux)
4. W sekcji „Laptops” -> „IRQ Fix”
5. W sekcji „Laptops” -> „Zmień nazwę B0D3 na HDAU” dla dźwięku HDMI w grafice zintegrowanej
6. W sekcji „Laptops” -> „Zmień nazwę GFX0 na IGPU”, jak wspomniano powyżej, w celu prawidłowego rozróżnienia grafiki wewnętrznej / zewnętrznej
7. W sekcji „Intel 9” -> sprawdź łaty na krótko, jeśli to konieczne, użyj „USB Power”, jeśli przez USB nie ma wystarczającej mocy.
8. W sekcji „HDMI-9Series” -> w zależności od wbudowanego procesora i jego wewnętrznej grafiki ... „AMI-HD4600-AMD-Nvidia-A1”, „AMI-HD5500-NUC-BRIX” lub „AMI-HD6000 + -AMD-Nvidia-A1
9. W sekcji „Graphics” -> „MEI - Intel Haswell” dla lepszej obsługi wewnętrznej grafiki 
UWAGA: zmień nazwę urządzenia na „Urządzenie (IMEI)” , w przeciwnym razie obsługa dźwięku HDMI może nie działać Jeśli w DSDT jest już „Urządzenie (HECI)” , należy je usunąć, ponieważ IMEI i HECI współdzielą obszar pamięci„Nazwa (_ADR, 0x00160000)”, w przeciwnym razie mogą wystąpić inne trudności.
10. W obszarze „General” -> „Shutdown Fix - %” dla kart Asus lub GA Nazwa jest jasna ... Dla firmy Intel, jeśli problem istnieje
11. W obszarze „General” -> „USB - Device Renames for OSX 10.11”, ponieważ z chipsetami z serii 9 USBInjectAll jest lepiej obsługiwane.
UWAGA: Komunikaty o błędach mogą wystąpić, jeśli wartości „EHC1” lub „EHC2” nie zostały zmienione na „EH01” lub „EH02” . Można to skorygować za pomocą prostej funkcji „Znajdź / Zamień” bezpośrednio w Maciasl.
12. Sprawdź wpisy „Device (HDEF)” i „Device (GLAN)” i użyj załączonych przykładowych plików, aby dodać brakujące wpisy „_DSM” lub wprowadzić dane odpowiedniego układu audio lub LAN.

-----

W następnym poście opiszemy przykład pracy w samym programie MaciASL, skąd biorą się patche i jak je zastosować. Oraz przykład usuwania błędów za pomocą patcha.

(Tekst jest uproszczonym zarysem, wersją alfa :P i może zawierać błędy. Jeśli znajdziesz powiadom mnie)
Gigabyte Z390 M Gaming, Core i7- 9700K, PowerColor RX 5700 Red Dragon, 16GB Crucial Ballistix Sport 3000MHz
Bootloader OC
Awatar użytkownika
DKnoto
Hardcore Hackintosher
Posty: 1162
Rejestracja: 05 maja 2019, 21:01
Lokalizacja: Niemcz

Re: Podstawy patchowania DSDT

Post autor: DKnoto »

Altemirabelle w pierwszym przykładzie zaakcentowałbym, że „usunięcie Arg0...Arg3 spowodowało usunięcie błędu z linii 14127 i nie już nie będzie go na liście w czasie kolejnej kompilacji. Mogą oczywiście pojawić się nowe błędy co widać na poniższym zrzucie ekranu:” W tej chwili można pomyśleć, że usunięcie Arg0...Arg3 z linii 14126 spowodowało błąd w linii 4010 i trzeba doczytać do końca akapitu aby to zrozumieć :-)

Desktop: Dell OptiPlex 7040 | Intel Core i7 6700 | HD 530 | AMD Radeon FirePro W5100 | 24GB RAM
  • SSD/M.2 WD Black SN750 1TB: macOS Catalina 10.15.7 (19H1011)
  • SSD/SATA Samsung 850 EVO 120 GB: macOS High Sierra 10.13.6 (17G14042)

Awatar użytkownika
DKnoto
Hardcore Hackintosher
Posty: 1162
Rejestracja: 05 maja 2019, 21:01
Lokalizacja: Niemcz

Re: Podstawy patchowania DSDT

Post autor: DKnoto »

Co do portu szeregowego to zamieniłbym „Nikt tego nie używa” na „Zdecydowana większość tego nie używa”, z własnego doświadczenia wiem, że tego się nadal używa :-)

Desktop: Dell OptiPlex 7040 | Intel Core i7 6700 | HD 530 | AMD Radeon FirePro W5100 | 24GB RAM
  • SSD/M.2 WD Black SN750 1TB: macOS Catalina 10.15.7 (19H1011)
  • SSD/SATA Samsung 850 EVO 120 GB: macOS High Sierra 10.13.6 (17G14042)

Awatar użytkownika
DKnoto
Hardcore Hackintosher
Posty: 1162
Rejestracja: 05 maja 2019, 21:01
Lokalizacja: Niemcz

Re: Podstawy patchowania DSDT

Post autor: DKnoto »

Dla nie programistów dopisałbym wyjaśnienie co znaczą te sekwencje szesnastkowe na screenshocie z Clover Configuratora przy łatce HDAS na HDEF. To są szesnastkowe reprezentacje znaków w kodzie ASCII:

Kod: Zaznacz cały

0x48  H
0x44  D
0x41  A
0x53  S

0x48  H
0x44  D
0x45  E
0x46  F

Desktop: Dell OptiPlex 7040 | Intel Core i7 6700 | HD 530 | AMD Radeon FirePro W5100 | 24GB RAM
  • SSD/M.2 WD Black SN750 1TB: macOS Catalina 10.15.7 (19H1011)
  • SSD/SATA Samsung 850 EVO 120 GB: macOS High Sierra 10.13.6 (17G14042)

Awatar użytkownika
DKnoto
Hardcore Hackintosher
Posty: 1162
Rejestracja: 05 maja 2019, 21:01
Lokalizacja: Niemcz

Re: Podstawy patchowania DSDT

Post autor: DKnoto »

Moim zdaniem od punktu 4 drugiej sekcji poradnik traci precyzję i przekaz staje się niejasny. Słowa klucze „SorceForge” i „General” stają się oderwane od kontekstu, nie wiem czy nadal mówimy o CloverConfiguratorze czy o czymś innym. Przydałby się kolejny screen zawierający te słowa kluczowe, najlepiej jawnie zaznaczone.

Desktop: Dell OptiPlex 7040 | Intel Core i7 6700 | HD 530 | AMD Radeon FirePro W5100 | 24GB RAM
  • SSD/M.2 WD Black SN750 1TB: macOS Catalina 10.15.7 (19H1011)
  • SSD/SATA Samsung 850 EVO 120 GB: macOS High Sierra 10.13.6 (17G14042)

Awatar użytkownika
Alpha01
Hardcore Hackintosher
Posty: 3654
Rejestracja: 21 kwie 2019, 18:04
Lokalizacja: Silesia Superior

Re: Podstawy patchowania DSDT

Post autor: Alpha01 »

OK, dwa pierwsze punkty poprawiłem. Resztę zostawiam, ponieważ poradnik ten ma na celu jednie zarys problematyki. Nawet uważam go za złożony, jak na pierwszy kontakt z DSDT. W zasadzie większość ze szczegółów można zaraz zapomnieć i przejść do następnego poradnika.
>> macIASL – praktyka.

(Nie jest to mój tekst a jedynie tłumaczenie.)
Gigabyte Z390 M Gaming, Core i7- 9700K, PowerColor RX 5700 Red Dragon, 16GB Crucial Ballistix Sport 3000MHz
Bootloader OC
Awatar użytkownika
DKnoto
Hardcore Hackintosher
Posty: 1162
Rejestracja: 05 maja 2019, 21:01
Lokalizacja: Niemcz

Re: Podstawy patchowania DSDT

Post autor: DKnoto »

Altemirabelle wiem, że to tłumaczenie i dlatego chciałbym aby udało nam się zrobić poradnik kompletny.
Bokiem już mi wyłażą przewodniki, które mają niby drobne luki ale po ich przeczytaniu czuję się bardziej
skołowany niż przed ;-)

Desktop: Dell OptiPlex 7040 | Intel Core i7 6700 | HD 530 | AMD Radeon FirePro W5100 | 24GB RAM
  • SSD/M.2 WD Black SN750 1TB: macOS Catalina 10.15.7 (19H1011)
  • SSD/SATA Samsung 850 EVO 120 GB: macOS High Sierra 10.13.6 (17G14042)

Awatar użytkownika
DKnoto
Hardcore Hackintosher
Posty: 1162
Rejestracja: 05 maja 2019, 21:01
Lokalizacja: Niemcz

Re: Podstawy patchowania DSDT

Post autor: DKnoto »

Czytając drugi przewodnik doszedłem do wniosku, że w tym miejscu można by wyjaśnić dlaczego możemy usunąć linie zawierające te Arg0 i Arg0..Arg3. To części kodu, które są nieosiągalne, są po instrukcji wyskoku z procedury.

Desktop: Dell OptiPlex 7040 | Intel Core i7 6700 | HD 530 | AMD Radeon FirePro W5100 | 24GB RAM
  • SSD/M.2 WD Black SN750 1TB: macOS Catalina 10.15.7 (19H1011)
  • SSD/SATA Samsung 850 EVO 120 GB: macOS High Sierra 10.13.6 (17G14042)

Awatar użytkownika
DKnoto
Hardcore Hackintosher
Posty: 1162
Rejestracja: 05 maja 2019, 21:01
Lokalizacja: Niemcz

Re: Podstawy patchowania DSDT

Post autor: DKnoto »

Do tego poradnika dodam jeszcze jeden pomysł, który z powodzeniem stosuję u siebie.
Pliki *.aml i *.dsl trzymam w repozytorium GIT. Zmiany wykonuję pojedynczo a po
każdej poprawnej zmianie zapisuje to w repozytorium. Niestety jak ktoś nie jest przyzwyczajony
do pracy w konsoli/terminalu to takie podejście może być dla niego zbyt skomplikowane.
Daje to jednak pełną kontrolę nad zmianami i możliwość wycofania się do dowolnej wersji :-)

Desktop: Dell OptiPlex 7040 | Intel Core i7 6700 | HD 530 | AMD Radeon FirePro W5100 | 24GB RAM
  • SSD/M.2 WD Black SN750 1TB: macOS Catalina 10.15.7 (19H1011)
  • SSD/SATA Samsung 850 EVO 120 GB: macOS High Sierra 10.13.6 (17G14042)

Awatar użytkownika
Alpha01
Hardcore Hackintosher
Posty: 3654
Rejestracja: 21 kwie 2019, 18:04
Lokalizacja: Silesia Superior

Re: Podstawy patchowania DSDT

Post autor: Alpha01 »

Jak masz ochotę to zrób poradnik. Ten dział to wymiana doświadczeń. Każdy wpis go wzbogaci.
Gigabyte Z390 M Gaming, Core i7- 9700K, PowerColor RX 5700 Red Dragon, 16GB Crucial Ballistix Sport 3000MHz
Bootloader OC
ODPOWIEDZ