Elegantere (und einfachere) ACPI USB Port Mapping Methode mittels conditional Root HUb Replacement (XHUB Methode)

  • Hintergrund: USB Ports via ACPI zu mappen war bislang schon ein bisschen ein Krampf: ACPI tables dumpen, SSDT mit den USB Potr-Deklarationen finden, die Tabelle droppen und durch einen komplett neu geschriebene SSDT ersetzen, die für jeden Port der unter macOS irgendwie anders behandelt werden soll eine OSI-Weiche benätigt (beschrieben hier: USB mittels SSDT deklarieren). Das ist übermäßig aufwendig, fehlerbehaftet und unübersichtlich.


    Das ganze geht auch viel einfach und ohne die OEM SSDT zu ersetzen. Dazu deaktiviert man wenn macOS läuft einfach das originale USB Root Hub (RHUB oder HUBN) und definiert einfach ein neues Hub, das für macOS verwendet wird. Dem neuen Root Hub fügt man dann einfach die bis zu 15 Ports hinzu, die unter macOS verwendet werden sollen und speichert da ganze als SSDT-XHUB.aml oder SSDT-HUBX.aml (je nachdem wie das OEM Root Hub heisst). Die SSDT speist man dann einfach über den Bootloader der Wahl ein, ohne drop and replace der OEM-Tabelle.


    Besipeildatei (Auszug):



    Das sieht dann in Hacckintool so aus:


    Bei den USB 2 Ports könnte man noch den Typ anpassen, aber dafür hat es halt nur 5 Minuten gedauert und ich musste nicht im original Table rumfuchteln!

    Den Step-by-Step guide gibt es auf meiner repo: https://github.com/5T33Z0/OC-L…rts/XHUB_Method/README.md

  • Die Methode, ein eigenes USB-Hub zu definieren und das originale einfach zu deaktivieren, ist keineswegs neu. Sie wurde bereits vor längerer Zeit ausführlich dokumentiert und auch praktisch angewendet – inklusive der Variante, die SSDT-XHUB oder was immer heißt, ohne die Originaltabelle zu droppen.

    Es wirkt ein wenig befremdlich, das nun als „kürzlich entdeckt“ darzustellen, obwohl die Vorgehensweise längst bekannt ist und bereits von anderen ausgearbeitet wurde.

    Anerkennung für vorhandene Arbeit schadet nicht – gerade in einer Community, die stark vom Austausch lebt :think:

  • Kann mich noch sehr genau an die hitzige Diskussion erinnern.

    Deswegen bin ich jetzt auch etwas irritiert.

  • Hitzig würde die Diskussion jetzt nicht nennen wollen aber ja wir hatten das im Tahoe Thread ja schon auseinander gedröselt :)


    So wirklich neu ist der Ansatz also wirklich nicht wobei ich aber auch nicht glaube das ST3R30 sich hier mit fremden Federn schmücken möchte sondern der Ansatz für Ihn und vermutlich auch viele andere hier wirklich "neu" ist. Begründen lässt sich das möglicherweise damit das die Lösung von Nico hier seit einer gefühlten Ewigkeit dokumentiert ist und praktiziert wird einfach weil es funktioniert und demnach auch nicht hinterfragt wird. Das USB Portmapping ist ja ohnehin irgendwie so ein einmalig notwendiges Übel das man dann eben erledigt (oft genug der Einfachheit halber mit der USBToolBox) und anschließend vergisst bis irgendwann Apple was am OS schraubt und es plötzlich nicht mehr geht. Das sich in der Zwischenzeit die Dinge weiterentwickelt haben ist dann komplett an einem vorbei gegangen einfach weil keine Notwendigkeit bestand sich damit zu befassen lief halt Jahrelang einfach so mit...

  • Ich habe einen Pull Request zu dem Thema vor 10 Monaten bekommen, um das Thema in meiner Repo zu verlinken (steht auch in den Credits übrigens). Also noch lange, bevor ihr überhaupt darüber gesprochen habt. Allerdings habe ich es mir nicht weiter angesehen, weil es micht interessiert hat und weil es nicht gut dokumentiert war.


    Heute habe ich es getestet und ordentlich dokumentiert und werde ab jetzt nur noch diese Methode promoten – weil ihr macht es ja anscheind nicht.


    JustFun Ja, dann zeig mal wer das wann und wo "ausführlich dokumentiert hat". Weist du, was einen faden "Beigeschmack" hat: Deine Versuche, mich jedmöglicher Gelegenheit zu diskreditieren, weil ich deinen unkorrekten USBMap.kext fix kritisiert habe…

  • Ich möchte an der Stelle darum bitten das ggf., falls notwendig, bitte per PN oder auf andere geeignete Weise auszudiskutieren und davon abzusehen das hier öffentlich zu tun ich danke Euch.

  • Die Methode wurde schon früher beschrieben, genau weiter im verlinkten Thread von Nico in Beitrag #7.

    Ich habe kein persönliches Problem mit dir und bin auch nicht an Streit interessiert. Wenn du das anders siehst, ist das deine Sicht, ich sehe das anders.

  • Das hat Nico schon vor 2-3 Jahren so auf dem SAGE10G beschrieben…

  • Hier mein Feedback:


    Hast du super zusammengestellt was Nico mal hier bereits ausgiebig schon zelebriert hat und auch gut dass du auf deine Repo verweist für die Props.


    damit gerät das nicht in Vergessenheit…

  • Kein Problem, Themen dürfen sich natürlich wiederholen.

    Es ging mir nur darum, dass die Methode bereits vorher beschrieben wurde – und daher nicht neu ist.

    Im verlinkten Thread hast du übrigens selbst Hilfe dazu gesucht, wenn man den Verlauf durchliest

    Mehr gibt’s von meiner Seite nicht dazu.

  • "Eleganter" habe ich gesagt, nicht "neu"!


    ich denke, dass die Methode sehr wohl einen eigenen Thread verdient und nicht irgendwo am Rande im Verlauf eines Guides für ne andere ACPI USB Port Mapping Methode darben muss, wo es keiner mitkriegt.


    Übrigens: diese Methode ist nicht von Nico, sondern von N0b0dy, auf die sich in Post #158 Cobanramo beruft.

  • 11.10.2021 … ist das nicht die Methode? Wenn nicht haben wir hier eine Alternative verlinked 😃


    Ich lade aber nicht bei GitHub hoch ok?


    Edit: das ist wohl die Drop Methode…

  • kaneske Du bist wirklich ein wahres Genie… Deine Auffassungsgabe ist wirklich enorm. Ich meine, nach dem 3. Anlauf hast Du dann endlich verstanden, dass es um etwas eine andere Methode geht.


    Statt scheiss Witze zu reißen, hättest Du Dir einfach mal den Code ansehen können und dann eventuell was dazu sagen. In Deinem Fall wäre es wahrscheinlich besser gewesen, zu schweigen.

  • Nö warum, das was du beschreibst ist marginal anders, ein Gerät in der ACPI kann deaktiviert werden und an der selben Stellte doch dann auch wunderbar dann dort wieder modifiziert hin gesetzt werden.


    Ich reisse scheiss Witze weil du die Vorlagen gibst, das musst du nun mal abkönnen. Ist so.


    Den Code kann ich schon lesen, keine Sorge...


    Bitte reflektier deine Selbsteinschätzung nicht auf mich, die darfst du behalten.


    Schade dass du wieder hier rum stinkst.

    Ich dachte nach der EFI Nusse war endlich mal Feierabend…naja


    Ach so, ich les hier eh mehr mit als aktiv zu sein, aber ich mag die Community, das so darzustellen als wäre es Hot-New triggert dann aber doch. Daher mein Posting dazu in all seiner Polemie

  • kaneske


    Die Sache ist: du kommst hier rein, ohne zu ahnen, worüber ich überhaupt, um dann aus Reflex zu behaupten: "Das ist alt, das hat Nico schon vor 1000 Jahren gemacht". Und ich denke, "Okay, noch einer, der's nicht verstanden hat…".


    10 weitere Posts später kommst Du nicht etwa auf die Idee zu sagen, "Ach sorry, ich hab' da was verwechselt", was eine vollkommen menschliche Reaktion gewesen wäre. Nein. Du kommst mit: "Ist ja nur marginal anders" … Nein, ist es nicht. Es ist eine grundsätzlich andere Vorgehensweise, die hier weitestgehend unbeachtet geblieben ist und nicht verstanden wird – wie man an deinem Beispiel sieht.


    Insofern: Spiel mit deinen Mac – einen Hackintosh hast Du ja nicht mehr – aber geh mir bitte nicht mehr auf den Sack.


    Danke!

  • Absatz 1: falsch


    Absatz 2: leider auch falsch


    Absatz 3: wiederum auch falsch


    zu 1: les mal die beiden Codes, dann erkennt man - es ist das gleiche nur anders


    Wenn du in einer SSDT das ursprüngliche Device (wobei die SSDT dann zwingend nach der Table kommen muss die original ist) per _STA und _OSI Weiche deaktivierst, es also wieder PXSX wird, kannst du klar da dann ein neues anlegen und das dann entsprechend benennen XHUB oder PUPS oder was auch immer, da knallst du dann deine Ports mit den Capabilities hinter.

    Die die SSDT per Drop der Original Table hat halt ALLE Informationen die im Original waren außer die, die nicht mehr darin gewollt sind und die Namen angepasst. (Nico)


    Das per -noch eine SSDT- zu machen ist umbiegen beim Laden der gewollten Teilparameter des Inhalts.



    zu 2: daher ist es marginal anders weil - siehe zu 1


    zu 3: ich spiele nicht mit dem Mac ich arbeite damit, spielen tue ich an PS5, Series X, Switch 2 und Windows, Spielen am Mac ist nicht so meins, das macht sich besser auf den passenden Platformen, ich kann gerade echt Mario Kart World empfehlen, wollte die Tage auch mal in Death Stranding 2 rein schauen…mal gucken.

  • Ich weiß nicht um was es geht ... Aber der Ton hier gefällt mir gar nicht.

    Zum Verkauf geplant -> Board: GA-Z97X-UD5H-BK / CPU: i7-4790K / Grafikkarte: R280X / RAM: 16GB DDR3
    CNC Maschine (Apple Power Mac G5): Board: GA-Z77N-WiFi / CPU: i5-3570K / R280X / RAM: 16GB DDR3


    Rechtschreibung, Grammatik, Satzzeichen, Textformatierung und manchmal auch ein Komma führen zu einer besseren Verständlichkeit ;) :D

  • Ich denke hier ist alles gesagt und bevor der Ton noch schärfer wird als er ohnehin schon ist mache ich den Thread zu.


    :closed:

  • griven

    Closed the thread.