Anleitung: USB 3.0 Mojave / (High-) Sierra / El Capitan für jedermann (zukunftssicher für Updates & komplett gepatcht)

  • In letzter Zeit häufen sich die Probleme mit USB 2.0 und vorallem 3.0 unter Sierra und El Capitan. Apple hat seit El Capitan ein Port-Limit in ihr OS eingebaut welches die Nutzung von mehr als 15 Schnittstellen gleichzeitig verbietet. Manche Kexts sollen dieses Problem beheben aber selbst diese haben nur noch eine geringe Erfolgsrate. Hier ist ein Guide wie jeder von euch mit etwas Zeit, alle USB Ports seines Hackintoshs zum laufen bringen kann. Diese Methode funktioniert nach Updates immernoch. Das heißt: Einmal gemacht und für lange Zeit werden eure USB Ports keine Probleme mehr machen. Es gibt bereits Anleitungen in diesem Forum welche das gleiche Vorgehen erklären. Ich werde aber versuchen diese Anleitung so einfach und nachvollziehbar wie möglich zu gestalten damit sie jeder selber anwenden kann.


    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:


    Die hier präsentierte Lösung benutzt nicht diese Methode und ist somit komplett ungefährlich. Ich kann nur zu dieser Methode raten da sie zukunftssicher und funktionell ist, sowie für allerhand Bootloader wie Ozmosis, Clover und weiteres funktioniert.


    Anleitung:
    1. Um die USB Ports zum laufen zu bewegen, benutzen wir USBInjectAll.kext. Diesen Kext legen wir auf die EFI Partition. Unter Clover ist das der Ordner EFI/CLOVER/kexts/other und unter Ozmosis der Ordner EFI/Oz/Darwin/Extensions/Common. Zur Not geht die Nutzung auch über eine Installation mittels KextUtility nach System/Library/Extensions. Danach machen wir einen Neustart. Der Kext ist auch in dem unten angehangen Paket enthalten.
    Benutzer von X99 Boards müssen zudem die XHCI-x99-injector.kext installieren, damit USBInjectAll funktioniert.
    Benutzer von 200-series Boards sollten eventuell die XHCI-200-series-injector.kext installieren. Die Kernel Extension kann bei Problemen helfen.
    Beide Kext lassen sich ebenfalls im Paket finden (Achtung, eventuell veraltete Dateien!):


    2. Im Bios müssen wir nun folgende Settings überprüfen:

    -Der XHCI Mode muss auf Enabled oder Auto stehen (nicht Smart-Auto)
    -XHCI und EHCI Hand-off müssen aktiviert sein


    3. Nach dem Neustart öffnen wir jetzt den IORegistryExplorer. (auch im Paket) Dieser Abschnitt wird uns präsentiert:

    Nun müssen wir den richtigen Bereich im Explorer finden. Es geht um den XHC@14 Controller. Diesen findet ihr ganz leicht wenn ihr einfach "xhc" auf der Tastatur drückt. (Nicht das Suchfeld benutzen!) Jetzt wird uns in etwa das hier präsentiert:


    4. Als nächstes brauchen wir einen USB 2.0 Stick. Außerdem erstellen wir uns ein neues Textdokument zum mitschreiben.
    Jetzt der wichtige Teil: Der USB 2.0 Stick wird nun nach und nach einmal in jeden Port gesteckt, USB 2.0 und 3.0 Ports! Jedes mal wenn wir den Stick in den Hacky stecken, sollte in einem der HSXX Ordnern eine grüne Schrift aufleuchten. Hier leuchtet zum Beispiel grüne Schrift in HS01 auf:
    Wichtig ist die Bezeichnung HS01! Diese brauchen wir für alles weitere und notieren sie deshalb in unser Textdokument.
    (Falls keine Schnittstelle aufleuchtet oder erscheint (manchmal auch in schwarzer Schrift), hilft häufig ein Neustart des Programms oder ein "aus- und wieder einstecken" des Sticks. Wenn dann immernoch nichts aufleuchtet und der Stick nicht erkannt wird, ist der benutzte Port deaktiviert und wird im Laufe der Anleitung erst aktiviert --> überspringen)


    Was sagt uns die Bezeichnung? Wenn HS01 grün aufleuchtet, heißt das, dass HS01 ein aktiver Port ist denn hier ist die Problematik:
    In OSX dürfen nur 15 USB Schnittstellen aktiv sein. Es gibt HSXX Schnittstellen (USB 2.0) und SSXX/SSPX Schnittstellen (USB 3.0) (XX steht für eine Zahl). In der Liste im IORegistryExplorer sind vorallem HSXX und vielleicht ein paar SSPX Schnittstellen gelistet. Doch nicht alle dieser gelisteten Schnittstellen besitzen auch Zugang zu einem echten Port an unserem Hacky. Im Laufe des Prozesses werden wir sehen, dass manche Ports im IORegistryExplorer nicht aufleuchten werden, egal wo wir einen USB Stick anstecken. Diese Schnittstellen besitzen keinen echten Port am Hacky und werden/können dadurch nie aufleuchten. Sie blockieren aber Platz in der 15-Port Liste für andere, echte Ports! Deswegen müssen wir die unbenutzten Ports entfernen.


    Nachdem wir mit dem USB 2.0 Stick einmal in jedem Port waren, werden manche HS-Ports aufgeleuchtet haben und andere nicht. Jeder Port der einmal aufgeleuchtet hat steht jetzt hoffentlich in unserem Textdokument. Jetzt müssen wir jeden Port "excluden", der nicht aufgeleuchtet hat mittels dem bootarg: uia_exclude=HSXX;HSXX;HSXX
    Die Ports die entfernt werden sollen, werden durch einen Strichpunkt getrennt. Es gibt HS01-HS14. Zudem kommen USR1 und USR2 immer in die Liste (außer sie werden benutzt und angezeigt, was nur sehr selten der Fall ist).
    Beispiel für das Textdokument + daraus folgendes bootarg:


    Dieser Code ergibt sich also durch die Ports, die nicht aufleuchten. Der Code muss jetzt als Bootarg gesetzt werden.


    Das sieht dann unter Ozmosis so:
    (Screenshot aus PlistEdit Pro)


    Und unter Clover so aus:
    (Screenshot aus CloverConfigurator)


    5. Jetzt machen wir einen Neustart und unter Ozmosis einen NVRam-Reset (indem wir ins Bios gehen und dort Win+Alt+P+R drücken).
    Wenn wir jetzt wieder den IORegistryExplorer öffnen, sollte das ganze sich verändert haben. Die Ports in der uia_excludelist sollten nun verschwunden sein, z.B so:
    Wir sehen jetzt neue/mehr SSXX oder SSPX Ports. Das sind wie bereits erwähnt, USB 3.0 Schnittstellen.


    6. Und jetzt kommen wir in die Zielgerade! Mit einem USB 3.0 Stick gehen wir jetzt nach und nach in alle USB 3.0 Ports die der Hacky hat und notieren uns alle SSXX/SSPX Schnittstellen die aufleuchten in das Textdokument.

    Alle Schnittstellen die nicht aufleuchten ergänzen wir jetzt wieder in das Bootarg.
    Wenn z.B nur SSP2 nicht aufleuchtet (d.h alle sichtbaren SSXX/SSPX -Ports leuchten auf außer SSP2) sieht das ganze dann


    unter Ozmosis mit weiteren Bootargs so:


    und unter Clover z.B so aus:


    7. Ein letzter neustart und unter Ozmosis einen NVRam-Reset. Jetzt sollte alles richtig funktionieren!!! Das ganze können wir mit dem Programm Blackmagic Disk Speed Test testen, indem wir dort die Geschwindigkeit eines USB 3.0 Sticks testen, von dem wir in etwa die mb/s kennen. Ich kann euch sagen das wenn der Stick in USB 3.0 Ports über 30mb/s hat, dass der USB 3.0 Port richtig läuft!


    So und das wars. Ich weiß die Anleitung ist etwas länger, aber dafür ausführlich, anschaulich und hoffentlich auch für "Newbies" geeignet! Ich wünsche euch viel Glück!

    Dateien

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

    28 Mal editiert, zuletzt von kuckkuck ()

  • Ich ziehe meinen Hut.



    Gesendet von iPad mit Tapatalk

  • Danke für die Anleitung!
    Nur habe ich den C602 Chipsatz auf dem Board - und damit sieht alles völlig anders aus.
    XHC gibt es nicht ... Statt dessen habe irgendwelche "Hub Simulation" und wenn ich sehen will, was wo drin steckt, dann muss ich unter "USB" suchen und werde dann unter "EHCI Root Hub Simulation@1D" fündig und bekomme dann angezeigt, was das für ein Stick ist.
    Mein Bios ist völlig anders und HS01 gibt es in meiner Kiste auch nicht ...
    Das ist ja der Hit! Es passt einfach nix.
    Im Moment muss ich überhaupt erst einmal unter Yosemite das Installationsprogramm für El C. ans Laufen bekommen. Da bootet das Teil durch und am Schluss kommt "abnormal code .... 255".
    Interessanterweise funktionieren meine Inateck USB 3.0 Karten dabei.
    Stecke ich da in den Kartenleser (USB 3.0) eine CF-Karte rein oder an den USB-Steckplatz einen zweiten Bluetooth-Stick, schnallt das System das und meldet dann die Installation. Das sind halt Karten, die wohl auch im Original-Mac oob laufen.
    Mein USM 2.0 hingegen ist noch ein Problembär. Da schnallt die Kiste nix ...
    Glücklicherweise habe ich jetzt genug Platten und die Hardware so hingebastelt, dass ich das Ganze immer schnell wechseln kann.


    Kann es eigentlich sein, dass das System Kexte sowie DSDT und SSDT irgendwo zusätzlich in einem Cache drin hat?
    Ic habe so einiges in den Ordner "Kexts/Other in meinem Clover drin (in der EFI-Partition). Mir kommt es vor, als sei es völlig egal, was ich da mache oder nicht. Habe auch /10.11 genommen und in der config.plist habe ich natürlich stehen, dass er die Kext-Injection machen soll. Mir kommt das immer irgendwie vor als nimmt der irgendwas aus irgendeinem Cache.
    So, ich bastel mal weiter ...

    ASUS ProArt Z790-Creator WIFI Mainboard
    Intel i9 14900KF CPU, wassergekühlt
    AMD RX 6900 XT Referenz-Layout, wassergekühlt
    1x EIZO CG2730, 1x EIZO CG2700S
    128GB Corsair Vengeance DDR5 5600Mhz
    1x SSD Samsung 860 Evo 500GB mit Sequoia 15.1.1
    1x Sabrent M.2 NVMe SSD 1TB
    Areca 1223-8I mit Raid 1 4TB

    Prodigy Cube - externe Soundkarte
    Magic Keyboard und Magic Mouse


    MacBook Pro 15" late 2013 Retina
    MacBook Pro 15" mid 2015 Retina
    MacBook 6.1


    Lenovo D10 Board mit 2x Xeon X5470, und 32GB DDR2 Ram u. AMD HD 5870 Grafik

  • Danke für dein Mühe.


    Sag mal.... laufen die USB 3.1 Ports auch über SSXX? Leider habe ich gerade keine Hardware da um den Port zu testen und im Systemprofiler sieht man nur den USB 3.0 Bus.


    Habe jetzt erstmal alle unnötigen SSXX Ports excluded, würde die excluded Ports aber noch mal aus der config.plist entfernen und dann testen wenn ich was mit USB 3.1 Stecker da habe. Da müsste nach meinem Verständnis ja noch einer dazu kommen. Oder wie ist das?

    macOS Ventura | Motherboard: MSI MPG Z390I Gaming Edge AC | CPU: Intel® Core™ i5-9500 Processor 6 x 3.0 GHz | Arbeitsspeicher: 32 GB (DDR4-3200) | Sound: Realtek® ALC892

    Grafik: Readon RX 560 | Netzwerkkarte: BCM943602CS | Case: Streacom DB4 Fanless Cube Black


    ___________________


    macOS Ventura | Motherboard: MSI Z170I Pro Gaming AC | CPU: Intel® Core™ i5-6600K Processor 4 x 3.5 GHz | Arbeitsspeicher: 16 GB (DDR4-2133) | Sound: Realtek® ALC1150
    Grafik: Readon RX 560
    | Netzwerkkarte: BCM943602CS | Case: Streacom DB4 Fanless Cube Silver


  • ein Schritt weiter: Ich hatte eine veraltete Version von Clover. WICHTIG: Auch damit erscheint dann der Fehler. "abnormal code ... 255". Ich bin jetzt soweit, dass El Capitan installiert ist und ich kernel panic beim Booten bekomme. Da werde ich mal schauen, woran das liegt ...

    ASUS ProArt Z790-Creator WIFI Mainboard
    Intel i9 14900KF CPU, wassergekühlt
    AMD RX 6900 XT Referenz-Layout, wassergekühlt
    1x EIZO CG2730, 1x EIZO CG2700S
    128GB Corsair Vengeance DDR5 5600Mhz
    1x SSD Samsung 860 Evo 500GB mit Sequoia 15.1.1
    1x Sabrent M.2 NVMe SSD 1TB
    Areca 1223-8I mit Raid 1 4TB

    Prodigy Cube - externe Soundkarte
    Magic Keyboard und Magic Mouse


    MacBook Pro 15" late 2013 Retina
    MacBook Pro 15" mid 2015 Retina
    MacBook 6.1


    Lenovo D10 Board mit 2x Xeon X5470, und 32GB DDR2 Ram u. AMD HD 5870 Grafik

  • @noEE Seit MacOS Sierra laufen auch 3.1 Ports. Diese können im IOReg entweder als SSXX, SSPX, oder USRX erscheinen. Du könntest die SS(P) und USR Ports mal aus der Config nehmen (solange das 15 Port limit dann nicht überschritten wird) und testen ob USB 3.1 dann funktioniert. Die Anzeige im Systemprofiler kann unter umständen auch falsche Infos anzeigen d.h z.B USB 3.1 funktioniert, wird aber als 3.0 angezeigt.


    @Werner_01 Erscheint denn irgendeine Schrift grün in IOReg wenn du einen USB Stick anschließt? Häng mal bitte dein IoReg File hier an...

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

    Einmal editiert, zuletzt von kuckkuck ()

  • Wenn bei mir alle USB 3 Ports funktionieren, ist dann dennoch eine Modifikation notwendig/empfehlenswert?


    Ich hab hier das Problem, dass mein Bluetooth-Dongle (schon der zweite) in unregelmäßigen Abständen einen Verbindungsabbruch mit der MagicMouse fabriziert. Im Prinzip kein Problem - in ner halben Sekunde steht die Verbdindung dann wieder. Ebenso gibt es eine immer wiederkehrende Instabilität mit einem älteren USB 2.0 SD-Card-Reader (Ich kriege dann immer mal OSX-Meldungen, dass die SD-Card nicht korrekt ausgeworfen wurde?

  • Da jetzt die ozmtools funktionieren unter sierra lohnt es sich die args im rom zu speichern!

  • @E.D.L.
    Du brauchst es nicht unbedingt. Deine genannten probleme können mit einer DSDT gefixt werden und sind nicht bootarg, Kext oder USBInkectAll bedingt. Ob es sinnvoll ist, ist die andere Frage. Für dein jetziges OS brauchst du es nicht, aber es kann immer passieren, dass nach einem Update (egal ob groß oder klein) plötzlich nicht mehr alles so läuft wie es soll. Das ganze könntest du vorbeugen indem du bereits jetzt die USB ports klar mit USBInjectAll definierst, dann funktionieren sie auch nach dem Update noch (solange wie der Kext USBInjectAll mit dem neuen Update funktioniert. Da er aber häufig updates bekommt, sollte das kein Problem sein)


    @jboeren Ja das ist eine Möglichkeit, aber nicht unbedingt nötig. Wenn einmal alles läuft, ist das natürlich schön, aber es gibt bestimmt Kandidaten die so viele Ports besitzen, dass sie nicht in die 15 port Liste passen. In dem Fall ist es sinnvoller das ganze extern zu haben damit bei neuen wünschen schnell Veränderungen gemacht werden können ;)
    Außerdem sollte man die defaults.plist mit den bootargs (welche man jetzt ins BIOS einbauen könnte wie du bereits gesagt hast) extern auch nochmal speichern, damit man sie nach einem Update der OZ Version wieder injecten kann ;)

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • ich finde die einstellungen unter meinem Lenovo t420 nicht im Bios.


    heißen die anderst ???

    Intel i7 3770 mit intel HD4000, Asus P8Z77-V LX 8GB GSkill

  • Die Einstellungen können natürlich im UEFI von nicht-gigabyte Boards anders heißen, jede Firma hat da leider ihre eigenen Vorstellungen :/
    Achte einfach darauf das XHCI und EHCI wenn verfügbar, an sind. Zudem USB 3.0 und 2.0 im BIOS aktiviert sind wenn möglich, und falls eine XHCI oder USB 3.0 Mode Einstellung im BIOS ist, diese auf Enabled oder Auto steht ;)

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • Nochmal ne kurze spezielle Nachfrage hinsichtlich der USB-Port-Anzahl. Gilt diese 15-Port-Grenze auch für angeschlossene Hubs - also zählen jenen Hub-Ports auch mit zu den max. 15?


    Da ich hier einen 8er und einen 4er nutze (wohlgemerkt nicht voll belegt) haben meine kleineren Probleme vlt doch irgendwie damit zu tun? Mein Unterbrechungen von USB-Sticks, Bluetooth-Adapter, SD-Cardreader scheinen m.E. ausschließlich dann zu passieren, wenn diese eben nichts zu tun haben!

  • Nein.


    Es zählt nur der Port, an dem dein Hub angeschlossen ist. Kannst also den 4er und 8er wie einen nutzen.

    macOS Ventura | Motherboard: MSI MPG Z390I Gaming Edge AC | CPU: Intel® Core™ i5-9500 Processor 6 x 3.0 GHz | Arbeitsspeicher: 32 GB (DDR4-3200) | Sound: Realtek® ALC892

    Grafik: Readon RX 560 | Netzwerkkarte: BCM943602CS | Case: Streacom DB4 Fanless Cube Black


    ___________________


    macOS Ventura | Motherboard: MSI Z170I Pro Gaming AC | CPU: Intel® Core™ i5-6600K Processor 4 x 3.5 GHz | Arbeitsspeicher: 16 GB (DDR4-2133) | Sound: Realtek® ALC1150
    Grafik: Readon RX 560
    | Netzwerkkarte: BCM943602CS | Case: Streacom DB4 Fanless Cube Silver


  • @jboeren War das mit SSPXX auf meine Anleitung bezogen? ;)
    @E.D.L. Es handelt sich immernoch um ein Problem, welches durch eine DSDT gefixt werden kann oder ein Problem mit der Verbindung wegen der Distanz ;) Vielleicht kann dir @al6042 helfen...

    Du kommst bei deinem Problem nach dem unendlichsten Versuch nicht weiter? Dann schreib mir eine Nachricht für eine TeamViewer Sitzung. Nur wenn es gar nicht mehr weiter geht!
    Alle anderen Fragen und Anliegen gehören ins Forum.

  • @kuckkuck und @E.D.L.
    bin auf Reisen und kann aktuell keine DSDTs bearbeiten... :)

    Gruß
    Al6042

    Keine Unterstützung per PN oder Pinnwand... Eure Anfragen gehören ins Forum, nicht in mein Postfach!