Nachdem ich mit der tollen Anleitung aus dem Wiki eine DSDT für meinen Desktop gepatcht habe, wollte ich mich an eine für den kleinen Lenovo X230 machen.
So bin ich vorgegangen:
1) DSDT und SSDT-Files aus dem Clover-F4 Dump in ein Verzeichnis kopiert.
2) Alle gemeinsam (nur die DSDT und SSDT) mit iasl-Compiler von RehabMan und Terminal-Befehl
"iasl -da -dl DSDT.aml SSDT*.aml"
in *.dsl Dateien umgewandelt .
Dann nur noch mit den *.dsl Dateien weitergearbeitet.
3) Zuerst geschaut, ob die DSDT und die SSDT´s (SSDT-0 ... SSDT-4) fehlerfrei sind. Es gibt auch noch einige SSDT´s mit einem "x" im Namen (SSDT-5x ... SSDT-7x), die interessieren hier jedoch nicht weiter.
Nur SSDT-3 hatte Fehler, die habe ich mit "Remove_PSS placeholders" aus RehabMans Laptop-Verzeichnis gepatcht. Hier hilft probieren, welcher Patch die Fehler beseitigt.
Ab jetzt habe ich einen fehlerfreien Satz DSDT/SSDT´s für den X230 als dsl-Dateien, die die Ausgangsbasis für alles weiter bilden.
4) Versucht zu verstehen, um was die SSDTs sich eigentlich kümmern (Nr. 0 "Brightness", Nr. 1 "?", Nr. 2 "SATA" und alle weiteren "CPU").
5) Jetzt zum eigentlichen DSDT-Patchen:
Die DSDT habe ich mit den "Laptops-Rehabman" Fixes gepatcht, und zwar
Allgemein:
"Fix _WAK Arg0 v2"
"HPET Fix"
"SMBUS Fix"
"IRQ Fix"
"RTC Fix"
"OS Check Fix" für Windows 7 und 8
"Fix Mutex with non-zero SyncLevel"
"Add IMEI"
dann erstmal als *.dsl gesichert, dann in *aml compiliert (save as ...) und angewendet (EFI/Clover/patched).
Anmerkung 1: ("EHC1 to EH01" und "EHC2 to EH02" habe ich mit "Clover DSDT-Patches" eingesetzt", da ich keinen einzelnen Patch im Laptop-Verzeichnis von RehabMan gefunden habe)
Anmerkung 2: Ohne den HPET Fix gibts bei mir Kernel-Panic "No HPETs available...".
Jetzt kommen die spezifischen Patches:
Batterie-Patch:
"Lenovo X220"
zugefügt. Und getestet.
Dann Power-Management (dies passiert über eine neue SSDT):
mit "ssdtPRgen.sh" von Piker-Alpha die SSDT erzeugt.
In den EFI/Clover/patched zur DSDT gelegt und getestet.
Hier erstmal aufgehört.
Ton habe ich mit AppleALC.kext, Lilu.kext und Layout ID 29. Interessanterweise ohne den FixHDA_8000 in Clover!!
Brightness versucht mit IntelBacklight.kext und Clover-Acpi-Patch "AddPNLF_1000000". Das bringt zwar den Schieberegler im Monitormenü, aber noch keine Veränderung. Ich glaube, 10.12.4 hat den Kext gebrochen(?).
Die beiden Funktionstasten F8 und F9 können über DSDT-Eintrag zum Arbeiten gebracht werden.
Sleep: offenes Problem. Der Kleine wacht auf, findet alles scheisse bescheiden und zeigt mir den Beachball.
Ansonsten: DSDT-fiddeln is ne tolle Sache.
Edit: Ich bin nach unserem Berliner Stammtisch auf ein Problem aufgelaufen, was wahrscheinlich(?) mit dem Brightness-Patch und IntelBacklight.kext zu tun hat. Nach einigen Fummeln wg. Sleep konnte ich die EFI nicht mehr mounten. Dann noch schlimmer: Beim Booten wurde der Schirm schwarz und aus. Konnte zwar -s booten, aber immer noch keine EFI. Das alte Festplattenprogramm zeigte bei Verify und Repair mit exit=0 das alles in Ordnung ist. Nur kein mounten. USB-EFI konnten auch nicht gemountet werden.
Neuinstallation und das gleiche passierte mit 10.12 (dort veränderte aber der Helligkeitsregler immerhin die Helligkeit) und auch mit El Capitan.
Habe (1) die DSDT und die SSDT´s noch mal auf Konsistenz bzgl. der Umbenennung gecheckt (GFXO->IGPU und PCIO.VID->PCIO.IGPU) und (2) auf den "AddPNLF_1000000"-Patch mit IntelBacklight.kext verzichtet.
Läuft jetzt wieder auf 10.12.4 ohne Helligkeitsverstellung. Mal sehen, ob der Fehler nochmal kommt.