Kext as Kext can oder USB 3.0 ohne USBInjectAll

  • Danke dir für das Tutorial und natürlich auch für die Fehlersuche @Brumbaer
    Das war natürlich goldrichtig. Werkelt nun alles wie es soll!


    Mein funktionierendes File für alle anderen gibt es natürlich ebenfalls hier zum Download.


    EDIT:
    Hab das alte File rausgenommen weil da noch ein kleiner Fehler drin war und gegen ein aktuelles ausgetauscht.
    Achja in meinem File ist nur der USB 3.0 Controller Port neben den RAM Bänken des Asus X99-A II definiert,
    sprich wenn ihr eure Gehäuse USB 3.0 Anschlüsse am unteren Host angeschlossen habt wird USB 3.0 nicht funktionieren!

  • Mein Board hat EHC1, EHC2 und XHCI (X99) und zusätzlich einen ASM1042A, der jetzt keine weitere Rolle spielt. Damit XHCI problemlos läuft, benötigt dieser "AppleUSBXHCILPTH". Egal ob nun deine individuelle Kext oder über Rehabmans UsbInjectAll – was letztendlich ebenfalls bewirkt, dass "AppleUSBXHCILPTH" geladen wird, verstehe ich eine Sache daran nicht:


    Solange XHCI mit dem "Wald und Wiesen Treiber AppleUSBXHCIPCI" betrieben wird (was ja nur eingeschränkte Funktionalität bietet), werden die EHCI korrekt behandelt. Das heißt, reine USB2 vom Mainboard an entsprechende Buchsen am Gehäuse und daran angeschlossene Geräte werden auch korrekt im Systembericht (wie auch IORegistryExplorer) angezeigt. Auch das auf dem Board integrierte Bluetooth-Modul hängt intern am EHCI und wird dort angezeigt. Sobald aber AppleUSBXHCILPTH sich an XHCI andockt, werden sämtliche Geräte von EHCI unter XHCI verbucht.
    Es funktioniert alles, ich hab auch keinen Stress mit dem Portlimit, mir war nur schon vor deiner sehr einfachen und individuellen Kext nicht klar, was da eigentlich diesbezüglich intern läuft. Alle Versuche auch EHCI vernünftig zu deklarieren ändern nichts an diesem Verhalten. Nicht das ich hier unbedingt etwas ändern muss, ich verstehe es nur einfach nicht.

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • Hat jemand das schon auf ein X99er Gigabyte Board implementiert?

  • @apfelnico


    Der X99 Chipsatz hat 2 EHCI und einen XHCI Controller.
    Allerdings teilen sich beide die selben Ports. Ein Port kann nur von einem Controller verwendet werden.


    Wird der XHCI Controller korrekt initialisiert bekommt er die Ports, sonst nehmen sie sich die EHCI Controller (einer 8, einer 6 Ports).


    Der AppleUSBXHCIPCI passt nicht zum X99 Controller, deshalb funktioniert USB 3.0 auch nicht mit ihm.
    Die Ports werden zwar korrekt (im Sinne von IORegistryExplorer) eingetragen, funktionieren aber nicht.


    AppleUSBXHCILPTH ist der richtige Treiber für den XHCI Controller. D.h. der XHCI Controller wird korrekt initialisiert, alle Ports gehen an den XHCI Controller und die EHCI Controller haben das nachsehen.


    Wenn man sich im AppleUSBXHCIPCI.kext den Eintrag für AppleUSBXHCILPTH anschaut sieht man, dass dieser für das Device mit der ID 8c31 angelegt wurde.
    Das ist der XHCI Controller des Vorgängers des X99 Chipsatzes (C220 aus 2013, C610 aus 2014).

  • Prima, danke. Jetzt ist es klar.



    Gesendet von iPhone mit Tapatalk Pro

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • @Brumbaer


    eine Frage. Das ASUS X99-A II hat 2 interne USB 3.0 Stecker (für z.B. 4 externe Front Panel USB3.0 Anschlüsse) sowie 4 externe Back Panel USB3.0 Anschlüsse. Solange man nur einen der zwei internen USB 3.0 Stecker (SSP1,SSP2 oder SSP3,SSP4 und respektive HS Ports) sowie die 4 externen USB3.0 Anschlüsse (SSP5,SSP6 und respektive HS Ports) einbindet, funktioniert alles wunderbar. Bindet man aber beide internen USB3.0 Stecker (SSP1, SSP2, SSP3, SSP4 und respektive HS-Ports) und alle 4 externen Back Panel USB3.0 Anschlüsse (SSP5,SSP6 und respektive HS-Ports) ein, ist plötzlich Schluss mit lustig. In der IOREG scheinen dann nur noch SSP1 und SSP2 auf und alle USB3.0 ports, die mit SSP3,SSP4, SSP5 und SSP6 verbunden sind funktionieren gar nicht mehr oder nur noch als USB2.0. Um alle USB3.0 Anschlüsse des Asus X99-A II einzubinden, braucht man alle 6 SS-Ports und respektive HS-Ports und das scheint eben nicht zu funktionieren.


    Bei, ASUS Prime X299 Deluxe sind die USB3.0 Anschlüsse besser implementiert. HS01, HS02 sowie SSP1 und SSP2 werden von dem Board gar nicht verwendet. Man benötigt also nur 4 SS-Ports (SSP3,SSP4,SSP5 und SSP6) und respektive HS-Ports und alle verfügbaren USB3.0 Anschlüsse sind damit wunderbar eingebunden.


    Gibt es irgendeine Erklärung warum man nicht mehr als 4 SS-Ports und respektive HS-Ports einbinden kann? Die erste Vermutung war das USB Port Limit. Mein USB Port Limit KextToPatch Eintrag ist aber richtig implementiert und wird auch korrekt vom System verwendet. Auch die Variation der Port limits (zw. z.B. 24 und 30) scheint nichts daran zu ändern dass beim Einbinden von mehr als 4 SS-Ports und respektiver HS-Ports, eben Schluss mit lustig ist.


    Um alle USB2.0 und USB3.0 Anschlüsse einzubinden bräuchte man (HS01 bis HS10 und HS12 bis HS14 sowie alle 6 SSP-Ports), also ingesamt 19 Ports. Was nicht funktioniert ist z.B. (HS01,HS02, HS05 bis HS10 und HS12 bis HS14, sowie SSP1, SSP2, SSP5 und SSP6), also genau 15 Ports!


    Den Port Count habe ich im Kext übrigens auf 1a000000 gesetzt.


    Als USB Port Limit KextToPatch Eintrag verwende ich unter 10.13:


    AppleUSBXHCIPCI Find:837d8c10 Replace:837d8c19 (wobei ich 19 als XX verstehe und entsprechend variiere, ohne jeden Erfolg


    Als USB Port Limit KextToPatch Eintrag verwende ich unter 10.12.6:


    AppleUSBXHCIPCI Find:83bd74ff ffff10 Replace:83bd74ff ffff1b


    Ich bin gespannt was Du dazu sagen kannst.... Weisst Du irgendeine Lösung für das 6 SS-Port Problem?

    Einmal editiert, zuletzt von kgp-imacpro ()

  • @kgp – da ist nix dran. Es funktionieren sowohl beim X99 alle SSP nebst ihren zugehörigen HS vom XHCI, wie auch beim X299. Selbstverständlich sind beim X299 SSP1/HS01 und SSP2/HS02 vorhanden. Bei mir hängen daran zum Beispiel die beiden Front-USB3 des Gehäuses. Ob die nun bei deinem Board verwendet/verkabelt sind, oder du diese per DSDT, SSDT oder Kext umbenannt hast, weißt nur du. Auch ist es möglich, diese im BIOS hardware-seitig abzustellen.

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • @apfelnico


    ich hab beim ASUS Prime X299 Deluxe gar nichts umbenannt. Weder mit DSDT, noch SSDT noch kext... HS01,HS02,SSP1 umd SSP2 werden nicht verwendet. Meine USB3.0 Front Ports hängen an HS03, HS04 sowie SSP3 und SSP4... eine Diskussion zum ASUS Prime X299 Deluxe ist hinfällig da mein XHC USB Kext für dieses Port eh perfekt funktioniert.


    Bzgl. meiner eigentlichen Frage hätte ich lieber wenn möglich eine Antwort von @Brumbaer.


    Den ASUS X99-A II XHC USB Kext entwickelt eigentlich eh der @DSM2 und nicht ich... Ich hatte Ihm dabei nur ab und zu etwas geholfen. Trotzdem würde ich gerne wissen ob es bzgl. der HS und SS Port-Zahl wirklich ein Problem gibt, und wenn ja wo dabei genau das Problem liegt und ob es dafür eine Lösung gibt.


    Danke


    KGP

    Einmal editiert, zuletzt von kgp-imacpro ()

  • Sorry, du hattest ja das X299 ins Spiel gebracht. War nur ein Hinweis. Dann hatte ich das wohl missverstanden: "HS01, HS02 sowie SSP1 und SSP2 werden von dem Board gar nicht verwendet." Sollte gemeint sein, werden von Dir nicht verwendet.
    Zum X99, schau dir noch mal die Port-Nummerierung an.

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • Die entsprechenden Ports werden von mir nicht verwendet da sie auch mein X299 Mobo ohne jeden USB kext in der OS X USB-Notkonfiguration nicht verwendet. Auf alle Fälle funktioniert mein X299 kext ohne wenn und aber...


    Die Lösung zum ASUS X99-A II kext überlasse ich @DSM2. Ich wollte von @Brumbaer nur wissen, ob es generell ein Problem bei der verwendeten HS und SS Port-Anzahl geben kann. Und wenn ja, warum in diesem Fall der USB Port Limit Patch möglicherweise nicht greift. Eigentlich war dies die Vermutung von @DSM2 und ich wollte mich da bei @Brumbaer diesbezüglich nur rückversichern.


    Ich hatte eigentlich nicht vor mit Dir eine ausgedehnte Diskussion zum Thema zu starten ;)

    Einmal editiert, zuletzt von kgp-imacpro ()

  • Dann antworte doch nicht immer, bin ja somit auch im Zugzwang. ;)
    He, alles gut. Wollte nur damit ausdrücken, beim Asus Prime X299 Deluxe sind alle Ports unter macOS vorhanden. Auch in der Basiskonfiguration mit AppleUSBXHCIPCI. XHCI funktioniert natürlich dann korrekt mit AppleUSBXHCILPTH.
    Ebenfalls beim X99. Bin aber sehr gespannt auf Brumbaer, schätze seine Kompetenz sehr.


    Edit: Was mich nur verwirrte und nun Klarheit besteht, war obige Frage von mir zum Thema X99. Diesbezüglich ist X99 "komplizierter" als X299, da neben dem XHCI noch zwei EHCI existieren und je nach Konfiguration (auch schon im BIOS) die Controller verschieden auf die Ports zugreifen, teilweise auch im Bootprozess noch wechseln. In diesem Zusammenhang ist mir nun auch klar, warum es deutlich mehr HS## als SSP# am XHCI gibt. Fakt ist aber (ich habe auch so ein Board), du kannst alle sechs SSP# nebst deren korrespondierenden HS## nutzen.
    Grüße (ich halte jetzt meinen Mund, muss endlich arbeiten)

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • Der Diskussionsreigen zwischen uns wird so wohl sicher kein Ende nehmen :rolleyes:


    Die IOPCIPrimaryMatch des ASUS Prime X299 Deluxe XHC onboard controllers ist "0xa2af8086". Der entsprechende AppleUSBXHCIPCI-Treiber is daher also nicht wie beim X99-A II ("0x8d318086") der "AppleUSBXHCILPTH" sondern der "AppleUSBXHCISPT" und den hab ich in meinem Kext auch eingebunden.


    Nun aber was Versöhnliches zum Abschluss :rolleyes:


    Soviel ich weiss verwendest Du noch immer SMBIOS macpro6,1. Ich verwende aber von Anfang an SMBIOS iMac17,1.... Vielleicht liegt hier die Divergenz in unseren Aussagen? ;)


    Grüße


    KGP

    4 Mal editiert, zuletzt von kgp-imacpro ()

  • @kgp : Ja, das ist der Unterschied -> SMBios


    Jedenfalls funktioniert der Kext von mir nicht, sobald ich iMac als Definition einstell.

  • Sitze gerade am real MacPro im Schnitt, war aus dem Kopf. Du hast sicher recht mit dem konkreten Treiber, werde ich wohl auch so haben. Ändert aber nichts an der Kernaussage, dass alle Ports vorhanden sind, von Anfang an. Macht aber nichts, weil du alles mit Sicherheit korrekt ansteuerst und die verbleibenden Ports nicht nutzt. Ich wollte nur (auch für andere hier Mitlesende), dass nicht der Eindruck entsteht, das Board könne es nicht, die Ports würden nicht zur Verfügung stehen.


    Edit: BIOS-Definition spielt eine Rolle, in dem Zusammenhang muss natürlich auch (zurück zum Thema) die hier besprochene Kext angepasst werden. Sonst greift ja eine der Voraussetzungen nicht zum erfolgreichen laden und andocken der nachfolgenden Kext an den Controller.


    Edit2: Hat auch die korrekte Definition des LPC/LPC0/LPCB damit zu tun?
    Nachdem ich hier auch eine Änderung, speziell zu "compatible" vorgenommen hatte, tauchte beim X99 auch der zweite EHCI auf, der vorher völlig ausgeblendet war.

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

    Einmal editiert, zuletzt von apfelnico ()

  • @DSM2


    Du sollst ja beim Asus X99-A II auch gar nicht SMBIOS iMac17,1 verwenden. Hier ist SMBIOS MacPro6,1 absolutes MUSS!!!


    Ich verwende beim ASUS Prime X299 Deluxe das SMBIOS iMac17,1 weil letzterer auf Skylake basiert und daher die SMBIOS iMAC17,1 Definition auch mit ssdtPRGen.sh von Pike Alpha kompatibel ist und korrekt funktioniert. Auf Grund von SMBIOS iMac17,1 ist aber grad @Brumbaer 's Kext-Ansatz fundamental und überlebenswichtig, da es keine Implementierung von iMac17,1 in dem IOUSBHostFamily.kext oder AppleUSBXHCIPCI.kext gibt!



    @apfelnico schwört auf XCPM ohne ssdtPRGen.sh und ssdt.aml von Pike Alpha, daher verwendet er wie bei den X99 Boards und bei den Broadwell-E/EP (Haswell-E/EP) Prozessoren auch bei Sklake-X/X299 weiterhin SMBIOS MacPro6,1. Aber ich will da nicht die nächste Diskussion lostreten :D Das wäre auch der falsche Thread dazu...


    Gruß,


    KGP

    3 Mal editiert, zuletzt von kgp-imacpro ()

  • Das ich das SMBios nicht benutzen muss war mir von Anfang an klar und braucht mir gar nicht erläutert werden! Es ging bei meiner Aussage lediglich darum das die Adressierung AppleUSBXHCILPTH vs. AppleUSBXHCISPT SMBios spezifisch ist!!! Deshalb meine Anmerkung das der Kext nicht funktioniert wenn ich 17,1 anwähle weil eben für smbios des MacPro 6,1 geschrieben!

  • Was ja nun tatsächlich ein ganz anderes Thema ist. Ich schwöre auch nicht drauf, es hatte konkrete Gründe. Prozessor ist das eine, Speicheranbindung und restliche Architektur eine andere. Speziell bei mir war es aber der ausschlaggebende extrem wichtige Punkt, eine bestehende Systemdefinition inkl. Seriennummer und darauf aufsetzender AppleID zu übernehmen. Daran wollte ich nicht rütteln. Das man dann XCPM auch einem System mit MBIOS MacPro6.1 beigebogen bekommt und die Frequenzvectors vom zum Beispiel iMac17 nimmt, ist doch möglich. Was ist daran nun lustig und was hat das hier zu suchen?

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • @apfelnico, ich hab nur gesagt dass beim ASUS Prime X299 Deluxe unter SMBIOS iMac17,1 die Ports HS01, HS02, SSP1 und SSP2 nicht verwendet werden, auch nicht in der OSX USB Notfall-Treiberkonfiguration. Ich kann das leider nicht ändern... ist einfach so...


    Lustig ist bei der ganzen Diskussion gar nichts... ich hatte den Smily nur angehängt um nicht wie gesagt noch eine weitere Diskussion loszutreten.


    Gruß,


    KGP

  • Ah, das ist jetzt ein neuer Zusammenhang (SMBIOS), den ich vorher nicht hatte. Da ich immer noch am Schnittplatz hocke und weiter machen muss, kann ich das nicht weiter prüfen. Dann entschuldige, verstehe meinen Beitrag als allgemeines Veto (bezogen auf das Board könne es nicht), relativiere es auf, unter bestimmter SMBIOS mag es nicht. Wobei ich auch hier die Erfahrung gemacht habe, dass (und das zeigt ja auch dieses Kext eindrucksvoll) man zuzüglich zum SMBIOS durch weitere Beschreibungen die verwendete Hardware macOS begreiflicher macht. Egal ob nun per DSDT, zusätzlicher SSDT oder quasi live durch Clovers ACPI-Patches erledigt wird, oder durch "Injectoren".

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • @Brumbaer


    kannst Du bitte sobald Du Zeit findest nach dem ganzen Hin und Her bitte meine einfache ursprüngliche Frage beantworten?


    Vielen Dank im Voraus,


    KGP