Anleitung: USB 3.0 unter El Capitan / Sierra für jedermann (Hilfe und Diskussion)

  • Vielen Dank, aber der Limit-Patch ist deaktiviert, da ich eine exclude-Liste in den boot-args drin habe. Ich habe auch schon die exclude-Liste rausgeschmnissen und den Patch aktiviert. Leider funzt auch der nicht.
    Eine USB-SSDT habe ich auch schon erstellt und erfolglos getestet. Ich weiß aber nicht ob die Ports sauber beschrieben sind, sie könnte also fehlerhaft sein.
    Hier ist sie.

    MfG, docplag



  • An der Stelle würde ich mal die ganzen einschränkenden excludes und SSDTs bleiben lassen, denn Anti-Limit-Patch nutzen und schauen, ob damit wenigstens alle Ports möglich wären...

    Gruß
    Al6042

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

  • Das habe ich, bevor ich hier mein Klagelied veröffentlicht habe, auch schon erfolglos getestet. :(

    MfG, docplag



  • @Doctor Plagiat Ich habe deine SSDT mal bearbeitet und noch die Hub1, Hub 2, EH01 und EH02 Einträge wieder hinzugefügt. Bei HS06, HS13 und HS14 kann ich bei dir leider nicht beurteilen was daran hängt, weil diese auf Zero stehen, sollten dies interne USB Geräte sein, müssen diese den Wert 255 haben bzw. in Hex 0xFF. Füge doch bitte in der config.plist noch die Patches EHC1 to EH01 und EHC2 to EH01 noch hinzu, sonst greift USBInjectAll nicht.

    Dateien

    System 1: Laptop Modell: Dell XPS 15 9550, Mainboard: Intel HM170, Grafikkarte: Intel HD 530, Soundkarte: Realtek ALC298, OS X Version: Big Sur 11.6.1, OpenCore Version: 0.6.3

  • Nochmals vielen Dank, Die EHC to EH-Patches laufen bei mir ins Leere. Alle HS und SS-Ports stehen in meiner DSDT unter dem Device (XHC). HS06 ist ein USB3-Port auf dem Backpanel und HS13 sowie 14 sind die einzigen USB2-Ports auf dem Backpanel.


    Außerdem kann ich berichten, dass der Limit-Patch oder auch Anti-Limit-Patch jetzt plötzlich greift. Warum auf einmal, weiß der Geier.
    Ich habe es zuerst auf der Test-Platte mit der Clean-Installation zum Laufen bekommen und dann in diesem System gleich die EFI der internen macOS-Platte gemountet um die Änderungen auch dort vorzunehmen. Nach einem Neustart sah ich im IORegExplorer auch dort alle vorhandenen USB-Ports des MoBo. Außer dass die Platten als interne angezeigt werden, obwohl ich den External Icon Patch in der config habe, ist alles wieder so wie vorher.
    Das Unbefriedigende an der ganzen Geschichte ist, dass ich nicht weiß, was denn nun eigentlich die Ursache war.


    EDIT: @hitman20 Ich habe mir mal die USB-SSDT angeschaut. Ich habe da nicht soviel Ahnung, aber so kann ich die doch nicht benutzen oder? Wie schon gesagt gibt es bei mir kein EHC01 usw.
    Bei mir gibt es in _SB.PCI0 ein XHC Device und darunter u.a. das Device RHUB. Darunter befinden sich die Devices HS01.....SS01 usw.

    MfG, docplag



    Einmal editiert, zuletzt von Doctor Plagiat ()

  • @Doctor Plagiat Ich habe diese bei mir auch so in Verwendung ohne Probleme mit EH01 und EH02 obwohl ich in meiner DSDT auch kein Gerät mit dem Namen habe, aber USBInjectAll sucht wohl nach diesen Geräten deswegen werden diese auch in der SSDT mitgegeben. Die Geräte werden dann trotzdem "Injected". Konntest Du die SSDT mal testen, ob diese funktioniert hat?

    System 1: Laptop Modell: Dell XPS 15 9550, Mainboard: Intel HM170, Grafikkarte: Intel HD 530, Soundkarte: Realtek ALC298, OS X Version: Big Sur 11.6.1, OpenCore Version: 0.6.3

  • Ich freue mich gerade darüber dass ich alle USB3-Ports wieder benutzen kann. Ich bin jetzt nicht wirklich zum weiteren experimentieren bereit.
    Na gut, ich werde im Laufe des Abends mal die Test-Installation hochfahren und die SSDT dort ausprobieren. Ich gebe dann bescheid.


    EDIT: Mit deiner SSDT bekomme ich leider wieder den alten Zustand. 14 x HS und 1 x SS. Das 15-Port-Limit hat wieder die Oberhand.

    MfG, docplag



    Einmal editiert, zuletzt von Doctor Plagiat ()

  • Ich habe glaub den Fehler in der SSDT gefunden, dort steht der Port Count auf 14 im Abschnitt 8086_a12f. Setze den mal auf 1A dann solltest Du bis zu 26 Ports haben können.

    System 1: Laptop Modell: Dell XPS 15 9550, Mainboard: Intel HM170, Grafikkarte: Intel HD 530, Soundkarte: Realtek ALC298, OS X Version: Big Sur 11.6.1, OpenCore Version: 0.6.3

  • OK, ich habe den port-count unter "8086_a12f" von 0x14 auf 0x1A geändert. Testen muss ich aber noch. Bis denne.


    EDIT: Leider selbes Ergebnis wie vorher.

    MfG, docplag



    Einmal editiert, zuletzt von Doctor Plagiat ()

  • Dann würde ich die SSDT mal komplett nochmal neu erstellen und jeden USB Port einmal mit einem USB 2.0 testen und das selbe nochmal mit einem USB3.0 Stick und die Ports dann jeweils per IOReg ausfindig machen welche angesprochen werden oder sonst mit der Exclude List arbeiten im Clover wenn Du ohne SSDT alle Ports angezeigt bekommst. Die SSDT dann aber herausnehmen. Bist Du dir auch sicher das die ID 8086_a12f zu deinem USB Controller passt?

    System 1: Laptop Modell: Dell XPS 15 9550, Mainboard: Intel HM170, Grafikkarte: Intel HD 530, Soundkarte: Realtek ALC298, OS X Version: Big Sur 11.6.1, OpenCore Version: 0.6.3

  • Bist Du dir auch sicher das die ID 8086_a12f zu deinem USB Controller passt?


    Ganz sicher. Da hatte ich hier schon ein Bild gepostet.


    Mit dem USB-Limit-Patch habe ich ja momentan alle USB-Ports zur Verfügung und hoffe das bleibt jetzt auch so.
    Im IORegExplorer kann ich jetzt die Parameter auslesen die in die SSDT müssen? Muss ich mal schauen ob ich das hinkreige.

    MfG, docplag



  • Nein, die Parameter in der SSDT (wenn du damit den portType meinst) sind Hardwareabhängig und du musst sie nur richtig setzen.


    Das sind für die Types:
    0 --> USB 2.0
    3 --> USB 3.0
    10 --> USB C
    0xFF --> alles andere, zB. Bluetooth oder Header...

    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.

  • Ja genau. Ich habe nochmal die Anleitung von @Brumbaer zu USBInjectAll durchgelesen und folgendes ist mir aufgefallen.
    Der “port-count” definiert die höchste Port-Adresse und nicht die Anzahl der Ports. Unter “ports” kommen doppelt soviel Einträge wie Ports.


    Zitat von @Brumbaer

    Zitat


    der Text port-count als Bezeichnung des nachfolgenden Buffers. Ein Buffer ist wie ein Package, aber jeder Eintrag besteht aus genau einem Byte.
    Der Buffer hat in diesem Fall 4 Byte Länge. Das erste Byte enthält die höchste vorkommende Port-Adresse, nicht die Anzahl der Ports, wie der vorhergehende Text vermuten lässt. Die Port-Adressen werden weiter unten eingetragen und man kopiert die höchste hierher. Die anderen Bytes werden auf 0x00 gesetzt.
    Der Text ports als Beschreibung des nachfolgenden Packages.
    Das Package hat doppelt so vielen Einträge, wie Ports. In unserem Falle 13 Ports, also 26 Einträge in Hex 0x1A


    Der UsbConnector wird angegeben bei USB2 mit “0” bzw. “0x00” (bei mir stand Zero, also 0.), bei USB3 mit “3” bzw. “0x03” und bei Anderen z. B. Header “0xff”


    Auch hier das Zitat von Brumbaer

    Zitat


    Der erste UsbConnector wird von einem Byte gefolgt, dass die Art des Anschlusses angibt. Für uns sind nur 3 Werte interessant 0 (Typ-A USB 2.0 Buchse), 3 (Typ A SuperSpeed Buchse sprich USB 3.0) und 0xFF (alles andere, z.B. Header).


    Mit dem Limit-Patch werden jetzt zwar bei mir alle USB-Ports im IORegExplorer gelistet, aber alle als UsbConnector 0xff. Das wäre ja dann falsch.
    Das habe ich in der SSDT also geändert, alle auf “0x03”, außer HS13 und 14, dort habe ich “0x00” eingetragen da es USB2-Ports sind.
    Da aber alle USB3-Ports auch USB2-Ports sind, kommt die Frage auf, ob das auch noch definiert werden muss.
    Am Beispiel in der USBInjectAll Doku von Brumbaer habe ich jetzt unabhängig von meiner letzten Frage folgende USB-SSDT erstellt. Bevor ich die teste, lade ich sie hier mal hoch.
    @kuckkuck Kannst du sie dir mal bitte anschauen.


    SSDT-USB-Z170M-D3H.aml

    MfG, docplag



  • Da auch diese SSDT keinen Erfolg brachte, habe ich mir das USB-SSDT-command Script von GitHub runtergelassen und ausgeführt. Man wird im Terminal zu jedem Port gefragt ob er benutzt werden soll, ob er intern eine Verbindung hat und ob es ein USB3-Port ist.
    Zum Schluss wird noch angemerkt, dass die config.plist angepasst werden muss.
    Das hat auf Anhieb funktioniert und die USB-Platten werden auch wieder als externe Geräte erkannt.
    Obwohl ich wie @al6042 der Meinung bin am besten alles in einer DSDT zu haben, bin ich trotzdem mit dieser Lösung erstmal zufrieden.


    MfG, docplag



  • Ist ja mal ein super cooles Programm, kannte ich garnicht! Kannst du mal bitte die vom Programm generierte SSDT im DSL Format hochladen, dann kann ich sie mir anschauen.


    portType = UsbConnector, ich rede nicht vom portCount. Um die Liste der Connector types mal vollständig zu machen habe ich sie hier mal alle für dich aufgelistet:


    0x00 Type 'A' Connector
    0x01 Mini-AB Connector
    0x02 ExpressCard (Rehabman schreibt: seems to indicate "internal device" (as seen in MacBookPro8,1))
    0x03 USB 3 Standard-A Connector
    0x04 USB 3 Standard-B Connector (Rehabman schreibt: is used by MacBookPro8,3 (reason/purpose unknown))
    0x05 USB 3 Micro-B Connector
    0x06 USB 3 Micro-AB Connector
    0x07 USB 3 Power-B Connector
    0x08 Type C connector - USB2-only
    0x09 Type C connector - USB2 und SS mit Switch
    0x0A Type C connector - USB2 und SS ohne Switch
    0x0B - 0xFE (reserved)
    0xFF Proprietärer Connector


    Es macht in diesem Fall absolut keinen unterschied ob das eine SSDT oder DSDT ist. Du könntest auch die SSDT in deine DSDT einbauen, aber es bringt dir keinen Vorteil. Es ist hier übersichtlicher das ganze in der SSDT zu belassen, dann sind Änderungen schnell gemacht und bei bedarf das ganze auch schnell wieder entfernt...

    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.

  • Danke für die vollständige Connector-Type-Liste.


    USB-SSDT.dsl

    MfG, docplag



  • Die SSDT arbeitet nicht mit USBInjectAll, das injecten des UsbConnector Properties ist hier also auch nicht wirklich von belang. Wenn du obige SSDT benutzt, was bei deinem System durchaus Sinn macht und die beste Lösung ist, kannst du alle USB Kexts etc von deinem System entfernen. Die in der SSDT benutzte Methode funktioniert ausschließlich auf ACPI Basis.

    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.

  • Vielen Dank für die Analyse und die Infos. :thumbsup: Ich habe USBInjectAll gelöscht und die USB-SSDT macht trotzdem genau was sie soll. Nicht dass ich deiner Aussage kein Vertrauen geschenkt habe, aber ich muss es ja testen. So haben wir in der Praxis eine Bestätigung, falls das Andere auch nutzen wollen.


    EDIT: Vielleicht ist ja auch nicht verkehrt dieses Script hier mal abzulegen.


    OSX-USB-SSDT-master.zip

    MfG, docplag



    Einmal editiert, zuletzt von Doctor Plagiat ()

  • In HighSierra funktioniert die USB-SSDT auch. :)

    MfG, docplag