Sechs Paare von 16 Ziffern, die oft mit der Mac-Adresse der Netzwerkkarte übereinstimmen. Es gibt sie jedoch, Meldungen, dass der Dienst mit beliebigen Ziffern arbeitet. Ab der Revision 3051 ist es möglich schreiben Sie UseMacAddr0 und Clover wird die Mac-Adresse Ihres Netzwerks ermitteln Karten. Das Verfahren funktioniert nicht bei jedem, also prüfen Sie. Und das Wichtigste: Wenn Sie sich für iMessage anmelden, handelt es sich um einen kostenpflichtigen Dienst, Sie müssen Geben Sie Ihre echte Bankkarte an, von der Sie mit $1 belastet werden. Wer versucht zu betreten umsonst, erhalten Sie Meldungen wie "Rufen Sie Apple an". Im Jahr 2015 kam ElCapitan 10.11 mit neuen Sicherheitsanforderungen heraus. SIP = Schutz der Systemintegrität. Standardmäßig ist der Schutz aktiviert und erlaubt es Ihnen nicht, Ihre Kext und installieren ihre eigenen Systemdienstprogramme. Um sie zu deaktivieren, gibt Clover Möglichkeit, neue Parameter im NVRAM zu setzen CsrActiveConfig 0x3E7 BooterConfig0x28 Dies sind Bitmasken mit möglichen Bitwerten /* Wurzellose Konfigurationsflags */ #define CSR_ALLOW_UNTRUSTED_KEXTS (1 << 0) #define CSR_ALLOW_UNRESTRICTED_FS (1 << 1) #define CSR_ALLOW_TASK_FOR_PID (1 << 2) #define CSR_ALLOW_KERNEL_DEBUGGER (1 << 3) #define CSR_ALLOW_APPLE_INTERNAL (1 << 4) #define CSR_ALLOW_DESTRUCTIVE_DTRACE (1 << 5) /* name deprecated */ #define CSR_ALLOW_UNRESTRICTED_DTRACE (1 << 5) #define CSR_ALLOW_UNRESTRICTED_NVRAM (1 << 6) #define CSR_ALLOW_DEVICE_CONFIGURATION (1 << 7) #define CSR_ALLOW_ANY_RECOVERY_OS (1 << 8) #define CSR_ALLOW_UNAPPROVED_KEXTS (1 << 9) #define CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE (1 << 10) /* Bitfelder für boot_args->flags */ #define kBootArgsFlagRebootOnPanic (1 << 0) #define kBootArgsFlagHiDPI (1 << 1) #define kBootArgsFlagBlack (1 << 2) #define kBootArgsFlagCSRActiveConfig (1 << 3) #define kBootArgsFlagCSRPendingConfig (1 << 4) #define kBootArgsFlagCSRBoot (1 << 5) #define kBootArgsFlagBlackBg (1 << 6) #define kBootArgsFlagLoginUI (1 << 7) Die Standardwerte entsprechen der Deaktivierung des Schutzes. Wenn Sie aufgrund einer gewissen Paranoia den Schutz aktivieren müssen, setzen Sie ihn auf 0 (Null). Die folgenden drei Parameter sind ausgenommen, da sie vom System aus der Steuerung eingestellt werden müssen Clover-Panels, so dass es keinen Konflikt gibt. MountEFI Ja. Dieser Parameter teilt dem Startskript mit, dass es ESP (EFI System Partition) Partition. Diese Option ist für die meisten Menschen unnötig oder temporär, sollten Sie Nein in die Konfig schreiben und ggf. Ja in das Menü eintragen. Ein weiterer möglicher Wert ist disk1, wenn Sie mehrere Festplatten haben und jede Festplatte ihre eigene Partition hat EFI. LogEveryBootJa. Das Download-Protokoll ist für Entwickler erforderlich, und normale Benutzer können setzen und Nein. Hier anstelle von Ja kann eine Zahl sein, wie viele Protokolle im System gehalten werden sollen. LogLineCount 3000 die Anzahl der Zeilen in diesem Protokoll, dann werden die alten Zeilen durch die neuen ersetzt, so dass es keine unbegrenztes Wachstum dieser Datei. Es ist nicht wirklich interessant, diese Protokolle zu akkumulieren. Sie können das letzte Protokoll immer mit dem Befehl $ bdmesg > ~/Desktop/boot-log.txt DisableDrivers DisableDrivers . CsmVideoDxe VBoxExt4 . Der Sinn dieses Abschnitts ist es, verschiedene config.plist in verschiedenen OEM-Ordnern zu haben, aber da Der Treiberordner wird gemeinsam genutzt, Sie müssen irgendwie unterscheiden, welcher Satz von Treibern auf einem bestimmten eine andere Konfiguration. Der eine braucht z. B. OsxAptioFixDxe, der andere braucht EmuVariableDxe. Veraltet! Ein gemeinsamer Satz wird nun auf allen Boards verwendet. Macken Die Geschichte dieses Abschnitts ist wie folgt. Beginn der Entwicklung von Clover für UEFI Download Dmazar war es, einen Treiber zu entwickeln, um den Speicher zu korrigieren, der zurückgelassen wird UEFI BIOS Aptio (American Megatrend). Der Punkt ist, dass die Allocate-Funktion in diesem Das BIOS weist unten Speicher zu, und um macOS zu starten, müssen Sie den unteren Der Speicher ist frei. Der Konflikt betrifft nicht nur den Speicher, sondern auch die boot.efi Adressvirtualisierung, und es wirkt sich auf Zeiger, Funktionen usw. aus. Nicht im Detail Ich schon, es war nicht meine Aufgabe, es war Dmazar, der Schritt für Schritt alle Konflikte gefunden hat und herausgefunden hat, wie man Erlaubnis. Daraus wurde der Treiber OsxAptioFixDrv.efi. 32- und 64-Bit-Varianten mit allen Unterschieden Adressierung. Ich sollte anmerken, dass dieses Problem nicht mit dem Legacy Clover auftrat, denn in diesem Fall verwendet er Allocate von EDK2, und es allokiert Speicher von oben nach unten. Legacy Clover arbeitet ohne dieseFahrer. Lange Zeit, nachdem Dmazar gegangen war, hat niemand diesen Treiber angerührt, außer vielleicht zu sein, separate einzeilige Ergänzungen wie Free2000. Und so übernahm vit9696 das Redesign die Überholung des Treibers. Als erstes nahm er eine Änderung vor, um die Verwendung von natives NVRAM auf vielen Chipsätzen (BIOS), mit denen es vorher nicht funktioniert hat. А teilte er den Treiber weiter in sinnvolle Teile (Quirks) auf, die nun beliebig aktivieren und deaktivieren, wenn der OpenCore-Lader verwendet wird. Aber auch ein ReddestDream-Programmierer hat sich auf den Weg gemacht und beschlossen, all diese Entwicklungen von OpenCore in einen separaten Treiber OcQuirks.efi, der zusammen mit dem Treiber OpenRuntime.efi, und alle Einstellungen werden in die Datei OcQuirks.plist geschrieben, um alle ist es mit dem Clover-Downloader. Und dann ist da noch mein Umzug. Ich muss alle Quellen in einem Repo haben, damit ich um eine Halbierung durchzuführen. Und da die Lizenz für das Ganze Ihnen erlaubt, den Quellcode zu verwenden in meinem eigenen Kopf, und historisch ist alles in seine historische Heimat zurückgekehrt, ich habe sie kopiert und aktualisiert, so dass anstelle einer separaten .plist-Datei wurde die gleiche clover config.plist verwendet, und diese Einstellungen können auch geändert werden nur von der GUI von Clover aus. Khaki Clover. Version 5.1, Revision 5128 103 Moskau, 2021 Das heißt, wenn Sie nicht sofort booten können, können Sie versuchen, zu diesem Menü zu gehen und um eine Art von Ja-Nein-Einstellung zu ändern. Nun die Details zu jedem Element. Es werden die Standardwerte angegeben. AvoidRuntimeDefrag. Verhindert die Speicherdefragmentierung für Runtime-Dienste wie die NVRAM-Unterstützung. Empfohlen für alle außer Apple und VMware. DevirtualiseMmio . Entfernt das Laufzeitattribut aus einigen bekannten MMIO-Bereichen. Nicht empfohlen für Systeme, die älter als Sandy Bridge sind. Die Liste der bekannten Regionen kann noch ergänzt werden im Abschnitt MmioWhitelist wählt aus. Nach meiner Beobachtung ist sie jedoch immer deaktiviert. Beansprucht Eine Notwendigkeit für den Z390-Chipsatz. MmioWhitelist . Die Liste der Regionen ist als ein Array von Dictionaries definiert . Kommentar. Dies ist die Region. Adresse 0xffe00000 Aktiviert. . DisableSingleUser . Verbietet die Verwendung des Befehlszeilenmodus, da dieser nicht sicher ist. ;) Khaki Clover. Version 5.1, Revision 5128 104 Moskau, 2021 DisableVariableWrite . Verbietet den Schreibzugriff von McOS auf NVRAM, zur Sicherheit. DiscardHibernateMap . Verwenden Sie die alte Speicherkarte beim Aufwachen aus dem Ruhezustand. Verwendung, nur wenn Sie sicher sind, dass es Ihr Fall ist. Fast immer nicht. EnableSafeModeSlide . Standardmäßig ergibt das Booten im abgesicherten Modus slide=0. Dieser Patch ermöglicht einen anderen Wert, der in der Auswahl ProvideCustomSlide angegeben ist. ProvideCustomSlide . Ob die automatische Berechnung des slide=***-Wertes verwendet werden soll oder nicht. Der Bedarf kann gesehen werden aus dem Protokoll, wenn es eine OCABC-Meldung gibt: Nur N/256 Dia-Werte sind verwendbar! ProvideMaxSlide 0 Wert von 1 bis 254, für den obigen Fall. Der Wert wird auf 255 gesetzt durch Standardwerte, und dies kann zu Fehlern bei der Speicherzuweisung führen. EnableWriteUnprotector . Entfernt das Schreibschutz-Bit auf der Seite Runtime-Dienste. Aufgrund der Unsicherheit dieses Pick gibt es eine weitere RebuildAppleMemoryMap. Das heißt, für Systeme, die älter als 2018 sind, setzen wir EnableWriteUnprotector - True RebuildAppleMemoryMap - False SyncRuntimePermissions - False Und bei neueren Geräten, die MATS unterstützen, wenn es eine solche ACPI-Tabelle im BIOS gibt EnableWriteUnprotector - False RebuildAppleMemoryMap - True SyncRuntimePermissions - True ForceExitBootServices . Wiederholen Sie ExitBootServices mit einer neuen Speicherkarte. Dies ist der Punkt, an dem Kernel- und Kext-Patches auftreten. Verwenden Sie nur, wenn Sie sicher sind, was Sie tun. ProtectMemoryRegions . Ändert Attribute einiger Regionen, wenn es einen Konflikt zwischen den Konzepten von macOS und BIOS. Dieser Pick enthält mehrere Korrekturen, darunter eine von mir persönlich entwickelte, eine, die den CSM-Bereich schützt. Insbesondere, wenn Ihre Grafikkarte nicht über UEFI VBIOS, sollte dieser Pick aktiviert werden. Im OsxAptioFix3Drv-Treiber ist es dagegen ist definitiv eingeschaltet und hat noch nie Beschwerden verursacht. Solange sie jedoch durch Standard. ProtectSecureBoot . Khaki Clover. Version 5.1, Revision 5128 105 Moskau, 2021 Schützt die Verschlüsselungsschlüssel vor dem Überschreiben durch das Betriebssystem. Sichere Technik Boot, das wir irgendwie nicht besonders brauchen. Die Notwendigkeit dieses Picks wird beobachtet an einige Insyde BIOSe. Die anderen brauchen es nicht. ProtectUefiServices . Einige BIOSe wie VMware versuchen, Zeiger auf Runtime-Dienste umzuschreiben. Wir brauchen sie nicht, also schützen wir sie. Jemand namens Rediskin behauptet, es sei für Z390-Chipsatz. ProvideConsoleGopEnable . Erzeugt ein GOP-Protokoll für den Konsolenmodus, d. h. für Textausgaben, die nicht in Text Modus, wie Sie es aus dem PC-BIOS gewohnt sind, sondern im grafischen Modus, wie es Apple macht. Kirk ist unbedingt erforderlich. RebuildAppleMemoryMap . Erzeugen Sie eine macOS-kompatible Speicherkarte. Die Sache ist die, dass Apple eine etwas andere Ideen, wie und was zu tun ist, als in unserem UEFI-BIOS. Das Problem ist jedoch, dass unsere die Speicherkarte zu unserer Hardware passt. Deshalb schalten wir die Kirche ab. Die anderen Picks machen einen notwendigen Teil der Arbeit. Dieser Pick ist eine Art Ersatz EnableWriteUnprotector für Systeme, die MAT unterstützen. Für diese Auswahl muss auch SyncRuntimePermissions aktiviert sein. Wir haben es jedoch in der Standard. Siehe EnableWriteUnprotector pick SetupVirtualMap . Kirk befasst sich mit der Reihenfolge, in der virtuelle Adressen zugewiesen und verwendet werden. Einige BIOSe, wie z. B. OVMF, unterstützen diesen Pick nicht. Hmmm, warum sollte das OcQuirks.efi-Treiber auf einem System mit OVMF?! Er funktioniert auch ohne ihn, genau wie der alte Clover. Schalten wir es also ein. SignalAppleOS . Sagt dem BIOS, dass wir ein macOS-System laden, obwohl wir Windows laden. Es muss einige Macbooks, aber nicht wir. Wird vielleicht von OpenCore benötigt, aber nicht von Clover. SyncRuntimePermissions . Aktualisiert die Berechtigungsflags im Bereich Runtime. Natürlich wissen Sie das. Die allgemeine Situation ist, dass für meine nicht mehr ganz so neuen Computer diese speziellen Einstellungen die Vorgaben ausreichend waren. Dass Rediskin eine andere Liste hat, und er behauptet, dass diese Liste entspricht dem Verhalten von AptioMemoryFix. Dies ist jedoch nicht der Fall. Mit seinem Set. Mein Computer bootet nicht, während mit dem alten AptioMemoryFix alles in Ordnung ist. Also im Der Standardsatz von Clover unterscheidet sich von den ursprünglichen OcQuirks (RIP). In Clover 5125 wurden durch die Aufnahme von Patches aus OpenCore in diesem Abschnitt neue Werte. FuzzyMatch . Khaki Clover. Version 5.1, Revision 5128 106 Moskau, 2021 Der Schlüssel gewährleistet die Kompatibilität mit System 10.6 (Snow Leopard), da mol Die Menge des Cache wird unterschiedlich gezählt. Ich weiß nicht, wie es mit OpenCore aussieht, aber Clover wird schon seit langem geladen Schnee, zusammen mit dem gleichen Cache. KernelCache. Auto. Mögliche Werte (Auto, Cacheless, Mkext, Prelinked). Diese Cache-Typen waren vor dem System 10.7 und wurden üblicherweise mit dem Boot-Argument Kernel=, Mkext= und anderen ausgewählt, die es im alten Clover gab. AppleXcpmExtraMsrs . XCPM-Unterstützung auf redundanten CPUs, etwas, was der KernelXCPM-Patch früher getan hat. AppleXcpmForceBoost . Dieser Patch schreibt 0xFF00 in das Register MSR_IA32_PERF_CONTROL = 0x199, d. h. statt normaler p-Zustände bietet OpenCore an, den maximalen Schritt zu verbiegen. DisableIoMapper . Deaktiviert die VT-d-Technologie auf eigene Art und Weise. Es gibt eine Alternative, um die DMAR-Tabelle zu verwerfen. Und dann gibt es noch die Option dart=0. DeaktiviereLinkeditJettison. Erlaubt Lilu.kext, schneller zu laufen. Auf Kosten dessen, was unbekannt ist. Und wie keepsyms=1 mehr nicht erforderlich. DisableRtcChecksum . Der Sinn des Patches ist, dass die RTC im Mac anders verwendet wird als im PC, und die Prüfsumme wird schlecht. Wir blockieren einfach seine Zählung. Es gibt ein AppleRTC=YES-Analogon in Clover, es und wir tun. DummyPowerManagement . Blockiert AppleIntelCpuPowerManagement als Alternative zum NullCPUPM Kext. Zur Erinnerung, dieses Kext wird meistens blockiert, wenn OxE2 gesperrt ist, und es gibt andere Patches dagegen. ExternalDiskIcons . Der altbekannte Aufnäher gegen gelbe Icons ist als Spitzhacke ausgeführt. IncreasePciBarSize . Erhöht den Speicherwert für die Leiste von 1 GB auf 4 GB im Gütesiegel IOPCIFamily. Ich weiß nicht, wer sich diesen Patch ausgedacht hat und für welche Fälle. OpenCore rät davon ab, ihn überhaupt zu verwenden. PowerTimeoutKernelPanic . Dieser Patch, nur für Catalina, verhindert, dass der Kernel in Panik gerät, wenn ein Gerät sehr lange braucht leuchtet nicht auf. Warum stornieren Sie es?! Lassen Sie es in Panik geraten, anstatt stumm zu schweben. Wenn Sie jemals jemals auf eine solche Situation stoßen, versuchen Sie diesen Patch. Khaki Clover. Version 5.1, Revision 5128 107 Moskau, 2021 ThirdPartyDrives . Ein seit langem bekannter Patch ist in der Clover-Konfiguration zu finden: Enable Trim on Non-Apple. Es geht darum, zu ersetzen das Wort Apple in einer Leerzeile. Es gibt auch einen Kommentar, dass Catalina interne eine Gelegenheit, das Gleiche zu tun. XhciPortLimit . Es ist ein bekanntes Problem, dass Apple die Anzahl der XHCI-, USB2+USB3-Controller-Ports begrenzt Nummer 15, und obwohl die neuen Chipsätze mehr Anschlüsse bieten, hat es Apple nicht eilig, die diesen Grenzwert erhöhen. Binäre Patches gibt es schon lange, aber sie sind abhängig von der Version Systeme. Inwieweit es OpenCore gelungen ist, die Versionsabhängigkeit zu überwinden, weiß ich nicht. Praxis zeigt an, dass alle nicht entfernbaren Patches entfernt werden. Ich habe mir eine Legacy_USB.kext erstellt, entfernt USB2-Ports, die nicht benötigt wurden, und machte Platz für USB3. Dieser Kext funktionierte noch in 10.13, also arbeitet in 11.1. ACPI Eine Gruppe von Parametern, die die Korrektur von verschiedenen ACPI-Tabellen regeln. Und es ist nicht nur so, dass der Mac seine eigenen Anforderungen hat, es sind einfach unterschiedliche Versionen des ADCI Spezifikationen und elementare Faulheit der Hersteller, und einfach im BIOS des Motherboards ist nicht Informationen über die installierten Karten und die CPU (können Sie diese nicht dynamisch erkennen? Kleeblätter tut es!). Parameter für die FADT-Tabelle ResetAddress 0x64 ResetValue 0xFE Diese beiden Parameter dienen für einen sehr wertvollen Fix - Neustartfix. Diese Werte sollten in der FADT-Tabelle stehen, aber aus irgendeinem Grund sind sie nicht immer da, Die Tabelle selbst ist vielleicht kürzer als nötig, so viel kürzer, dass diese Werte sich als werden verworfen. Standardmäßig geht der bereits in der FACP vorhandene Wert, wenn jedoch nichts, dann wird das Paar 0x64/0xFE verwendet, was einen Neustart über den PS2-Controller bedeutet. Die Praxis hat gezeigt, dass dies nicht bei jedem funktioniert, ein anderes mögliches Wertepaar ist 0x0CF9/0x06, was einen Neustart über den PCI-Bus bedeutet. Dieses Paar wird auch auf dem Native verwendet, aber nicht immer funktioniert auf Hackintoshes. Der Unterschied ist klar, es gibt auch einen PS2-Controller auf Hackintoshes, der einen Neustart verhindern kann, wenn er nicht zurückgesetzt wird. Eine andere Möglichkeit ist 0x92/0x01, ich weiß es nicht, Vielleicht hilft es ja jemandem. HaltEnabler. Und dies ist ein Fix für das Shutdown/Sleep-Problem beim UEFI-Boot. Fix wird einmalig vor dem Aufruf von boot.efi durchgeführt, ist also nicht 100%ig effektiv garantiert. Trotzdem ist es, zumindest auf Intel-Chipsätzen, recht sicher. Für mich persönlich ist es ein Lebensretter! smartUPS . Khaki Clover. Version 5.1, Revision 5128 108 Moskau, 2021 Eigentlich ist dieser Parameter dazu gedacht, ein Profil in der FADT-Tabelle vorzuschreiben Leistung=3. Die Logik ist wie folgt: PM=1 - Desktop , Netzversorgung PM=2 - Notebook, netz- oder batteriebetrieben PM=3 - Server, versorgt durch SmartUPS, von der auch MacOSX etwas weiß. Die Wahl zwischen 1 und 2 trifft Clover auf der Grundlage einer Analyse des Mobilitätsbits, aber es gibt auch Mobile-Parameter im Abschnitt SMBIOS. Sie könnten z. B. sagen, dass wir einen MacMini haben, und dass er mobil. Der Wert 3 wird ersetzt, wenn smartUPS=Yes. MADT-Abgleich (APIC) PatchAPIC. Auf manchen Rechnern ist es nur möglich, das System mit cpus=1 zu booten, oder mit einem speziellen mit einem gepatchten Kernel (Lapic NMI Patch). Eine einfache Analyse zeigte, dass sie die falschen MADT-Tabelle, d. h., es sind keine NMI-Partitionen darin enthalten. Dieser Parameter dient dazu solche Tabellen im laufenden Betrieb anzupassen. Gegen einen gesunden Computer ist nichts einzuwenden passieren wird. Allerdings habe ich auch keine Berichte gesehen, die irgendjemandem geholfen haben. Ja, es gibt Entwickler, der es braucht, und der diesen Patch in neuen Versionen von Clover korrigiert hat. Es gibt einen entsprechenden Patch im Abschnitt KernelAndKextPatches, der auch dieses Problem löst Probleme, aber mit anderen Mitteln. Andere ADC-Tabellen: DropTables . . Signatur. DMAR. . . Signatur. MCFG . . Signatur. SSDT TableId CpuPm Länge0x0fe1 . . In diesem Array listen wir die Tabellen auf, die wir verwerfen wollen. DMAR - weil Mac nicht mit der VT-d-Technologie kompatibel ist. Oder besser gesagt, es hat eine andere Tabelle. MCFG - denn durch die Angabe eines MacBookPro oder MacMini erhalten wir eine brutale Bremsen. Es wurde bereits eine bessere Methode entwickelt. FixMCFG . In diesem Fall wird die Tabelle nicht verworfen, sondern korrigiert. Der Autor des Patches ist wieder vit9696. Dennoch weniger Methode zum Verwerfen dieser Tabelle bleibt bis auf weiteres auf Lager. Zurück zur Geschichte von DropTables SSDTs sind unterschiedlich, und wir geben zusätzlich TableId an, welche wir verwerfen werden, weil wir unsere SSDT-Tabellen nach den Regeln von Apple erstellen werden, und Khaki Clover. Version 5.1, Revision 5128 109 Moskau, 2021 Nicht Gigabyte, oder, Gott bewahre, ASUS. Sie können in der Kopfzeile der Tabelle nachsehen, oder im Boot Clovers Logbuch. Hier ist zum Beispiel eine Tabelle, die nicht verworfen werden sollte. DefinitionBlock ("SSDT-0.aml", "SSDT", 1, "SataRe", "SataTabl", 0x00001000) Für die gespeicherten Tabellen gilt die Regel für binäre Patches DSDT, d.h. diese Tabellen werden ebenfalls geändert, was logisch ist. Wenn alle SSDT-Tabellen aus irgendeinem Grund die gleiche TableID haben, können Sie die Länge der Tabelle, die gelöscht werden soll. Die Länge kann wie oben in Hex eingestellt werden, sie kann in als Dezimalzahl. DisableASPM . Dies betrifft die ACPI-Einstellungen des Systems selbst, so dass Apples ASPM-Management funktioniert nicht wie vorgesehen. Zum Beispiel ein nicht-nativer Chipsatz. In welchen Fällen anzuwenden, und was es bewirkt, weiß ich nicht mehr. SSDT. DropOem. Da wir unsere SSDT-Tabellen erstellen oder dynamisch laden werden, ist müssen Sie unnötige Überschneidungen von Interessen vermeiden. Mit diesem Parameter verwerfen Sie alle nativen Tabellen, zugunsten von neuen Tabellen. Oder wollen Sie kategorisch vermeiden, die Tabellen zu patchen SSDT. Sie haben folgende Möglichkeit: Legen Sie die nativen Tabellen mit kleinen Bearbeitungen in den Ordner EFI/OEM/xxx/ACPI/patched/, und lassen Sie die ungepatchten weg. (igitt!) ungepatchte Tabellen verwerfen. Es ist jedoch besser, die oben erwähnte Methode des selektiven Abwurfs zu verwenden. Generieren. C-Staaten . PStaaten . . Hier definieren wir, dass zwei zusätzliche Tabellen für C-Zustände und für P- erzeugt werden nach den von der Hack-Community entwickelten Regeln. Für C-Zustände, Tabelle mit den Parametern C2, C4, C6, Latenz, die im Abschnitt CPU genannt werden. Es ist auch möglich, Parameter im SSDT-Abschnitt anzugeben, was logisch ist AktivierenC7. AktivierenC6. C4 aktivieren . C2 aktivieren . C3Latency67 Die Tatsache, dass diese Generierung wirksam geworden ist, wird durch das Kernel-Protokoll kontrolliert. Ohne diese Methode ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST-Auswertung fehlgeschlagen. Ein gesondertes Wort zur C3Latency. Dieser Wert erscheint in echten Macs, für iMacs in der Größenordnung von 200, für den McPro in der Größenordnung von 10. Meiner Meinung nach werden iMacs durch P-Zustände geregelt, MacPro - D-Zustände. Und es hängt auch vom Chipsatz ab, ob Ihr Chipsatz angemessen auf Khaki Clover. Version 5.1, Revision 5128 110 Moskau, 2021 C-State-Befehle von McOS. Die einfachste Möglichkeit ist, diesen Parameter nicht zu schreiben, alle wird so funktionieren, wie es ist. Für P-Zustände eine Tabelle, die den Prozessorteil um die Methoden _PPC, _PCT und _PSS ergänzt. _PCT - Performance Control - Steuerung der Fahrstufenregelung. PPC - Performance Present Capabilities, Diese Funktion liefert eine Zahl, die eine Frequenzgrenze bedeutet. Details unten, im Parameter PLimitDict. _PSS - Performance Supported States - Menge der möglichen Prozessorzustände - P-States. Dieses Array wird aus den Prozessordaten erzeugt, die Clover bereits berechnet hat, und auch unter Berücksichtigung der Parameter des Anwenders: PLimitDict 1. Die Essenz des Parameters ist sehr einfach - die maximale CPU-Frequenz zu begrenzen. Ein Wert von 0 ist. Betrieb bis zum Maximum, 1 - ein Schritt weniger als das Maximum, 2 - zwei Schritte. Beispiel: Core2Duo T8300 2400MHz läuft mit einer maximalen Frequenz von 2000, wenn er auf zwei Schritte. Warum? Um eine Überhitzung des Laptops zu vermeiden, sind die Fähigkeiten der CPU viel die Kühlleistung überschreiten. Der exakt gleiche Parameter ist in z.B. Plattformplatten: System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/ Ressourcen/MacBook5_1.plist Wir werden diese Platten weiter unten besprechen. Bei einigen Prozessoren, z. B. Core2Quad, wird festgestellt, dass PlimitDict funktioniert entgegengesetzt, und bester Fall =1. Es ist durchaus möglich, dass es sich nur um einen Fehler in der DSDT handelt. Zum Beispiel, weil sie den Darwin-Patch nicht machen wollten UnderVoltStep1. Optionaler Parameter zur Reduzierung der Prozessortemperatur durch Absenken der Betriebsspannung. Mögliche Werte sind 0, 1, 2, 3 ... je mehr, desto mehr kühlen wir ab, bis der Computer sich aufhängt. Hier funktioniert die Überlistungssicherung, bei Clover nicht erlaubt es Ihnen, den Wert außerhalb des erlaubten Bereichs zu setzen, bzw. zu schreiben, was Sie wollen, und Nur was erlaubt ist, funktioniert. Die zulässigen Werte können aber auch zu instabiler Betrieb. Die Wirkung dieses Parameters wird tatsächlich beobachtet. Allerdings nur für Perinna. DoubleFirstState . Ich habe festgestellt, dass es für einen erfolgreichen Speedstep notwendig ist, den ersten in der P-States-Tabelle zu duplizieren Zustand. Nach der Einführung anderer Parameter ist die Notwendigkeit dafür fraglich geworden. Es ist auch ist nur für IvyBridge wahr, der Rest hebt sich bedingungslos auf. MinMultiplikator7 Minimaler CPU-Multiplikator. Er selbst meldet 16 und bevorzugt den Betrieb mit Frequenz von 1600, für Speedstep sollten Sie jedoch die Tabellenwerte auf 800 oder sogar 700. Empirie. MaxMultiplikator30 Khaki Clover. Version 5.1, Revision 5128 111 Moskau, 2021 Eingeführt in Analogie zum Minimum, aber es scheint vergeblich zu sein. Sie sollte nicht eingefügt werden. Das ist jedoch der Fall. irgendwie die Anzahl der P-Zustände beeinflusst, so dass Sie experimentieren können, jedoch ohne Es gibt keine besondere Notwendigkeit, das zu tun. Generieren. C-Staaten . PluginTyp . APLF. APSN. . PStaaten . . Im neuen Clover ist diese Gruppe von Parametern in einem Abschnitt zusammengefasst, und PluginType ist nun nur wahr oder falsch. Weil es keine anderen Möglichkeiten gibt. APLF- und APSN-Parameter wie beeinflussen Speedstep, aber für diejenigen, die wissen, wofür sie sind. PluginTyp 0 Für IvyBridge-, Hasswell- (und höhere?) Prozessoren sollten Sie 1 eintragen, für den Rest 0. Dieser Schlüssel erzeugt zusammen mit dem Schlüssel Generate→PluginType die SSDT-Tabelle, enthält nur PluginType, aber keine P-States, wenn deren Erzeugung deaktiviert ist. Großer Abschnitt über DSDT-Setup und Patches. DSDT. Debug. Mit diesem Parameter können wir sehen, was mit dem DSDT passiert, während es gepatcht wird, wenn wir Dadurch wird das System am Hochfahren gehindert. Zuerst wird die Originalversion gespeichert /EFI/CLOVER/ACPI/origin/DSDT-or.aml, dann gehen Sie die Prozedur aller Patches durch (Übrigens es hinterlässt eine ganze Reihe von Meldungen in debug.log, wenn es auch verbunden ist), und dann speichert es Datei /EFI/CLOVER/ACPI/origin/DSDT-pa0.aml, wenn eine solche Datei bereits existiert mit des vorherigen Versuchs wird die nächstnumerierte DSDT-pa1.aml erstellt, DSDT- pa2.aml... , überschreiben sie sich nicht gegenseitig. Denken Sie am Ende aller Übungen daran Leeren Sie den Ordner. Name DSDT.aml Sie können mehrere Versionen der DSDT-Datei mit beliebigem Namen haben, und Sie können einen nicht existierenden Namen schreiben, z. B. Standard-BIOS.aml, und dieser wird dann als Basis genommen die DSDT, die im BIOS verfügbar ist. Die Dateiprioritäten sind wie folgt: 1. Die höchste Priorität hat die Datei DSDT.aml, die im Stammverzeichnis des gebooteten Systems liegt. Die Logik in um verschiedene Computer mit demselben Flash-Laufwerk zu booten, von denen jeder seine eigene DSDT. 2. Wenn es keine solche Datei gibt, suchen Sie auf dem Flash-Laufwerk im OEM-Bereich: /EFI/CLOVER/OEM/p8b/ACPI/patched/DSDT.aml Khaki Clover. Version 5.1, Revision 5128 112 Moskau, 2021 3. wenn es auch dort nicht zu finden ist, schauen Sie in den gemeinsamen Ordner /EFI/CLOVER/ACPI/patched/DSDT.aml FixMask 0xFFFFFFFFFFFF Dieser Parameter blendet 32 Patches auf einmal für die DSDT-Tabelle aus, und zwar um die Anzahl der Bits in die Maske. Um zu berechnen, wie sich die Summe der Bits zu einer bestimmten Maske addiert, können Sie Systemrechner, konvertieren Sie ihn in die Programmiereransicht und schalten Sie auf 16 Zahlen. Und nun geben wir durch Anklicken der Bits 0 bis 31 die gewünschte Maske ein. Es gibt eine offensichtlichere Variante: CloverFixDsdtMaskCalculator von Cvad http://www.applelife.ru/attachments/cloverfixdsdtmaskcalculator-app-zip.43973/ Ab der Revision 2184 können (und sollten) Patches nach und nach in den folgenden Abschnitt eingefügt werden Fixes. . AddDTGP . FixDarwin . FixShutdown . AddMCHC . FixHPET . FakeLPC . FixIPIC. . FixSBUS . Khaki Clover. Version 5.1, Revision 5128 113 Moskau, 2021 FixDisplay . FixIDE . FixSATA . FixFirewire . FixUSB. FixLAN . FixAirport . FixHDA. FixDarwin7 . FixRTC. FixTMR . AddIMEI. . FixIntelGFX . FixWAK . LöschenUnbenutzt. FixADP1 . AddPNLF . FixS3D . FixACST . AddHDMI . FixRegionen . . Wenn dieser Fixabschnitt vorhanden ist, wird der maskierte Fixschlüssel ignoriert. Aber um Ihnen zu sagen, was diese Korrekturen bedeuten, müssen Sie ein neues Kapitel aufschlagen. Weitere Tasten, um einige Probleme mit dem automatischen Patching zu lösen. WiederverwendungFFFF . In einigen Fällen wird der Versuch, die Anzeige zu patchen, durch das Vorhandensein der ursprünglichen DSDT-Geräte des Typs Gerät (PEGP) { Name (_ADR, 0xFFFFFF) Name (_SUN, Eins) } Sie können seine Adresse auf 0 ändern, aber das funktioniert nicht immer. - versuchen zu ändern Adresse, - gehen Sie weg und versuchen Sie nicht, es zu patchen. Dieser Fix ist im neuen Clover ab 5116 ausgeschlossen. DropOEM_DSM. ATI. . NVidia. IntelGFX. HDA. HDMI . LAN. WIFI . SATA . IDE. . USB. LPC. SmBUS . Feuerdraht. . In einigen Fällen hat das Gerät, das wir automatisch patchen wollen, bereits OEM-Methode _DSM. Sie können nicht duplizieren, daher gibt es zwei Möglichkeiten: - die ursprüngliche Methode wird verworfen und stattdessen wird unsere Methode erzeugt, - beim Auftreten der ursprünglichen Methode ziehen wir uns zurück, ohne etwas zu tun. Was ist an der ursprünglichen Methode dran? Kaum das, was wir gerne sehen würden, und kaum das, was wird für OSX benötigt. Normalerweise denken BIOS-Hersteller nur an Windows. Aber wenn Sie denken, dass es etwas Wichtiges in dieser Methode gibt, dann injizieren Sie Ihre Eigenschaften in dieses Gerät mit Strings (siehe Kapitel Geräte->Injizieren). Ich würde also empfohlen, alle diese OEM-DSMs zu verwerfen, außer wenn Sie setzen Sie Ihr benutzerdefiniertes DSDT, und wenden Sie weitere Korrekturen aus dem Bereich automatisch, aber Sie sind nicht bereit, Ihre _DSM-Methoden für automatisch zu ersetzen generiert. Das DSDT meines neuen Computers erwies sich als wahnsinnig schlecht in Bezug auf macOS. Вie vielen DSM-Methoden, sowohl in der Elternschaft als auch bei den Töchtern. Das Ergebnis ist. Panik. DropOEM_DSM ist hier machtlos. Der folgende Patch hat geholfen Patches → finden :_DSM, ersetzen: ZDSM. Siehe unten. SuspendOverride . Der Shutdown-Patch funktioniert nur bei Zustandstyp 5 - Shutdown, wir möchten jedoch Erweitern Sie diesen Patch auf die Zustände 3 und 4, setzen Sie SuspendOverride = true. Es half mir beim Einschlafen während eines UEFI-Boots. Andernfalls würde der Bildschirm erlöschen und die Beleuchtung und die Ventilatoren liefen weiter. Fortgeschrittene Hacker können ihre eigenen DSDT-Patches erstellen, indem sie einen Ersatz für Binärebene: Patches. . . Khaki Clover. Version 5.1, Revision 5128 115 Moskau, 2021 Finden. UFhTWAhfQURSAAhfUFJXEgYC ErsetzenUFhTWAhfQURSAAhfU1VOCgQIX1BSVxIGAg== TgtBridgeUFhTW. . Kommentar. Umbenennen von oem _DSM in ZDSM Deaktiviert. Finden. . X0RTTQ== . Ersetzen. WkRTTQ== . . . TgtBridge definiert, dass das Patch nur innerhalb eines einzelnen Blocks funktioniert, der durch unter diesem Namen Gerät (RP02) { . } Diese Methode ist jedoch ungenau, da Blöcke fragmentiert sein können, es ist besser, die verwenden Sie die Methode RenameDevices (unten) Die spezifischen Zahlen sind von Ihren Entwürfen, wenn Sie wissen, was zu tun ist. Stringlängen nicht übereinstimmen, wird Clover die Längenänderung korrekt berücksichtigen, mit einer Ausnahme: um die es nicht innerhalb einer If- oder Else-Anweisung geschah. Wenn Sie eine solche Änderung wünschen, ersetzen Sie den gesamten Operator. Einige Erklärungen. Die Kommentartaste dient nicht nur dazu, Sie daran zu erinnern, dass geschrieben wird, wird es auch im Clover-Menü verwendet, um Menüs durch Verbindung/Trennung dieser Befestigungen. Anfangswert freigegeben oder nicht wird durch die Zeilen Disabled=false definiert. Der Standardwert ist aktiviert. Wenn Sie Patches, ist es besser, sie zuerst als Disabled=true zu schreiben, und dann im Menü ihre jeweils einen zuzulassen. Andere ACPI-Tabellen Clover verfügt über einen Dienst zum Laden anderer Tabellen. Insbesondere ist es sehr häufig Erstellen einer ganzen Bibliothek mit verschiedenen SSDT-xxx.aml für verschiedene Geräte und für Speedstep. Ab der Revision 3088 hat sich die Regel zum Laden solcher Tabellen geändert. Legen Sie die Tabellen in den Ordner /EFI/CLOVER/OEM/xxx/ACPI/patched/ Wenn es keinen solchen Ordner gibt, wird der öffentliche Ordner als /EFI/CLOVER/ACPI/patched/ Alle Dateien mit der Erweiterung ".aml", die nicht mit einem Punkt "." beginnen, werden aus diesem Ordner geladen. und nicht die Zeichenfolge "DSDT" in seinem Namen enthält, weil der DSDT eines der verschiedenen werden die Optionen mit einem anderen Algorithmus geladen. Die Bootreihenfolge ist nicht garantiert. Wenn wir eine streng definierte Reihenfolge wollen herunterladen, müssen wir es explizit in die Config schreiben ACPI. . SortedOrder . SSDT-3.aml. Khaki Clover. Version 5.1, Revision 5128 116 Moskau, 2021 SSDT-1.aml SSDT-2.aml. . Und wenn ein solches Array vorhanden ist, werden nur diese Tabellen geladen, und zwar genau in diesem(lacht) Okay. Ein weiteres Problem bei Tabellen, ist der Name. Der OEM wird weder durch die Verwendung der nationalen Alphabet, noch das Fehlen eines Namens, aber für Apple ist dies inakzeptabel. Der Name muss 4 sein des lateinischen Alphabets. Der nächste Fix wird das beheben. FixHeaders . Genau derselbe Fix war jedoch im Abschnitt DSDT Fixes, da er sich nicht auf DSDT, wird er in einem separaten Punkt des ACPI-Abschnitts abgelegt. RenameDevices . _SB.PCI0.RP02.PSXSARPT. _SB.PCI0.EHC1EH01 _SB.PCI0.POP2.PEGPGFX0 . Anders als ACPI-Binärpatches, die übrigens nicht nur DSDT, sondern auch SSDT als auch, sowohl nativ als auch bootfähig, dient diese Methode als Ersatz für einen Patch wie Suchen->PXSX, Ersetzen->ARPT. Wenn aber im Abschnitt DSDT->Patches eine solche Ersetzung auf in der Methode RenameDevices, sucht der Algorithmus nur nach diesen Geräten, die auf der besagten Brücke liegen. Hier ist ein komplexes Beispiel zum Ersetzen von _SB.PCI0.RP02.PSXS → ARPT Umfang(\_SB) { Gerät (PCI0) { Gerät(RP02) { Gerät(PSXS) <- hier ändern { Methode(_ON) { } Methode(_OFF) { } } PSXS._ON() <- hier ändern } Umfang(RP02) { PSXS._OFF() <- hier ändern } Gerät(RP03) { Gerät(PSXS) <- hier nicht ändern { } PSXS._ON() <- hier nicht ändern } Khaki Clover. Version 5.1, Revision 5128 117 Moskau, 2021 DSDT-Korrektur DSDT - Differentiated System Description Table - das größte und komplexeste ADCP Tabelle. Die Mindestlänge beträgt 36 Byte, die tatsächliche Länge beträgt 20kb oder mehr. Diese Tabelle beschreibt Geräte und deren Zugriffsmethoden. Zugriffsmethoden können arithmetische und logische Ausdrücke, und bilden somit ein Programm in einer Sprache Programmierung ähnlich wie in C durch die geschweiften Klammern. Um diese Tabelle zu korrigieren bedeutet, dass Sie etwas über Programmierung wissen. Clover bietet eine Art von Variante automatische Bearbeitung, aber Sie müssen verstehen, dass es noch keine künstliche Intelligenz gibt, und Die automatischen Programmanpassungen sind noch lange nicht perfekt. Ein Mensch wird tun besser. Warum muss es repariert werden? Das gesamte DSDT-Patch war von Anfang an darauf ausgerichtet zuallererst das HPET-Gerät - High Precision Events Timer - zu reparieren. Der Punkt ist, dass das OSX-System das Paket AppleIntelCPUPowerManagement enthält, das dazu dient zur Steuerung der Prozessorleistung (Speedstep), und die strikt verlangt, dass der System war HPET mit IRQ-Interrupts. Ohne diese Bedingung geht die Kext in Panik. Es ist nur möglich, durch Deaktivieren oder Löschen dieser Kext zu arbeiten. Aber es gibt noch eine andere Möglichkeit. Korrigieren Sie die DSDT und der HPET startet richtig! Im System wird jedoch 10.9 Anforderungen haben sich geändert. Blödsinn, der Patch ist weiterhin erforderlich und hat die gleiche Gültigkeit. Im neuen Systemen, auf der neuen Hardware hat bereits seine Relevanz verloren, vor allem aufgrund der Tatsache, dass die Kext-Funktionalität ist in den Kernel übergegangen. Dies ist Patch Nr. 1, eine lebensnotwendige Notwendigkeit. Ist MacOS das einzige, das diesen HPET benötigt? Nein, Sicher, aber die BIOS-Hersteller beginnen gerade erst, dies zu erkennen und schreiben korrekten Parametern, ist es immer noch selten, dass ein DSDT ohne Patch funktioniert. Moment #2. Im DSDT lassen sich einige betriebliche Abhängigkeiten erkennen Systeme, "Windows 98", "Windows 2001", "Windows 2006", "Linux", MacOS hat „Darwin"-Kennung, und der DSDT ist in der Regel nicht dafür ausgelegt. Und selbst wenn konzipiert ist, dann für eine Version wie FreeBSD. MacOSX ist ein ernstzunehmendes ACPI-System, d.h. verwendet DSDT maximal, so wie Windows 2001 es verwendet, aber nicht Linux, nicht Windows 98, und nicht Windows 2006. Das Richtige ist, eine Nachahmung von Windows 2001 zu machen. И Auch wenn Sie bereits "Darwin" haben, bringen Sie es als "Windows 2001" zum Laufen. Unter Viele BIOS haben OSYS = 0x07D2 als Wert. Aber nicht 0x2410, da es ist im Attribut angegeben. Obwohl es Berichte gibt, dass 7D6 oder 7D9 für einige Konfigurationen sind irgendwie besser. Sie müssen sich den Algorithmus ansehen. Auf meinem Skylake 2017 stellte sich der beste Wert als 0x7DA heraus. Daher ist eine zusätzliche DSDT FixDarwin7_10000, das ein Windows 2009 nachahmt, d. h. Windows 7. Ich habe es entsprechend 0x7D9, und es beeinflusst den USB3.0-Betrieb, aus irgendeinem Grund in Das BIOS hat beschlossen, es für ein WindowsXP-System zu deaktivieren. Auch hier wird das Patch möglicherweise nicht benötigt, wenn diese Kennung im DSDT nicht weiter verwendet wird. Haben Sie das überprüft? Moment #3. Der Hersteller des Motherboards, und damit auch dessen BIOS und dessen DSDT, ist nicht kann vorhersehen, welche CPU installiert wird, welche Grafikkarte und andere PCI Geräte. Sie sollten aber in der DSDT vorgeschrieben werden! Und umgekehrt, um vom DSDT auszuschließen, solche Geräte wie Lautsprecher, Diskettenlaufwerk, Parallelport. Es gibt keine Treiber für sie und keine benötigt. Außerdem ist es oft notwendig, Anschlüsse/Ports hinzuzufügen oder zu entfernen, um einige Geräte, wie z. B. eine Grafikkarte oder ein SATA-Controller. DSDT liegt im BIOS und wird im System im AML-Binärcode verwendet, existiert IASL-Compiler/Decompiler, der Codes in eine für Menschen verständliche Sprache übersetzt Khaki Clover. Version 5.1, Revision 5128 118 Moskau, 2021 DSL. Der menschliche Weg der Bearbeitung ist AML->DSL->Bearbeiten->DSL->AML. Und dann gibt es noch Punkt Nr. 4. Die letzte Kompilierung wird aufgrund von Fehlern unmöglich, Syntax und logischen, die ursprünglich im OEM DSDT vorhanden waren. Bei der Bearbeitung ist es erforderlich, diese ebenfalls zu bearbeiten zu korrigieren. Nun, zur gleichen Zeit, um die semantischen Fehler, die verursacht, zum Beispiel zu korrigieren, der Computer nicht einschlafen oder nicht aufwachen kann. Oder vielleicht gibt es auch neue Geräte Verschreibung. (Und im Allgemeinen ist es seltsam, aber Kompilieren/Dekompilieren ist nicht strikt invers Der Betrieb, hin und her ändert die Tabelle, oder auch allgemein, hin geht, zurück nicht - es ist erforderlich Intervention. Aus meiner Sicht bedeutet dies, dass der Decompiler mit Bugs, solche Programmierer haben daran gearbeitet. Und die Nichteinhaltung von Normen ist notwendig als Warnungen und nicht als Fehler markiert werden. Wenn im ursprünglichen AML etwas schief geht, dann müssen Sie verstehen, dass der Computer funktioniert, also ist es falsch interpretiert werden kann). Wenn wir all dies getan haben, können wir den Bootloader in unser die korrigierte DSDT, indem Sie sie in den Ordner /EFI/CLOVER/OEM/xxx/ACPI/patched legen, oder, falls OEM-Computername noch nicht bekannt, in den Ordner /EFI/CLOVER/ACPI/patched, oder das bootfähige System selbst hat eine eigene Version der DSDT, die im Stammverzeichnis der Systemplatte liegt. Woher bekomme ich die Quell-DSDT, die gepatcht werden muss? Es gibt verschiedene Möglichkeiten, sie zu erhalten unter Windows, Linux oder sogar OSX. Wenn Clover es irgendwie geschafft hat zu laufen, jetzt es bietet diese Möglichkeit selbst. Es ist notwendig, das grafische Menü aufzurufen und die Taste F4. Wenn Clover auf einer FAT32-Partition installiert ist, kann es alle OEM ACPI-Tabellen, einschließlich unangetasteter DSDT und FADT. Seien Sie geduldig, wenn Sie auf einem Flash-Laufwerk speichern und es viele Tabellen gibt, kann der Prozess eine merkliche Zeitspanne in Anspruch nehmen. In der aktuellen Revision extrahiert Clover einen Satz von Tabellen, die zuvor auf andere Weise nicht verfügbar waren, einschließlich AIDA64. Es gibt auch einen Weg, um Speichern Sie die vorgefertigte DSDT-Version auf der Festplatte. Geben Sie dazu in der Clover-Oberfläche einOptionsmenü, ändern Sie die DSDT-Maske, verlassen Sie dann das Menü und drücken Sie F5. Clover wird speichern Ihre DSDT, korrigiert auf die aktuelle Maske, mit einem Namen wie DSDT-F597.aml, d.h. gepatcht mit Maske 0xF597. Sie können mehrere Varianten erstellen, um sie später zu vergleichen. Jetzt können Sie eine DSDT-Datei nehmen und sie bearbeiten... Und für diejenigen, die der Sprache nicht mächtig sind ASL, Clover schlägt vor, einige Korrekturen automatisch durchzuführen. Auch diese Frage beantworte ich gleich. Frage: "Warum kompiliert DSDT immer noch mit Fehlern, nachdem es von Clover bearbeitet wurde?". Ja, die DSDT ist ein Satz von Beschreibungen und Methoden, von denen wir viele nicht benötigen. Clover berührt sie nicht, auch wenn wir die maximale Maske setzen. Fehler können sein an diesen Stellen abgelegt, unberührt, und sie bleiben dort. Das hindert aber nicht daran, dass alles funktioniert den Rest, denn die DDT funktioniert nicht als Ganzes, sondern nur als ein Satz von Beschreibungen und Methoden. Lassen Sie uns die Korrekturen im Detail betrachten. In der Revision 4300+ wurde die Beschreibung der Fixes vereinfacht. AddDTGP-Bit(0): Zur Beschreibung von Geräteeigenschaften, mit Ausnahme der Option DeviceProperties, die als oben, gibt es eine Variante mit der in DSDT vorgeschriebenen _DSM-Methode. _DSM - Device Specific Method - eine bekannte Ausprägung dieser Methode, die in MacOSX seit Version 10.5 enthält diese Methode ein Array, das das Gerät beschreibt und den Aufruf universelle DTGP-Methode, die für alle Geräte gleich ist. Diese Korrektur fügt diese Methode einfach hinzu, so dass sie dann auf andere Korrekturen angewendet werden kann. Sie hat keinen eigenständigen Wert. Ich habe den Ratschlag gesehen, eine 0х31-Maske aufzusetzen, sie sagen, die anderen Korrekturen sind nicht erforderlich. Aber dann brauchen Sie auch (1) nicht! FixDarwin bit(1): Darwin OS imitiert das Windows XP-System. Viele Schlaf- und Helligkeitsprobleme erwachsen aus einer Fehleinschätzung des Systems. Khaki Clover. Version 5.1, Revision 5128 119 Moskau, 2021 FixDarwin7 bit(16) Ähnlich, nur vom Windows 7 System nachgeahmt. Ältere DSDTs haben möglicherweise nicht für ein solches System zu testen. Sie haben Optionen. FixShutdown bit(2): Die Funktion _PTS wird um eine Bedingung erweitert: wenn Argument = 5 (aus), keine gibt es nichts anderes zu tun. Seltsam, warum ist das so? Dennoch gibt es immer wieder Beweis für die Wirksamkeit dieses Patches für ASUS-Boards, vielleicht auch für andere. In einigen Das DTDT hat bereits eine solche Prüfung, in diesem Fall sollte eine solche Korrektur deaktiviert werden. Wenn in der Konfiguration SuspendOverride=true, wird diese Korrektur auf die Argumente 3 und 4 erweitert. Das heißt, das Verlassen zu unterbrechen. Andererseits, wenn HaltEnabler=true ist, ist dieser Patch wahrscheinlich nicht Ich schon. AddMCHC Bit(3): Ein solches Gerät der Klasse 0x060000 ist normalerweise in DSDTs nicht vorhanden, aber für einigen Chipsätzen ist dieses Gerät wartungsfähig und muss daher Vorschrift zur korrekten Verteilung des PCI-Bus-Power-Managements. Die Frage nach die Notwendigkeit eines Patches wird experimentell entschieden. Mehr Erfahrung, dieses Gerät wurde benötigt auf einem Motherboard mit einem Z77-Chipsatz, da sonst Core-Panic beim ersten Start auftritt. Umgekehrt, auf der G41M-Chipsatz (ICH7) verursacht dieser Fix Panik. Leider lässt sich keine allgemeine Regel erkennen. FixHPET bit(4): Wie gesagt, dies ist eine wichtige und notwendige Korrektur. Die minimal erforderliche Maske eines DSDT-Patches sieht also wie 0x0010 aus FakeLPC Bit(5): Ersetzt die DeviceID des LPC-Controllers, so dass sich der AppleLPC-CheKextack an diesen anhängt. Wird benötigt, wenn der Chipsatz nicht für OSX vorgesehen ist (z. B. ICH9). Allerdings, Die Liste der nativen Intel- und NForce-Chipsätze ist so groß, dass die Notwendigkeit eines solchen Patches ist sehr selten. Das System prüft, ob die AppleLPC Kext geladen ist, wenn nicht, wird der Patch benötigt. Allerdings ist auch dies keine Tatsache. Manchmal wird der Kext aus dem Speicher entladen, wenn er nicht benötigt wird, obwohl der Chipsatz unterstützt wird. FixIPIC-Bit (6): Entfernt den Interrupt vom IPIC-Gerät. Dieser Fix wirkt sich auf die Funktion der Power-Taste aus (Popup-Fenster mit den Optionen Reset, Sleep, Shutdown). FixSBUS-Bit (7): Fügt den SMBusController in den Gerätebaum ein und entfernt damit die Warnung über seine Abwesenheit aus dem Systemprotokoll. Und schafft auch die richtige Steuerverdrahtung die Leistung zum Reifen, beeinflusst es auch Ihren Schlaf. FixDisplay bit(8): Erzeugt eine Reihe von Videokarten-Patches. Injiziert Eigenschaften, und Geräte selbst, wenn sie nicht vorhanden sind. Injiziert FakeID, wenn bestellt. Fügt benutzerdefinierte Eigenschaften hinzu. Der gleiche Fix fügt ein HDAU-Gerät für die Audioausgabe über HDMI hinzu. Wenn FakeID gesetzt ist, wird die wird es über die _DSM-Methode injiziert. (1974) Patches sind für alle Grafikkarten, nur nicht für Intel. Für eingebettete Intel-Karten ist anders Bit. FIX_INTELGFX_100000 Bei Bedarf wird auch ein HDMI-Gerät (HDAU) hinzugefügt. Khaki Clover. Version 5.1, Revision 5128 120 Moskau, 2021 FixIDE bit(9): Die AppleIntelPIIXATA-Kext-Panik erschien in System 10.6.1. Zwei Lösungen Probleme - Verwendung des korrigierten Kext oder Fixierung des Geräts im DSDT. Und für von moderneren Systemen? Lassen Sie es sein, wenn es einen solchen Controller gibt. FixSATA bit(10): Behebt Probleme mit SATA und beseitigt das Vergilben der Festplattensymbole im System durch Nachahmung von ICH6. Eigentlich eine umstrittene Methode, aber ohne diesen Fix habe ich DVD- Discs sind nicht abspielbar, und ein DVD-Laufwerk sollte nicht herausnehmbar sein. D.h., ersetzen Sie einfach Icons sind keine Option! Es gibt eine Alternative, die durch Hinzufügen von AppleAHCIport.kext gelöst wird. Siehe das Kapitel zum Patchen der Kexts. Und dementsprechend kann dieser Teil weggelassen werden! Eines der wenigen Stücke, die ich empfehle es nicht. FixFirewire bit(11): Fügt dem Firewire-Controller die Eigenschaft "fwhub" hinzu, wenn Sie einen haben. Wenn nicht, nichts wird nicht passieren. Sie können wetten, wenn Sie nicht wissen, ob Sie es müssen oder nicht. FixUSB bit(12): Der Versuch, die vielen Probleme mit USB zu lösen. Für den XHCI-Controller, wenn Bei Verwendung einer nativen oder gepatchten IOUSBFamily ist dieser DSDT-Patch unverzichtbar. Der Apple-Treiber verwendet speziell ACPI, und die Schreibweise in DSDT muss ist korrekt. Es besteht kein Konflikt mit den Strings im DSDT. FixLAN bit(13): Injizieren der "eingebauten" Eigenschaft für den NIC - notwendig für korrekte Bedienung. Das Kartenmodell ist ebenfalls gespritzt - für die Kosmetik. FixAirport bit(14): Ähnlich wie beim LAN wird zusätzlich das Gerät selbst angelegt, wenn es nicht bereits in DSDT. Bei einigen bekannten Modellen wird die DeviceID ersetzt durch unterstützt. Und der Flughafen ist ohne weitere Patches aktiviert. FixHDA bit(15): Korrigieren der Soundkartenbeschreibung in DSDT, damit der native Treiber funktioniert AppleHDA. AZAL -> HDEF wird umbenannt, layout-id wird injiziert und PinKonfiguration. FixRTC Entfernt einen Interrupt vom _RTC-Gerät. Dies ist notwendig, und es ist sehr seltsam, dass jemand lehnt ein solches Patch ab. Wenn der ursprüngliche Interrupt noch nicht vorhanden ist, dann ist er in Ordnung dieser Patch nicht ausreichen wird. Es kam jedoch die Frage auf, ob die Länge der Region bearbeitet werden muss. An es gab keinen CMOS-Reset, die Länge sollte auf 2 gesetzt werden, aber der Satz erscheint im Kernel-Log wie... nur eine Bank... Ich weiß nicht, was an dieser Meldung falsch ist, sie kann behoben werden, indem die Länge auf 8 gesetzt wird. Aber in In diesem Fall besteht die Gefahr eines Bios-Resets nach dem Sleep. Daher ist eine zusätzliche der Schlüssel zum Lösen eines solchen Tricks: ACPI. . DSDT