In letzter Zeit häufen sich die Probleme mit USB 2.0 und vorallem 3.0 unter El Capitan und aufwärts. Apple hat seit El Capitan ein Port-Limit in ihr OS eingebaut welches die Nutzung von mehr als 15 USB-Schnittstellen gleichzeitig verbietet. Manche Kexte sollen dieses Problem beheben aber keiner kann eine 100% Erfolgsrate versprechen. Ein bisschen Probieren und Testen ist hier gefragt.
Es gibt verschiedene Herangehensweisen an das Problem. Die meist verbauten USB Controller in Hackintoshs sind wahrscheinlich die Intel USB3 Controller. Die genannten Möglichkeiten beziehen sich deshalb auch auf diesen Controller.
1 Generelles:
1.1 1. Bios Settings:
Im Bios müssen folgende Settings gesetzt sein:
-Der XHCI Mode muss auf Enabled oder Auto stehen (nicht Smart-Auto)
-XHCI und EHCI Hand-off müssen aktiviert sein
1.2 2. DSDT Veränderungen: (nicht nötig für die USBInjectAll Methode)
In der DSDT müssen folgende Veränderungen vorgenommen werden: (umbenennen)
- EHC1 --> EH01
- EHC2 --> EH02
- XHC1 --> XHC
Eventuell bei älteren Boards:
- EUSB --> EH01
- USBE --> EH02
Das ganze könnt ihr folgendermaßen Verwirklichen:
config.plist:
ACPI-->DSDT-->Patches:
Item1:
Comment: EHC1 zu EH01
Find: <45484331>
Replace: <45483031>
Item 2:
Comment: EHC2 zu EH02
Find: <45484332>
Replace: <45483032>
Item 3:
Comment: XHC1 zu XHC_
Find: <58484349>
Replace: <5848435F>
DSDT von Hand:
Dies könnt ihr manuell mit dem "USB - Device Renames for OSX 10.11" Patch aus der Reposititory "General" von "Pjalm" (http://pjalm.com/repos/general) machen.
Oder auch mittels Find and Replace, einfach die aufgeführten Veränderungen eintragen:
- EHC1 --> EH01
- EHC2 --> EH02
- XHC1 --> XHC_
Viele dieser Einstellungen bittet der Clover Configurator bereits als Vorschläge.
1.3 3. FakePCIID und FakePCIID_XHCIMux:
Diese beiden Kexte werden ganz einfach nach /EFI/CLOVER/kexts/Other installiert. Sie routen einige Ports zu einem anderen Port Controller und umgehen somit das USB Limit. Manchmal sind alle USB Ports nach dem einfachen installieren des Kexts bereits voll funktionstüchtig. Downloaden könnt ihr das Kext Paket hier: FakePCIID und Ergänzungen
1.4 4. USBInjectAll:
In beiden dieser Anleitungen wird erklärt wie sich der USBInjectAll.kext nutzen lässt. Zudem wird gezeigt, wie jeder einen Custom Port Injector für seine Ports im 15-Port Limit, erstellen kann. Falls die anderen Methoden nicht geholfen haben, sollte sich so jedes USB-Problem an einem Intel USB3 Hackintosh fixen lassen. Der oben aufgeführte DSDT Patch wird hierfür nicht zwingend benötigt. Alle anderen USB Kexts außer USBInjectAll.kext sollten vom Hacky entfernt werden.
1. Anleitung: USB 3.0 mit USBInjectAll (kuckkuck)
2. Anleitung: USB 3.0 mit USBInjectAll (Brumbaer)
1.5 5. Windows _OSI-->XOSI Methode
Diese Methode beeinhaltet eine SSDT und einen DSDT Patch und richtet sich ausschließlich an fortgeschrittene User!
_OSI in der DSDT erkennt welches Betriebssystem auf dem PC läuft und passt dementsprechend den ACPI-Code an. Die im folgenden benutzte SSDT definiert verschiedene Windows Versionen für die sog. _OSI Methode in der DSDT. _OSI ist ein Vorgang beim Systemstart und wird vom ACPI-Host bereitgestellt (zB OS X, Windows, Linux usw.) Es wird dann aus dem vom OEM bereitgestellten ACPI-Code aufgerufen, um festzustellen, welches Betriebssystem läuft. Das Betriebssystem wird erkannt, was wiederum der Firmware erlaubt, anders auf bestimmte ACPI-Methoden zu reagieren. Dies kann auch einen Einfluss auf das USB Verhalten haben. Beispiel: Für einen alten Computer, kann durch die _OSI Methode, die DSDT, USB3.0-Ports deaktivieren und alle USB2.0-Ports an EHCI (über Chipsatzkonfiguration) weiterleiten. Die Methode ermöglicht dadurch zudem Abwärtskompatibilität mit beispielsweise einem System das keine XHCI-Treiber hat, wodurch ein USB3.0-Gerät in einen USB3.0-Anschluss eingesteckt und als USB2.0 Gerät erkannt werden kann, wie als gäbe es keinen XHCI-Controller sondern nur EHCI.
Was wir also versuchen, ist dem ACPI Code vorzugaukeln, dass wir ein anderes Betriebssystem benutzen um so den ACPI-Code beim Systemstart zu beeinflussen. (Beispielsweise Windows 7) Dazu muss erst einmal XOSI definiert werden. Dies passiert mittels einer einfachen SSDT, die in den Ordner /EFI/CLOVER/ACPI/patched/ gelegt wird. Sie muss danach noch in die SortedOrder in der config.plist eingetragen werden. Downloaden könnt ihr die SSDT.aml und .dsl (zur Erklärung) hier: XOSI SSDT.zip
Jetzt brauchen wir nur noch einen DSDT Patch mit dem wir auf die SSDT verweisen. Dafür müssen wir _OSI in XOSI umbenennen.
config.plist:
ACPI-->DSDT-->Patches:
Item1:
Comment: _OSI zu XOSI
Find: <X09TSQ==>
Replace: <WE9TSQ==>
DSDT von Hand:
Wir öffnen also unsere DSDT in MaciASL, gehen oben auf Edit-->Find und dann "Find and Replace". Bei Find geben wir
und bei Replace
ein. Jetzt nur noch alle Stellen in der DSDT ersetzen und wir sind fertig. Die DSDT jetzt noch einbinden (/EFI/CLOVER/ACPI/patched/) und _OSI Windows 7 sollte nach einem Neustart erfolgreich simuliert werden. Die USB Ports sollten jetzt funktionieren und Windows 7 mittels der _OSI Methode simuliert werden.
1.6 6. Port Limit Patch
Vorwort:
Seit Sierra häuft sich die Benutzung eines KextPatches von RehabMan welcher das gegebene USB Limit anhebt. Der Patch funktioniert, doch RehabMan selber warnt vor der Benutzung.
Hier seine Worte:
IMPORTANT! The port limit patch should not be used as a permanent solution. There is now clear evidence that using it causes other data beyond what is evidently a fixed size array to be clobbered. The result is strange behavior by the USB drivers when the port limit is exceeded.
Trotzdem sei diese Methode aufgrund der häufigen Benutzung hier aufzuführen obgleich wir sie nicht empfehlen.
Der Patch entfernt das seit El Capitan vorhandene USB Port Limit, wodurch alle verfügbaren, ob real oder unbelegte Ports, aktiviert werden.
Für das Anheben der USB-Port-Bergrenzung unter macOS Sierra in Verbindung mit Rehabman's USBInjectAll.kext müssen folgende Dinge gemacht werden.
Die erste Variante ist jeweils zum Eintrag in den CloverConfigurator unter KernelAndKextPatches/KextsToPatch, die zweite käme alternativ direkt in die Clover config.plist an die selbe Stelle. Mit diesem Patch wird die Arbeit am Hackintosh doch deutlich leichter.
Port Limit Patches können hier gefunden werden:
NEUE CLOVER "KEXTSTOPATCH"-EINTRÄGE FÜR SIERRA & HIGH SIERRA