Kein USB3 trotz Kext2Patch uvm.

  • Hi zusammen,


    ich hole mal was weiter aus, damit ggf. der Weg schon weitere Erkenntnisse für Profis liefert.


    Damit bin ich gestartet:
    Alle USB3 Geräte (in meinem Fall nur Stick + ext. Festplatte) werden nicht mehr erkannt.
    An USB3 Ports passiert gar nichts (egal ob die vom IntelChipsatz oder die vom ASMedia) und an den USB2 wird das Gerät lt. Festplattendienstprogramm zwar erkannt (es erscheint) - kann aber nicht aktiviert werden.
    Den Kext2Patch von AL6042 hab ich schon hinterlegt, NVRAM gecleared - keine Chance


    Die folgenden Schritte hab ich nach Internetrecherche gestern durchgeführt:
    Ich habe mir mal die Mühe gemacht und eine custom-USB-SSDT für mein Mainboard gebaut.
    Daraufhin sind jedenfalls per IOREG (PCI0/XHC14) auch alle Controller/Ports (HS01-14 und SS01-06 = 20!) sichtbar.
    Dadurch funktionieren immerhin USB2 Geräte an USB3 Ports - das hatte vorher nicht funktioniert. Ziel ist aber weiterhin, dass auch USB3 Geräte an USB3 Port laufen.


    Danach habe ich via Bootflag die Ports auf das von Apple gesetzte PortLimit von 15 runtergebrochen - ungenutzte Ports sind einfach deaktiviert --> damit fällt nämlich das mittlerweile echt extrem nervige KextToPatch Thema bzgl. PortLimit endgültig weg.
    Das Resultat ist nur dummerweise nicht das Gewünschte, denn....
    ...jetzt hab ich zwar erfolgreich auf 15 Ports (es werden im ioREG auch nur die 15 angezeigt) reduziert, trotzdem sind die USB3 Ports für USB3 Geräte tot :( (USB2 Geräte an USB3 Port funktionieren weiterhin)


    So und jetzt bin ich komplett ratlos. :help Hab alles gemacht und probiert, was so in den Foren steht -- nada :(


    Hoffe jemand hat noch eine Idee - vielen Dank!

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

  • Welcher Treiber wird geladen ?


    Überprüfe die IOClass in IOReg.


  • Hi,


    hier der Screen - ist auf jeden eine andere als deine .... *Hoffnung* :)

    Bilder

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

  • Falscher Treiber.


    Lege das Kext aus dem Anhang in den Other Ordner deiner EFI Partition.


    Nach einem Neustart sollte es gehen.

  • Leider nein, Kext wird lt. bootlog erkannt, aber keine Veränderung.


    Zitat

    6:080 0:012 Use origin smbios table type 1 guid.
    6:096 0:016 Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\Other
    6:096 0:000 Extra kext: EFI\CLOVER\kexts\Other\Z270USB.kext (v.<null string>)


    Kurzer Hinweis, da es mich leicht verwirrt -- deine Datei ist für den Z270 Chipsatz - mein Hero VIII ist aber Z170

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

  • Sorry, ich dachte du hättest einen Z270. Dann hilft es nicht und der Treiber passt sowieso.

  • Schick mal bitte eine gesicherte IOReg Datei, dann kann @Brumbaer die richtige device-id des XHCI eintragen...


    BIOS settings hattest du soweit nochmal überprüft?


    Edit: Wenn der passende Z170 Treiber bereits geladen wird, dann hat sich das wohl erübrigt...

    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.

  • Sorry, ich dachte du hättest einen Z270. Dann hilft es nicht und der Treiber passt auch zur PCIId.


    Lade bitte mal die IOReg hoch, vielleicht sieht man was in den einzelnen Einträgen.


    Hat sich mit @kuckkucks Antwort überschnitten

  • Ich bin irritiert.... auf meiner Skylake-Holzbox ist auch der AppleUSBXHCISPT am Rennen.
    Das Gleiche gilt beim Original MBP13,3...


    Der Grund das bei @Maddeen der AppleUSBXHCILPTH geladen wird, muss woanders liegen...

    Gruß
    Al6042

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

  • Hi,
    hier der IOREG...


    Bzgl. BIOS - nein - habe ich nicht kontrolliert. Hab ja nichts geändert seit Monaten. Welche Einstellung wäre denn wenn überhaupt relevant?

    Dateien

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

  • @al6042
    Es hängt vom Chipsatz ab. Oben ist die 0c8C318086 zu sehen und im Kext ist für diesen Controller LPTH festgelegt:



    @Maddeen
    Es stimmt was mit deiner Portzuordnung nicht. Laut ACPI hast du 10 HS und 6 SS Ports.
    Die HS Ports haben die Nummern 1 bis 10 (0xA)
    Die SS Ports haben die Nummern 13 (0x0D) bis 18 (0x12).
    Allerdings machst du eine andere Zuweisung 14 HS Ports und 6 SS Ports und die SS Ports haben die Nummern 17 folgende.


    Das passt nicht.Irgendwo hast du irgendwas verbogen. Muss erst Nachschauen was richtig ist. Dauert ein paar Minuten.



    Ok, auch laut Asus hat dein Board einen Z170 Chipsatz. Dessen XHC Controller hat die PCIId A12F8086.


    Da dein IOReg aber 8c318086 behauptet wird der falsche Treiber geladen und deshalb geht nur wenig.
    Du hast irgendwo eine FakeID definiert in Clover, einer SSDT oder über ein FakePCIId Kext oder wo auch immer.
    Finden und rausnehmen, dann sollte es gehen.

  • Erstmal Danke Brumbaer,
    rein logisch kann ich dir auch folgen, aber ich habe keine Ahnung wo ich suchen soll.



    Ich habe dir mal alles hochgeladen, was relevant sein könnte.
    Das einzig interessante was ich direkt gesehen habe, ist dass ich die o.a. PCIdd wieder erkannt -- und zwar in der SSDT-USB die ich nach RehabMans Anleitung gebaut habe. (siehe anlage)
    Hier mal der Auszug aus der .dsl Source

    Code
    1. Name (_HID, "UIA00000")
    2. // "RehabManConFiguration"
    3. Name (RMCF, Package ()
    4. {
    5. // XHC overrides for 100-series boards
    6. "[size=12][b]8086_a12f[/b][/size]", Package()


    Die DSDT hat mir damals netterweise AL6042 gebaut .. danach lief es auch ... aber irgendwas muss sich in der Zwischenzeit geändert haben
    In der SSDT ist wohl nur das PowerManagement für meine CPU.


    Das war es dann auch schon im Order ACPI/patched
    Bei den Kext und drivers64UEFI sind folgende drin - siehe Screenshot. Alle aktuell.


    Und dann noch die config.plist


    Das Problem ist, dass ich (wie man ja oben merkt) kaum was selber gemacht habe - alle kexts sind OOTB. Nur die SSDT-USB (von mir) und die DSDT (von AL6042) sind "custom"
    Wie erwähnt, ist die normale SSDT.aml von einer Tomaten-Source speziell für meine CPU. Nutze ich aber auch schon seit Tag 1.


    Daher wüsste ich jetzt nicht, wo die FakeID hinterlegt ist - und bin noch mehr verwirrt, weil ja in der SSDT-USB offensichtlich die richtige steht - auch wenn die Reihenfolge etwas anders ist.
    8086_a12f anstatt a12f8086 - aber ich gehe jetzt mal davon aus, dass man das so in der .dsl schreiben muss, damit es in der .aml später korrekt umgesetzt werden kann.

    Bilder

    Dateien

    • SSDT-USB-Maximus-VIII-Hero.dsl

      (6,1 kB, 71 Mal heruntergeladen, zuletzt: )
    • DSDT.aml

      (173,59 kB, 83 Mal heruntergeladen, zuletzt: )
    • SSDT.aml

      (1,9 kB, 78 Mal heruntergeladen, zuletzt: )
    • config.plist

      (7,44 kB, 110 Mal heruntergeladen, zuletzt: )

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

  • Da ist auch schon der Fehler...
    Ich hatte damals die "device-id" drinnen gelassen:

    Code
    1. "device-id",
    2. Buffer (0x04)
    3. {
    4. 0x31, 0x8C, 0x00, 0x00
    5. },


    Versuche es mal mit beiliegender Version...

    Dateien

    • DSDT.aml

      (173,57 kB, 88 Mal heruntergeladen, zuletzt: )

    Gruß
    Al6042

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

  • Ok, wir nähern uns :)


    Immerhin zucken die USB3 Ports jetzt im iOReg (siehe Screen)
    Der Treiber ist jetzt auch korrekt (siehe Screen)


    ABER - das Volumen (sofern USB3 Device) wird im Diskmanager nur deaktiviert angezeigt und kann auch nicht aktiviert werden.
    An USB2 Ports das gleiche. USB3 device poppt in IOREG auf, aber der diskmanager aktiviert es nicht :(


    Habe auch noch mal USB Config im BIOS gecheckt-- also so wie es war - Legacy USB deaktiviert und diese USB Mouse Simulator (ist wohl der neue Name für das XHCI Handshake) auch auf deaktiviert. Wenn der aktiviert ist, booted das System nicht. Da hat ASUS nur was bei einem BIOS Update geändert.


    Update 1:
    jetzt krieg ich ne kernelpanic.
    Keine Ahnung warum der erste Boot funktioniert hat und jetzt der zweite nicht.
    Ich dreh mal wieder alles auf Anfang und auch ohne SSDT-usb von mir. Dann ist das System so, wie du (al6042) es damals eingestellt hat und ich andere nur die dsdt die du vorhin hochgeladen hast.
    Melde mich wieder ..
    .


    Update 2
    Auch das zurück spielen der alten config bringt mich leider nicht weiter
    Anbei die Bilder zur kernelpanic. :-(
    Ich krieg hier noch die Pimpernellen
    Ich versuch jetzt mal ein Full recovery via CCC


    UPDATE 3
    Die Wiederherstellung durch CCC war zu mindestens was das Gesamtsystem angeht, erfolgreich.
    Boot funktioniert wieder.
    Ich habe jetzt alles was ich rumgebastelt habe (SSDT-USB + deaktivieren bestimmter Ports via bootflag) zurück gebaut.
    Systemkonfig sieht jetzt wie folgt aus
    1) DSDT von AL6042 (die er oben für mich angepasst hat) -> Treiber lt. iOREG sind korrekt --> AppleUSBXHCISPT
    2) SSDT für CPU-Management (für Review siehe Posts weiter oben als Anlage)
    3) alte SSDT/DSDT umbenannt für ggf. notwendigen Rollback (siehe Screen #4)
    4) Drivers64UEFI gleicher stand wie oben im Bild
    5) kexts gleicher Stand wie oben im Bild
    6) PortLimit KextToPatch wieder hinzugefügt
    7) Durch den Wegfall der SSDT-USB und der Bootflags sind natürlich jetzt wieder 20+ Ports inkl. USR1-2 (was auch immer das ist :) ) in IOREG (neuer Dump anbei + Screen)

    Problem ist aber weiterhin identisch.

    Sprich USB2 Geräte gehen an allen Ports (USB3 und 2)
    USB3 Geräte gehen an keinem Port. IOREG+Diskmanager erkennt zwar was, aber das aktivieren des Gerätes ist nicht möglich.


    Anbei noch ein paar ggf- relevante CloverConfig-Screens und der Bootlog
    Hoffe jemandem fällt noch irgendwas ein

  • ACPI und IOService passen immer noch nicht zueinander.


    Leere den ACPI/patched Ordner. Es gibt erstmal keinen Grund eine SSDT/DSDT Änderung für einen Z170 vorzunehmen.
    Starte neu und poste die IOReg und die aktuelle config.plist.

  • So,


    DANKE läuft!!! :danke:


    ABER - jetzt hätte ich noch ein paar Fragen fürs Selbststudium, damit ich die Zusammenhänge mal verstehe und weiter lerne.


    1) Warum musste ich früher die SSDT unbedingt haben? Die SSDT, die ja nur für CPU Powermanagement da ist, macht von der Beschreibung (Turbo, Sleep usw) her ja schon Sinn.
    Ich habe natürlich jetzt keinen Vergleich, ob meine CPU ans Maximum geht (inkl. Turbo-Modus) und weiß jetzt nicht, ob die wirklich für mich notwendig ist.
    Die Source war der Mulder von den Tomaten

    Code
    1. Zitat: At this point CPU power saving is not fully configured, which may cause problems with heating and/or sleep mode. To fix use the SSDT.


    2) Ich weiß, AL6042 hatte mir damals netterweise mit der DSDT ein anderes Problem (ggf. AirPlay-Ruckeln/Hardwarebeschleunigung - bin mir nicht mehr sicher) gelöst.
    Aktuell scheint aber alles sauber zu laufen, inkl. Hardwareencoding. ?( -Tilt?!?


    3) Die USB Sticks wurden bei der ersten Verwendung nach dem Löschen des Inhalts von ACPI/Patched und löschen NVRAM usw. trotzdem nicht aktiviert.
    Ich habe dann testweise mal neu formatiert - und schwupps - läuft. ?( Das war jetzt mit 2x USB3 Sticks und einer USB3 ext. HDD der Fall. Mehr USB3 Geräte hab ich jetzt nicht.
    Aber die Chance, dass alle 3 Geräte "korrupt" waren ist gleich null, da ich auf die ext. alle x-Wochen mal ein separates Backup überspiele (letzte bei 10.13.4 - lief einwandfrei) und die Sticks auch regelmäßig genutzt habe.
    Sowas krieg ich nicht in meinem Kopf :)


    4) Jetzt könnte ich ja (wenn ich mal wieder langeweile habe) das USB Thema mit einer SSDT dauerhaft lösen - oder würdest du davon abraten und weiterhin die x-ig Änderungen im PortLimit umsetzen?


    5) Anbei noch mal ein neuer IOREG - kannst du bitte nur noch mal abschließend gucken, ob jetzt alles mit ACPI und IOService klappt?


    Ansonsten noch mal herzlichen Dank und einen sonnigen Samstag!!

    Dateien

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

  • Wir sprechen über Desktops. Bei Laptops mag es anders sein.


    Im Normalfall ist für keinen der neuer Prozessoren und einem neueren System eine SSDT für das PM notwendig. Ich nehme an es ist ein Überbleibsel aus alten Tagen. Man hat es halt schon immer so gemacht.


    Das Gleiche gilt für eine DSDT. Für gewöhnlich lassen sich alle Probleme über Clover oder ein Kext lösen. Oft basieren die Lösungen (Kext, Clover, DSDT) auf dem selben Vorgehen. Der Nachteil der DSDT ist es, dass sie mglw. nur für die BIOS Version und dessen Einstellungen zum Zeitpunkt der Erstellung der DSDT gültig ist. Ändert man Einstellungen oder macht ein BIOS Update, wird die DSDT mglw. ungültig und passt nicht mehr zum System.


    Bezüglich USB:
    Da du USBInjectAll verwendest, würde ich den Limit Patch rausnehmen und den uia_exclude Boot Parameter verwenden um die "unnötigen" USB Ports abzuwählen.
    Mein persönlicher Favorit ist es allerdings USBInjectAll zu löschen und ein eigenes Kext zu erstellen wie in Kext as Kext can oder USB 3.0 ohne USBInjectAll beschrieben. Den Teil mit dem Treiber brauchst du nicht, da das Z170 von macos unterstützt wird.

  • mit der DSDT ein anderes Problem (ggf. AirPlay-Ruckeln/Hardwarebeschleunigung - bin mir nicht mehr sicher) gelöst.


    Die IGPU scheint nicht mehr connectorless zu sein... (Oder du benutzt IntelGraphicsFixUp/die neustes WEG.kext, dann passt alles) Es kann sein, dass du mit einer Konfiguration ohne headless oder GraphicsFixUp, Probleme mit Encoding oder Decoding bekommst.


    Jetzt könnte ich ja (wenn ich mal wieder langeweile habe) das USB Thema mit einer SSDT dauerhaft lösen - oder würdest du davon abraten und weiterhin die x-ig Änderungen im PortLimit umsetzen?


    Ich persönlich würde dir auf jeden Fall von einer Lösung die nur auf dem PortLimit Patch beruht abraten.
    Ungenauigkeiten in den _UPC Methoden der USB Ports im ACPI können dafür sorgen, dass bestimmte Ports als deaktiviert oder nicht vorhanden an das OS übermittelt werden. Wenn das bei dir der Fall ist, solltest du USBInjectAll mit einer passenden SSDT (und passenden Connector-Types) nutzen, denn somit wird dieses Problem behoben.
    Sollten aber alle vorhandenen Ports dem OS auch als aktiv übermittelt werden (und du hast somit keine Problem mit _UPC), empfiehlt sich die von Brumbaer verlinkte Variante am meisten, denn UIA geht was manches angeht auch bisschen mit der Brechstange vor.


    Ich habe natürlich jetzt keinen Vergleich, ob meine CPU ans Maximum geht (inkl. Turbo-Modus) und weiß jetzt nicht, ob die wirklich für mich notwendig ist.


    Laut IOReg wird für deine CPU das ACPI_SMC_PlatformPlugin geladen. Hier wäre das X86PlatformPlugin geeigneter. Die SSDT sorgt dafür, dass dieses geladen wird, das ganze geht aber auch einfacher. Du musst in deiner config.plist im ACPI Bereich lediglich den Haken bei PluginType setzen und alles sollte soweit passen. Ob die CPU soweit richtig taktet, kannst du zB mit dem HWMonitor oder dem Log des Intel Power Gadgets herausfinden.


    5) Anbei noch mal ein neuer IOREG - kannst du bitte nur noch mal abschließend gucken, ob jetzt alles mit ACPI und IOService klappt?


    Ein paar Kleinigkeiten gibts hier noch.

    • Dein Hacky besitzt kein EC-Device. Dieses sorgt jedoch für genug Strom an den USB Ports. Deswegen ist im Anhang eine SSDT, die dieses EC Gerät faked, damit deine Ports mehr Strom erhalten.
    • Dein LPC-Gerät ist Apples Treibern nicht bekannt. Der AppleLPC lädt nicht richtig. Hier empfiehlt es sich einen Treiber von ähnlicher, bekannter Hardware zu laden. Das geht mit einer SSDT, eventuell hilft es aber auch bereits in config/ACPI einen Haken bei FakeLPC zu setzen.
    • Ich glaube dein Mainboard hat 2 SATA Controller. Für einen der beiden (Intel) wird der richtige Treiber geladen, für den anderen (ASM1062 SATA) der generic Treiber. AppleAHCIPort kennt soweit ich weiß kein AsMedia. Wenn alles soweit funktioniert ist's gut, ansonsten muss man nochmal etwas experimentieren.
    • Im IOReg ist ein SMBus vorhanden, aber ebenfalls kein Treiber. Ähnlich wie bei LPC, hilft hier vielleicht der Haken bei FixSBUS in der config.

    Dateien

    • SSDT-EC.aml

      (63 Byte, 82 Mal heruntergeladen, zuletzt: )

    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 habe gerade nochmal nachgesehen: Auf einem echten iMac17,1 wird kein Treiber für das LPCB-Gerät geladen. Das sagt mir zumindest der IOReg-Dump.

  • Hab gerade auch nochmal nachgeschaut, für 10 series scheinen wirklich auch keine IDs hinterlegt zu sein. Könnte in Indiz dafür sein, dass hier kein Treiber mehr benötigt wird.


    Ich bin mit meinen Systemen da noch ein paar Generationen hinterher, war gewohnt, dass der LPC einige Aufgaben übernimmt und der Treiber nötig ist, aber ist ja interessant zu wissen...

    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.