Differences between revisions 15 and 16
Revision 15 as of 2019-05-25 20:18:57
Size: 50032
Editor: RudolfReuter
Comment:
Revision 16 as of 2019-08-15 14:15:04
Size: 50037
Editor: RudolfReuter
Comment: corrected ASUS H81M
Deletions are marked like this. Additions are marked like this.
Line 122: Line 122:
 * Der '''iasl61''' ACPI Compiler im Zip Archiv ist leider veraltet. Eine aktuelle Version von 2016-12-10 ist von !RehabMan in [[https://github.com/RehabMan/Intel-iasl|github]] und das [[https://bitbucket.org/RehabMan/acpica/downloads/|binary]] zum download. Das binary sollte in den Ordner GAZ170X (GAH270M/GAH81M) kopiert werden.  * Der '''iasl61''' ACPI Compiler im Zip Archiv ist leider veraltet. Eine aktuelle Version von 2016-12-10 ist von !RehabMan in [[https://github.com/RehabMan/Intel-iasl|github]] und das [[https://bitbucket.org/RehabMan/acpica/downloads/|binary]] zum download. Das binary sollte in den Ordner GAZ170X (GAH270M/ASUS-H81M) kopiert werden.
Line 380: Line 380:
Leider gibt es bei meinem Mainboard GA-H81M eine '''Besonderheit''' bei dem '''USB 3.0 Port SS01'''. Er wird in '''Farbe weiß''' als noch nicht belegt gemeldet. Das war leider auch bei der [[#USBmap.kext]] Automatik so. Erst mit einem '''Editor Nachtrag''' in die '''Info.plist''' von USBmap.kext war das zu beheben. Das wird im nächstem [[#USBmap.kext|Kapitel]] erklärt. Leider gibt es bei meinem Mainboard ASUS-H81M eine '''Besonderheit''' bei dem '''USB 3.0 Port SS01'''. Er wird in '''Farbe weiß''' als noch nicht belegt gemeldet. Das war leider auch bei der [[#USBmap.kext]] Automatik so. Erst mit einem '''Editor Nachtrag''' in die '''Info.plist''' von USBmap.kext war das zu beheben. Das wird im nächstem [[#USBmap.kext|Kapitel]] erklärt.

Mojave USB 3.0

Seit MaOSX El Capitan 10.11 hat Apple den USB Stack umgebaut.

  • Das verwendete Mainboard ist MacOSXGAH270M

  • BIOS Einstellungen: Ist Mainboard spezifisch

  • Systeminformationen / Hardware Übersicht/Modell-Identifizierung: iMac18,1
  • Clover Version: V2.4 r4920

/!\ Info zu ACPI: Advanced Configuration and Power Interface

/!\ Info zu Clover Dokumentation

/!\ Info zum Boot Log: Man findet das boot.log im Clover Configurator (Left panel: Boot.log, Bottom Panel: Generate Log). Es heht auch mit dem hackintool.app, Reiter Logs.

  • Fazit: Ich habe jetzt für 4 Generationen CPU's (3- Ivy Bridge, 4- Haswell, 6- Sky Lake und 7- Kaby Lake) eine #USBmap.kext Kernel Extension für den Ordner EFI/CLOVER/kexts/Other/ mit dieser Software erstellt, und damit alle USB Ports zum laufen gebracht. Die ebenso erzeugten SSDT Tabellen habe ich nicht gebraucht. USBInjectAll.kext muss man dann aus dem Ordner EFI/CLOVER/kexts/Other/ entfernen. #USBmap.kext sollte auch bei zukünftigen MacOS Versionen unverändert funktionieren. Jedenfalls ist das Einbinden von #USBmap.kext einfacher als eine SSDT Tabelle einzubinden.

USB 3.0 Problem

Seit Mojave 10.14 geht bei USB 3.0 nicht immer die hohe Geschwindigkeit (5 Gbits/s), obwohl USB 3 angezeigt wird. Außerdem werden nur die ersten 15 USB ports eingebunden.

Um das zu korrigieren kann eine SSDT (System Service Descriptor Table) angepasst werden, oder eine Pseudo Kernel Extension gebaut werden, siehe folgende Anleitungen. Das patchen einer Kernel Extension ist nicht Update sicher.

/!\ Diese Anleitung ist nur für Intel USB 3.0.

Erklärung von Rehabman

2016-09-30 Autor: RehabMan - Ab MacOS 10.11+ ist der USB Stack von Apple umgebaut worden, siehe Guide von RehabMan. Jetzt wird mehr Information von ACPI (Advanced Configuration and Power Interface) genutzt als vorher. Deshalb ist es wichtig, dass die Eintragungen in der DSDT (Differentiated System Description Table) Tabelle stimmen. Wenn sie nicht stimmen, kann es passieren, dass vorhandene USB Ports nicht vom Treiber eingebunden werden.

Sogar die eigenen Produkte von Apple erwiesen sich als fehlerhaft. Daher hat Apple eine Möglichkeit geschaffen, DSDT mit einem Port-Injektor zu überschreiben. Wenn Eigenschaften eingegeben werden, um die verfügbaren Ports zu definieren, werden diese Eigenschaften anstelle von ACPI verwendet.

Die eingebauten Port-Injektoren können auch USB auf einem Hackintosh stören, da es unwahrscheinlich ist, dass die USB-Topologie für ein bestimmtes Mac-Modell mit Ihrem PC identisch ist.

/!\ Wichtig zu auch zu wissen ist, dass ein 15 Port Limit für USB Ports eingeführt worden ist. Da Mainboard Hersteller leider mehr USB Ports in ihren ACPI Tabellen aufführen, als physisch eingebaut sind, muss leider aussortiert werden. Dazu gibt es mehrere Möglichkeiten.

/!\ Der Port limit Patch sollte nach RehabMan nicht mehr benutzt werden.

Es gibt nach RehabMan mehrere Möglichkeiten dass zu korrigieren.

  • Choosing correct BIOS options
  • Renaming EHCx->EH0x in DSDT

  • using FakePCIID_XHCIMux to route USB2 devices on XHC to EHCI
  • injecting ports with a custom port injector or custom SSDT for USBInjectAll.kext
  • injecting ports with USBInjectAll.kext
  • patching DSDT to simulate a version of Windows when running OS X

Erklärung von CorpNewt

Die Angelegenheit

Seit MacOS 10.11 gibt es eine Beschränkung von 15 USB-Anschlüssen pro Controller. In Verbindung mit einigen Konflikten oder fehlender Einspeisung gab es eine Reihe von Problemen bei der Suche nach funktionierenden USB-Anschlüssen.

Im schlimmsten Fall wird keiner Ihrer USB-Anschlüsse für sich allein angezeigt. USBInjectAll.kext von RehabMan versucht, dieses Problem zu lösen, indem alle bekannten Ports injiziert werden, sodass das Betriebssystem sie "sehen" kann. Großartig, oder? - Ja und nein. Lass uns schnell ein Bild zeichnen:

Sie haben einen Skylake-Computer (oder einen neueren), der problemlos alle USB-Anschlüsse unter Windows / Linux verwendet. Sie schwitzen und arbeiten seit einiger Zeit an Ihrem Hackintosh-Setup und versuchen verzweifelt, das Betriebssystem dazu zu bringen, einige Ihrer fehlenden Ports zu erkennen. Sie stolpern online durch die Anleitungen und Posts und entdecken schließlich den heiligen Gral der USB-Injektion - werfen Sie die Kernel Extension in Ihren Ordner "Other/" und starten Sie ihn neu ... nur um festzustellen, dass USB 2.0 alles ist, was funktioniert ... Mist.

Das passiert, weil Intel bei der Skylake CPU den EHCI-Controller fallen gelassen hat - also alle Ports, USB 2.0, 3.0, die jetzt über den XHCI-Controller laufen.

Okay, aber mein Motherboard hat nur 8 Ports ... Also sollte ich unter dem Limit sein, oder?

Nee! USB-3.0-Anschlüsse haben physisch auch Anschlüsse für USB 2.0 - was auch bedeutet, dass sie jeweils als 2 Anschlüsse pro USB 3.0 Buchse zählen. Skylake und neuere Consumer-Chipsätze haben normalerweise 26 Ports auf dem XHCI-Controller - das sind 11 Ports über unsere zugewiesenen 15 ...

Was tun wir dagegen?

Es gibt zwei Möglichkeiten, mit dem Problem umzugehen:

  1. Patchen Sie das Portlimit, um alle Ports gleichzeitig zuzulassen.
  2. Schränken Sie die eingeschleusten Ports ein, sodass nur die von Ihnen verwendeten Ports verfügbar sind.

Lassen Sie uns einen Blick auf jede werfen:

Das Aufheben des Port-Limit-Patches kann jedoch zu Problemen führen, da wir den Code nur an einer Stelle ändern und er an vielen Stellen im System fest codiert ist. Dies erzeugt zusätzliches USB-Rauschen und kann zu Problemen mit dem Array außerhalb der Grenzen führen. Zugegeben, ich habe mich, wie viele Benutzer, stark darauf verlassen, da es ein einfacher Ansatz ist. Leider scheinen die Patches für das Port-Limit mit Mojave 10.14.1 relativ ineffektiv (oder bestenfalls schrecklich inkonsistent) zu sein. So was jetzt?

Die Alternative besteht darin, nur die Ports einzurichten, die Sie benötigen. Dies kann abhängig vom Ausgangszustand Ihrer USB-Anschlüsse auf verschiedene Arten erfolgen. Bei einigen fehlen viele Ports ohne USBInjectAll.kext, und als solche können sie ein benutzerdefiniertes Injektor.kext erstellen, das nur die benötigten fehlenden Ports injiziert. Dies war mein erster Versuch, da ich davon ausgegangen war, dass alles, was in diesem Injektorkext fehlte, gänzlich weggelassen würde - aber ich hatte ein anderes Problem ...

Die USB-Anschlüsse meines Asus Maximus X Code sind fast alle sichtbar, ohne dass USBInjectAll.kext vorhanden ist. Ich habe HS01 -> HS14 und SS01 -> SS10 sichtbar - was mich zu Beginn auf 24 Ports bringt - oder, wenn Sie 9 über dem Grenzwert von 15 Ports verfolgen - nur HS01 -> HS14 und SS01 waren sichtbar - das bedeutet nur USB2.0 für mich. Dies bedeutet, dass das Injizieren von mehr Ports buchstäblich nichts für mich bringt. Wenn die Injektor.kext das tut, was Sie brauchen, dann suchen Sie nicht weiter! Wenn Sie sich jedoch in einer Situation wie meiner befinden - lesen Sie weiter!

Ich war in einer Situation festgefahren, in der ich nicht verwendete Ports entfernen musste, um Platz für die Ports zu schaffen, die ich eigentlich nutzen wollte. Dies kann auf zwei Arten erfolgen:

  • USBInjectAll.kext + SSDT-UIAC.aml, das festlegt, welche Ports wir möchten
  • USBInjectAll.kext + uia_exclude = HSxx, SSxx usw. Boot-Argument mit einer Liste der zu entfernenden Ports

Durch die Nutzung von USBInjectAll.kext kann das Einspeisen von USB-Anschlüssen verhindert werden. Wenn Sie die Konfiguration über eine der oben genannten Methoden vornehmen (beides kann USBMap.command), können Sie einen Pfad für die tatsächlich verwendeten USB-Anschlüsse freigeben. Es gibt einige Tricks, um Ports zuzuordnen, wenn Ihnen standardmäßig mehr als 15 Ports zugewiesen sind (wie können Sie vernünftigerweise das abbilden, was Sie nicht sehen, richtig?) - daher sind einige Tricks in das Skript integriert, mit denen Sie deaktivieren können alle SSxx (USB3) oder HSxx (USB2) - aber das Skript fordert Sie automatisch auf, Tastatur und Maus zuzulassen, damit Sie nicht ausgesperrt werden, damit Sie in zwei Schritten eine Zuordnung vornehmen können. Dies erfolgt durch Setzen des Arguments boot-args = nvram (einmalig) mit den entsprechenden Ausschlussargumenten. Wenn Sie Ihre Tastatur / Maus blockieren - Sie können NVRAM (Non Volatile RAM) in Clover löschen, um dies zu umgehen. Offensichtlich erfordert das gesamte NVRAM-Zeug, dass Sie mit NVRAM arbeiten, um es zu implementieren. Die Boot-Args können der config.plist hinzugefügt oder manuell in Clover eingegeben werden, wurden aber der Einfachheit halber einmalig dem Skript hinzugefügt.

Woher wissen Sie, welche USB ports zu entfernen sind?

Nun, das Skript erkennt automatisch Ports, die in einer 5-Sekunden-Schleife gefüllt / geändert werden, indem ioreg und system_profiler auf Änderungen überprüft werden. Die allgemeine Idee ist, dass Sie mit einem USB 2.0-Gerät beginnen und es nacheinander an jeden Anschluss (Buchse) anschließen, mit dem Sie USB 2.0 verwenden möchten, und das Skript es erkennen lässt - es speichert alle bestückten Anschlüsse in einer USBMap-master/Scripts/USB.plist Datei. Sie schließen dann alle HSxx-Ports (außer Tastatur / Maus) aus und starten neu, um USB 3.0-Ports mit einem USB 3.0-Gerät zuzuordnen, am einfachsten mit einem USB 3.0 USB-Stick.

Anschließend passen Sie Ihre Scripts/USB.plist an, um die USB-Typen so zu ändern, dass sie die physischen Anschlüsse widerspiegeln. Egal ob die Ports aktiviert sind, oder nicht. Für mich habe ich alle nicht verwendeten USB 2- und 3-Ports auf der Rückseite meines Motherboards, meiner internen USB-Lichtsteuerungen und meines NZXT-Smart-Device-Controllers deaktiviert und dann sichergestellt, dass sowohl die USB 2- als auch die USB 3-Variante aller Ports auf der Vorderseite meines Gehäuses funktionieren , sowie meine Maus / Tastatur / DAC / Bluetooth-Ports wurden aktiviert und meine SSDT damit aufgebaut. Die SSDT verhindert, dass alle Ports angezeigt wurden, die ich für nicht erforderlich hielt, und ich verwendete schließlich nur 11 Ports, was weit unter der Grenze liegt und für meine Zwecke reicht.

Methoden

Nach Escheinungsdatum aufgeführt.

2016-10-08 Autor kuckuck Anleitung: USB 3.0 El Capitan / (High-) Sierra / Mojave für jedermann (zukunftssicher für Updates & komplett gepatcht) Es soll die Kernel Extension USBInjectAll.kext mit Zubehör eingesetzt werden. In Kurzform:

  • USBInjectAll.kext in Ordner EFI/CLOVER/kexts/Other/
  • Benutzer von 200-series Boards sollten eventuell die XHCI-200-series-injector.kext installieren. Die Kernel Extension kann bei Problemen helfen.

  • BIOS Einstellungen:
    • Der XHCI Mode muss auf Enabled oder Auto stehen (nicht Smart-Auto)
    • XHCI und EHCI Hand-off müssen aktiviert sein
  • Mit dem IORegistryExplorer nach dem XHC@14 Controller suchen.

  • Nach aktiven HSXX (z.B. HS01) USB 2 Ports suchen, mit einem USB Stick.

  • Jeden Port "excluden", der nicht aufgeleuchtet hat mittels dem bootarg: -uia_exclude=HSXX;HSXX;HSXX

  • Nach aktiven SSXX (z.B. SS01) USB 3 Ports suchen, mit einem USB 3 Stick.

  • Jeden Port "excluden", der nicht rot aufgeleuchtet hat mittels dem bootarg: -uia_exclude=SSXX;SSXX;SSXX

Kommentar: Das scheint mir sehr aufwendig zu sein.

oder

2016-09-24 Autor cnrd Python Script zur Erzeugung einer USB SSDT Tabelle (getestet mit Mainboard GA-Z170X)

  • Man soll diese DSDT patches entfernen: change EHC1 to EH01 and change EHC2 to EH02
  • RehabMan #44/56/58/110, A USB3 hub consists of both an USB2 and USB3 hub (eg. USB3 hub is HS hub + SS hub).

  • Der iasl61 ACPI Compiler im Zip Archiv ist leider veraltet. Eine aktuelle Version von 2016-12-10 ist von RehabMan in github und das binary zum download. Das binary sollte in den Ordner GAZ170X (GAH270M/ASUS-H81M) kopiert werden.

  • frontgear #99: GA-Z270XP-SLI-F9, needed RehabMan's XHCI-200-series-injector.kext - RR: not needed

Kommentar: Das habe ich zuerst erfolgreich gemacht, Details siehe #USB_SSDT_erstellen

oder

2017-01-02 Autor RehabMan [Guide] Creating a Custom SSDT for USBInjectAll.kext Hier wird die Erstellung einer SSDT.aml Tabelle zusammen mit der Kernel Extension USBInjectAll.kext geraten. Die einzelnen Schritte:

  • preparation for port discovery
  • port discovery
  • creating custom SSDT for USBInjectAll.kext
  • testing/verification

Der hier benutzte MaciASL Compiler bekommt man MaciASL. Selektiere ACPI 6.2a in MaciASL->Preferences->iASL.

  • Anforderungen:

  • EHC1->EH01 and EHC2->EH02 rename (in config.plist), if applicable (your chipset may not have EHCI, or it may be disabled)

  • XHCI controller must be named XHC_ or XHCI (for most PCs it is default XHC_)
  • install USBInjectAll.kext (install to the system volume)
  • if you plan to use it, install FakePCIID.kext + FakePCIID_XHCIMux.kext. FakePCIID_XHCIMux only applicable if you have enabled EHCI controller(s).
  • if you have an existing SSDT for USBInjectAll, use -uia_ignore_rmcf
  • XHCI injector kext, if required (XHCI-unsupported.kext)

/!\ Obwohl der USB controller bei einem Skylake computer mögliche 26 USB ports zeigt (HS01-HS14, SS01-SS10, USR1, USR2), sind oft weniger als 10 USB Ports angeschlossen.

Dann muss man die Vorlage SSDT-UIAC-ALL.dsl Editieren, so dass nur die gefundenen USB Port Referenzen übrig bleiben. Dann mit dem MaciASL Compiler in die Datei SSDT-UIAC-ALL.aml kompilieren und nach EFI/Clover/ACPI/patched kopieren.

Kommentar: Das erscheint mir sehr aufwendig und Fehler trächtig zu sein.

oder

2017-08-16 Autor brumbaer Kext as Kext can oder USB 3.0 ohne USBInjectAll

Die Erklärungen sind sehr gut, siehe post #1 und #7.

USB Port Korrektur mit einer Pseudo .kext Datei (enthält nur eine Info.plist Tabelle).

Kommentar: Das erscheint mir sehr aufwendig zu sein.

/!\ 2018-11-13 Zum Glück gibt es jetzt ein Python Programm USBmap.command mit dem der Prozess der Erstellung einer Kernel Extension USBmap.kext für den Ordner EFI/CLOVER/kexts/Other/ sehr einfach und sicher ist.

Die Methode wird vom Autor CorpNewt vorgestellt, im Kapitel #USBmap.kext beschrieben, und scheint mir die beste Methode zu sein.

  • Die Tabelle Info.plist in USBmap.kext wird per Programm erzeugt.

  • Es müssen keine Änderungen an der Clover config.plist Datei gemacht werden.

oder

2018-11-30 Autor: anonymous writer 2.26 USB XHC ohne USBInjectAll.kext oder USB-Portlimit Patch zum Laufen bringen

Es muss eine Datei SSDT-4-xh_rvp08.aml erstellt werden, für den Ordner EFI/CLOVER/ACPI/patched/, und in Clover config.plist eingetragen werden.

Kommentar: Das erscheint sehr aufwendig zu sein, obwohl es eine Vorlage gibt.

.

DSDT Bearbeitung

Eine ausführliche Erklärung gibt es hier.

DSDT für CPU

Um die Tabellen DSDT (Differentiated System Description Table, Fixing-DSDT) auszulesen, kann man den script ssdtPRGen.sh benutzen. Das ist eine große ACPI (Advanced Configuration and Power Interface) Tabelle.

# Download file
$ curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh
# make executable
$ chmod +x ~/ssdtPRGen.sh
$ ./ssdtPRGen.sh


ssdtPRGen.sh v0.9  Copyright (c) 2011-2012 by † RevoGirl
             v6.6  Copyright (c) 2013 by † Jeroen
             v21.5 Copyright (c) 2013-2019 by Pike R. Alpha
-----------------------------------------------------------
Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues <
./ssdtPRGen.sh: line 3877: /Volumes/DAT/Users/rudi/Library/ssdtPRGen/Data/Versions.cfg: No such file or directory

System information: Mac OS X 10.13.6 (17G5019)
Brandstring: "Intel(R) Core(TM) i3-7100 CPU @ 3.90GHz"

Notice: Downloading extractACPITables.zip ...
Notice: Downloading User Defined.cfg ...
Notice: Downloading Sandy Bridge.cfg ...
Notice: Downloading Ivy Bridge.cfg ...
Notice: Downloading Haswell.cfg ...
Notice: Downloading Broadwell.cfg ...
Notice: Downloading Skylake.cfg ...
Notice: Downloading Kaby Lake.cfg ...
Version: models.cfg v171 / Kaby Lake.cfg v196


Scope (_PR_) {222 bytes} with ACPI Processor declarations found in DSDT (ACPI 1.0 compliant)
Notice: Downloading Restrictions.cfg ...
Generating ssdt.dsl for a 'iMac14,2' with board-id [Mac-27ADBB7B4CEE8E61]
Kaby Lake Core i3-7100 processor [0x906E9] setup [0x0905]
With a maximum TDP of 51 Watt, as specified by Intel
Number logical CPU's: 4 (Core Frequency: 3900 MHz)
Number of Turbo States: 0
Number of P-States: 35 (500-3900 MHz)
Injected C-States for CPU0 (C1,C3,C6,C7,C8,C9,C10)
Injected C-States for CPU1 (C1,C2,C3,C6,C7)

Error: board-id [Mac-27ADBB7B4CEE8E61] not supported by Kaby Lake – check SMBIOS data / use the -target option

Do you want to continue (y/n)? y
Warning: 'system-type' may be set improperly (1 instead of 2)
         - Clover users should read https://clover-wiki.zetam.org/Configuration/ACPI#acpi_smartupsNotice: Downloading iasl.zip ...

Compiling: ssdt_pr.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20140926-64 [Nov  6 2014]
Copyright (c) 2000 - 2014 Intel Corporation

ASL Input:     /Volumes/DAT/Users/rudi/Library/ssdtPRGen/ssdt.dsl - 311 lines, 10152 bytes, 49 keywords
AML Output:    /Volumes/DAT/Users/rudi/Library/ssdtPRGen/ssdt.aml - 1998 bytes, 16 named objects, 33 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

Do you want to copy /Volumes/DAT/Users/rudi/Library/ssdtPRGen/ssdt.aml to /Extra/ssdt.aml? (y/n)? y
Creating temporarily mount point: /Volumes/EFI
Password:
Mounting EFI partition...
mount_hfs: error on mount(): error = -1.   # probably because of APFS
mount_hfs: Invalid argument
umount: /Volumes/EFI: not currently mounted
Do you want to open ssdt.dsl (y/n)?

# look up the generated data
$ $ cd ~/Library/ssdtPRGen/
$ ls -ls | cut -c 30-60
total 32
   816 18 Feb 04:11 ACPI
   408 18 Feb 04:15 Data
   136 18 Feb 04:17 Tools
  1998 18 Feb 05:17 ssdt.aml
 11284 18 Feb 05:17 ssdt.dsl

$ ls -ls Data/ | cut -c 30-66
  5590 18 Feb 04:11 Broadwell.cfg
  8072 18 Feb 04:11 Haswell.cfg
  6189 18 Feb 04:11 Ivy Bridge.cfg
  3063 18 Feb 04:11 Kaby Lake.cfg
  4545 18 Feb 04:11 Models.cfg
   678 18 Feb 04:11 Restrictions.cfg
  4800 18 Feb 04:11 Sandy Bridge.cfg
  4923 18 Feb 04:11 Skylake.cfg
  1701 18 Feb 04:11 User Defined.cfg
   338 18 Feb 05:17 Versions.cfg

$ ls -ls ACPI/ | cut -c 31-61
    132 18 Feb 05:17 APIC.aml
     84 18 Feb 05:17 DBG2.aml
     52 18 Feb 05:17 DBGP.aml
 158564 18 Feb 05:17 DSDT.aml
    244 18 Feb 05:17 FACP.aml
     64 18 Feb 05:17 FACS-1.aml
     64 18 Feb 05:17 FACS.aml
    156 18 Feb 05:17 FIDT.aml
     68 18 Feb 05:17 FPDT.aml
     56 18 Feb 05:17 HPET.aml
    148 18 Feb 05:17 LPIT.aml
     60 18 Feb 05:17 MCFG.aml
    180 18 Feb 05:17 RSDT.aml
  12633 18 Feb 05:17 SSDT-1.aml
   9567 18 Feb 05:17 SSDT-2.aml
   3557 18 Feb 05:17 SSDT-3.aml
   3806 18 Feb 05:17 SSDT-4.aml
    671 18 Feb 05:17 SSDT-5.aml
  12290 18 Feb 05:17 SSDT-6.aml
    956 18 Feb 05:17 SSDT.aml
     66 18 Feb 05:17 UEFI.aml
     40 18 Feb 05:17 WSMT.aml

Folgende Tabellen sind gängig:

  • RSDP (Root System Description Pointer)
  • RSDT (Root System Description Table)
  • DSDT (Differentiated System Description Table)
  • XSDT (Extended System Description Table)
  • FADT (Fixed ACPI Description Table)
  • FACS (Firmware ACPI Control Structure)
  • SBST (Smart Battery Table)
  • ECDT (Embedded Controller Boot Resources Table)
  • SRAT (System Resource Affinity Table)
  • SLIT (System Locality Distance Information Table)
  • SSDT (System Service Descriptor Table)

Zu den BIOS Einstellungen gibt es noch einen Hinweis:

  • BIOS Handbuch Seite 2-30, Advanced USB configuration->Intel xHCI Mode: Smart Auto->Enabled oder Auto

  • BIOS Handbuch Seite 2-30, Advanced USB configuration->EHCI Hand-off: Disabled

USB Ports finden

/!\ Voraussetzungen: Es muss im Ordner /EFI/CLOVER/kexts/Other/ die aktuelle Kernel Extension USBInjectAll.kext sein, und es darf keine Port-Einschränkung durch eine SSDT Tabelle oder eine Kernel Extension gemacht werden. Auch sollte man in der CLOVER/conf.plist Im Abschnitt Acpi ein paar Umbenennungen machen:

Acpi
    Comment              Find [HEX] Replace [HEX]
    change EHC1 to EH01  45484331   45483031
    change EHC2 to EH02  45484332   45483032
    change XHCI to XHC_  58484349   4548435F
    change XHC1 to XHC_  58484331   5848435F

Übersetzung von CorpNewt Text (USBMap) "Um mit der Porterkennung zu beginnen, benötigen Sie USBInjectAll.kext (und möglicherweise XHCI_unsupported.kext) und verwenden entweder den Patch zur Erhöhung des Portlimits für Ihre Betriebssystemversion, oder Sie müssen Ports in Sweeps erkennen (deaktivieren Sie zuerst alle SSxx) Ports, dann alle HSxx-Ports deaktivieren). Letzteres ist die Art und Weise, wie diese Readme-Datei fokussiert wird, da sie das Zuordnen auf Betriebssystemversionen ermöglicht, für die kein Patch für die Portbegrenzung vorhanden ist.

  • Einige zu berücksichtigende Praktiken

Um mit der Porterkennung zu beginnen, benötigen Sie USBInjectAll.kext (und möglicherweise XHCI_unsupported.kext) und verwenden entweder den Patch zur Erhöhung des Portlimits für Ihre Betriebssystemversion, oder Sie müssen Ports in Sweeps erkennen (deaktivieren Sie zuerst alle SSxx) Ports, dann alle HSxx-Ports deaktivieren). Letzteres ist die Art und Weise, wie diese Readme-Datei fokussiert wird, da sie das Zuordnen auf Betriebssystemversionen ermöglicht, für die kein Patch für die Portbegrenzung vorhanden ist."

Den USB port zuzuordnen, ob er aktiv ist, geht am einfachsten mit dem stecken von zwei USB sticks, eine USB 2.0 und eine USB 3.0 Version.

Aus der Mainboard Beschreibung ist am schnellsten die Anzahl der vorhandenen USB ports zu ermitteln:

  • USB-A Buchsen mit schwarzem (dunklen) Isolierstreifen sind USB 2.0 Version.

  • USB-A Buchsen mit blauem Isolierstreifen sind USB 3.0 Version.

  • Interne USB Anschlüsse (Pfosten mit Kragen) haben entweder USB 2.0 oder USB 3.0 Version, siehe Handbuch.

  • Unten ist das Bild der Rückwand von Mainboard GA-H270M. Die gefundenen USB ports sind nachgetragen.

attachment:GAH270M_USB_rear2.png

.

attachment:GA-H270M_Hackintool-USB.png

IORegstryExplorer

Die bekannte Methode: IORegistryExplorer_302.app, Modus IOACPIPlane links oben im Fenster (Mainboard GA-H270M)

  • Listed: HS01 - HS14, SS01 - SS10, USR1, USR2
  • Used:
  • XHC@14
    • HS01 - USB 2.0, Rear, low, right
    • HS02 - USB 2.0, Rear, low, left
    • HS03 - USB 2.0, Rear, center, right, USB 2.0 Hub black
    • HS04 - USB 2.0, Rear, center, left, USB 2.0 Hub silver
    • HS05 - USB 2.0, Front, right
    • HS06 - USB 2.0, Front, left
    • HS12 - USB 2.0, internal, Bluetooth mini PCIe card
    • HS13 - USB 2.0, Rear, left, Keyboard
    • HS14 - USB 2.0, Rear, right, mouse
    • SS01 - USB 3.1, Rear, low, right
    • SS02 - USB 3.1, Rear, low, left
    • SS03 - USB 3.1, Rear, center, right
    • SS04 - USB 3.1, Rear, center, left
    • SS05 - USB 3.1, Front, right
    • SS06 - USB 3.1, Front, left

Das funktioniert, ist aber sehr abstrakt.

Hackintool

Mit der hackintool.app zeigen sich bei dem Reiter USB alle vom BIOS gemeldeten USB ports. Die Anzeige wird zyklisch aufgefrischt, man sieht also gleich wenn ein USB-stick gesteckt wird. Siehe das Bild rechts. Leider muss man die benannten Geräte Bezeichnungen etwas interpretieren.

Leider gibt es bei meinem Mainboard ASUS-H81M eine Besonderheit bei dem USB 3.0 Port SS01. Er wird in Farbe weiß als noch nicht belegt gemeldet. Das war leider auch bei der #USBmap.kext Automatik so. Erst mit einem Editor Nachtrag in die Info.plist von USBmap.kext war das zu beheben. Das wird im nächstem Kapitel erklärt.

Oben im Bild sieht man den vorhandenen USB Controller, meist ein Intel Typ.

  • Die HSxx Ports sind normalerweise USB 2.0 Version (High Speed = 480 Mb/s).

  • In HS12 (intern) steckt der Bluetooth Controller von einer mini PCIe Karte.

  • In HS13 steckt die USB-Tastatur, Gerät IOUSBHostDevice.

  • In HS14 steckt die USB-Maus, diesmal leicht verständlich benannt.

  • Die SSxx Ports sind normalerweise USB 3.0 Version (Super Speed = 5 Gb/s).

Wenn man mit dem Programm USBmap.command arbeitet, sollte man zuerst die Funktion D = Discover Ports benutzen, siehe die folgende Tabelle, die bereits mit einer vorher per Programm gebauten USBmap.kext eingeschränkt wurde. Man bemerke die nicht überschrittene Grenze von maximal 15 USB ports. Davon sind zur Zeit nur 6 ports belegt (Populated: XHC: 6).

Anzeige von Kommando D - Discover Ports: USB.plist

1. HS01 - Controller XHC
2. HS02 - Controller XHC
3. HS03 - Controller XHC
    - USB 2.0 Hub [MTT]
        - Mass Storage Device  # SD-card Reader
        - USB 2.0 Hub
4. HS04 - Controller XHC
    - hub_device
        - miscellaneous_device
        - hub_device
5. HS05 - Controller XHC
6. HS06 - Controller XHC
7. HS12 - Controller XHC
    - BRCM20702 Hub
        - Bluetooth USB Host Controller
8. HS13 - Controller XHC
    - composite_device        # USB keyboard
9. HS14 - Controller XHC
    -  USB OPTICAL MOUSE
10. SS01 - Controller XHC
11. SS02 - Controller XHC
12. SS03 - Controller XHC
13. SS04 - Controller XHC
14. SS05 - Controller XHC
    - hub_device
        - hub_device
15. SS06 - Controller XHC

Populated:  XHC:6

USBmap.kext

USBMap.command ist ein Python-Skript zum Zuordnen von USB-Anschlüssen und Erstellen einer benutzerdefinierten SSDT- oder Injector-Kext (WIP = Work In Progress).

Das Python Programm Paket USBmap kann man als USBmap-master.zip File herunterladen und entpacken.

Die Struktur des Ordners ist:

USBmap-master
    LICENSE  # MIT
    ReaDME.md
    Results
        SSDT-EC.aml
        SSDT-EC.dsl
        SSDT-USBX.aml
        SSDT-USBX.dsl
        USBMap.kext   # copy to /EFI/CLOVER/kexts/Other/
    Scripts
        __init__.py
        ...
        USB.plist     # USB data file, to be edited
        ...
        utils.py
    USBmap.commmand

/!\ Die Voraussetzungen von Kapitel #USB_Ports_finden sollten erfüllt sein.

Man kann das Programm USBMap.command per Maus Doppelklick starten. Dann erscheint in einem Terminal Fenster folgende Maske:

  #######################################################
 #                      USBMap                         #
#######################################################

Plist:          USB.plist
UIA Boot Args:  None
USBInjectAll:   Not Loaded - NVRAM boot-args WILL NOT WORK
AptioMemoryFix: Loaded

NVRAM Arg Options:
  H. Exclude HSxx Ports (-uia_exclude_hs)
  S. Exclude SSxx Ports (-uia_exclude_ss)
  C. Clear Exclusions

R.  Remove USB.plist from Scripts Folder
T.  Reset Settings to Defaults
P.  Edit Plist & Create SSDT/Kext
D.  Discover Ports
U.  Validate USB Power Settings
Q.  Quit

Please select an option:

Erklärung der wichtigsten Elemente:

  • Plist: USB.plist - zeigt an, ob bereits mit Funktion D. eine USB.plist Datei erstellt wurde.

  • UIA Boot Args: - zeigt an, ob bereits ein boot-args String im NVRAM abgelegt ist (einmalige Wirkung).

  • USBInjectAll: - zeigt an, ob bereits USBInjectAll.kext geladen ist, von EFI/CLOVER/kexts/Other/

  • AptioMemoryFix: - zeigt an, ob bereits AptioMemoryFix.kext geladen ist.

  • NVRAM Arg Options: - Damit kann man die einmalig verwendeten boot-args setzen, speziell zum ausschließen oder hinzufügen von USB ports, zur Analyse speziell der USB 3.0 Ports. Das wird nicht unbedingt gebraucht, je nach Mainboard.

  • P. - Damit kann man die USB.plist manipulieren, und anschließend die Datei USBmap.kext erstellen lassen. Die SSDT Files sehe ich nur im Spezialfall als nützlich an, das wird hier nicht behandelt.

  • D. - Anzeige der gefundenen USB Ports, zyklisches Auffrischen der Anzeige im 5 Sekunden Takt.

  • Q. - Verlassen des Programms.

Der Ablauf der Programm Bedienung:

/!\ Solange man noch nicht das Kommando D - Discover Ports aufgerufen hat, gibt es den USB-Daten File USB.plist noch nicht.

  • Zuerst das Kommando D - Discover Ports aufrufen, die USB-Daten Datei Scripts/USB.plist wird erzeugt.

    • Die Maske wird zyklische alle 5 Sekunden neu aufgebaut.
    • Durch stecken der USB-Sticks in einzelne USB Ports sieht man die Belegung.

    • Die nicht belegten USB Ports notieren.
      • Tipp: Die Ports HS01-HS06 (USB 2.0) und SS01-SS06 (USB 3.0) sind meist belegt.

      • HS01 ist meistens die physikalisch gleiche Buchse wie SS01, usw.

      • Interne USB Ports berücksichtigen (Bluetooth, Hub's)
  • Dann das Kommando P - Edit Plist & Create SSDT/kext aufrufen.

    • Hier sollten jetzt alle aktiven USB Ports markiert (#) sein.
  • Da in MacOS nur maximal 15 USB Ports (USB 2.0 + USB 3.0) von der Hardware her erlaubt sind, fangen wie einmal an zu zählen.

Ich habe bei einem XHC controller mindesten HS01-HS06 und SS01-SS06 = 12 Ports (aber nur 6 USB Buchsen). Dann kommen üblicherweise noch 2 interne USB Ports hinzu und 2 HSxx Ports für Tastatur und Maus. Das sind dann 16 Ports, wobei ich dann auf einen verzichten muss.

### USB Typ Stecker ###
0: Type A connector
1: Mini-AB connector
2: ExpressCard
3: USB 3 Standard-A connector
4: USB 3 Standard-B connector
5: USB 3 Micro-B connector
6: USB 3 Micro-AB connector
7: USB 3 Power-B connector
8: Type C connector - USB2-only
9: Type C connector - USB2 and SS with Switch
10: Type C connector - USB2 and SS without Switch
11 - 254: Reserved
255: Proprietary connector - intern

Per the ACPI 6.2 Spec.

### Edit USB.plist ###
[#] 1. HS01 - Type 0 - Controller XHC
[ ] 2. HS02 - Type 3 - Controller XHC
[#] 3. HS03 - Type 0 - Controller XHC
    - USB 2.0 Hub [MTT]
        - Mass Storage Device           # SD-card Reader
        - USB 2.0 Hub
[#] 4. HS04 - Type 0 - Controller XHC
    - hub_device
        - miscellaneous_device
        - hub_device
[ ] 5. HS05 - Type 0 - Controller XHC
[ ] 6. HS06 - Type 0 - Controller XHC
[#] 7. HS12 - Type 0 - Controller XHC
    - BRCM20702 Hub
        - Bluetooth USB Host Controller
[#] 8. HS13 - Type 0 - Controller XHC
    - composite_device                   # USB Tastatur
[#] 9. HS14 - Type 0 - Controller XHC
    -  USB OPTICAL MOUSE                 # USB Maus
[ ] 10. SS01 - Type 3 - Controller XHC
[ ] 11. SS02 - Type 3 - Controller XHC
[ ] 12. SS03 - Type 3 - Controller XHC
[ ] 13. SS04 - Type 3 - Controller XHC
[#] 14. SS05 - Type 3 - Controller XHC
    - hub_device
        - hub_device
[#] 15. SS06 - Type 3 - Controller XHC
    - ADATA USB Flash Drive              # USB-stick USB 3.0

Selected:  XHC:8

Check EC:    Yes
Check USBX:  Yes
One SSDT:    No - Separate SSDT-EC, SSDT-USBX, and SSDT-UIAC

E. Toggle EC (Yes, No, Force)
U. Toggle USBX (Yes, No)
D. Toggle One SSDT
O. Set USB Overrides

M. Main Menu
A. Select All
N. Select None
K. Build USBMap.kext
S. Build SSDT-UIAC
T. Show Types
Q. Quit

Select ports to toggle with comma-delimited lists (eg. 1,2,3,4,5)
Change types using this formula T:1,2,3,4,5:t where t is the type
Set custom names using this formula C:1:Name - Name = None to clear

Please make your selection:

Jetzt muss man noch zu den bereits belegten USB ports alle aktiven ports markieren (#).

  • zum Beispiel mit dem Kommando: T:2,5,6:0 die USB 2.0 ports.

  • zum Beispiel mit dem Kommando: T:10,11,12,13:3 die USB 3.0 ports.

  • Dann mit Kommando K - Build USBmap.kext die Kernel Extension erzeugen (im Ordner Results), siehe folgenden Ablauf:

  #######################################################
 #               Creating USBMap.kext                  #
#######################################################

Loading plist
Generating Info.plist
Writing to USBMap.kext
 - Created USBMap.kext!
Checking EC
 - EC SSDT required
Writitng SSDT-EC.dsl
Compiling SSDT-EC.dsl
Downloading iasl.zip
 - Extracting
 - Found iasl
   - Chmod +x
   - Copying to Scripts directory
 - Created SSDT-EC.aml!
Checking USBX requirements
 - iMac18,1 not found in IOUSBHostFamily.kext - checking for USBX
 --> USBX device NOT found!
 ---> iMac18,1 not found in IOUSBHostFamily.kext
 ------> Using properties from iMac15,2
 -- kUSBWakePowerSupply --> 5100
 -- kUSBSleepPowerSupply --> 5100
 -- kUSBSleepPortCurrentLimit --> 2100
 -- kUSBWakePortCurrentLimit --> 2100
Writitng SSDT-USBX.dsl
Compiling SSDT-USBX.dsl
 - Created SSDT-USBX.aml!

Created the following files:

SSDT-EC.aml
SSDT-USBX.aml
USBMap.kext

Copy automatically to booted EFI? (y/n):

Ich möchte nur die Kernel Extension USBmap.kext kopieren, also gebe ich n ein, und kopiere per Hand in den Ordner /EFI/CLOVER/kexts/Other/.

Dann verschiebt man die Kernel Extension USBInjectAll.kext am einfachsten in den Ordner misc/, damit sie nicht mehr wirkt.

Dann kann man sich nach einem Reboot überzeugen, ob nicht mehr als 15 USB ports aktiv sind, mit:

  • USBmap.command aufrufen und Kommando D. Discover Ports aufrufen.

Die SSDT.aml betrachte ich hier nicht, weil ich die Benutzung von USBmap.kext einfacher finde.

Leider wurde in meinem Fall der USB 3.0 Port SS01 nicht erkannt und nicht berücksichtigt. Ich habe den Grund nicht herausgefunden. Aber glücklicherweise war das mit einem Editor zu reparieren. In der Info.plist von USBmap.kext wird nachgetragen:

# Kommentar:  port 17 = 0x11000000 (in base64 = "EQAAAA==")
        <key>SS01</key>
        <dict>
                <key>UsbConnector</key>
                <integer>3</integer>
                <key>port</key>
                <data>
                EQAAAA==
                </data>
        </dict>  

Übersetzung von CorpNewt Text (USBMap)

  • Benutzung des Scripts USBMap.command

"Der erste Schritt zur Porterkennung besteht darin, die SSxx-Ports zu deaktivieren, nachdem die oben genannten Voraussetzungen erfüllt wurden, um sicherzustellen, dass das 15-Port-Limit pro Controller nicht überschritten wird. Dieses Skript durchsucht EH01, EH02, HUB1, HUB2 und XHC nach gültigen Ports und versucht, diese entsprechend zuzuordnen. Dies geschieht durch Scraping / Parsing von ioreg und system_profiler und Bestimmen, welche Ports verfügbar und belegt sind. Alle erkannten Ports werden an eine Scripts/USB.plist Datei angehängt, die sich im selben Verzeichnis befindet wie der USBMap.command. Auf diese Weise können wir Änderungen vornehmen, einen Neustart durchführen, weitere Änderungen vornehmen und einen Neustart durchführen, ohne etwas zu verlieren.

Um die SSxx-Ports zu deaktivieren, wählen Sie S. SSxx-Ports ausschließen im Hauptmenü des Skripts, wodurch -uia_exclude_ss zu Boot-Args in nvram hinzugefügt wird (dies überschreibt keine Nicht-UIA-Boot-Args in nvram und beeinflussen auch keine in die config.plist).

Nachdem wir dieses Argument gesetzt haben, starten wir neu. Wenn Sie wieder auf dem Desktop sind, öffnen Sie das Skript, und wählen Sie D. Discover Ports (Ports erkennen) aus. Dadurch wird eine 5-Sekunden-Erkennungsschleife gestartet. Bei jeder Iteration der Schleife überprüft das Skript alle sichtbaren Ports auf neue Geräte. Während dieser Zeit sollten Sie ein USB 2.0-Gerät an jeden USB-Anschluss anschließen, den Sie für USB 2.0-Anschlüsse verwenden möchten. Warten Sie dann, bis die nächste Erkennungsschleife die Änderungen wiedergibt, und fahren Sie fort. Wenn Sie alle Anschlüsse angeschlossen haben, die Sie verwenden möchten, haben Sie Ihre USB 2.0-Anschlüsse zugeordnet. Drücken Sie q und geben Sie dann ein, wenn das Skript Sie auffordert, den Erkennungsmodus zu verlassen.

Der nächste Schritt besteht darin, die HSxx-Ports zu deaktivieren und den Vorgang mit einem USB 3.0-Gerät zu wiederholen. Wählen Sie dazu H. HSxx-Ports aus dem Hauptmenü ausschließen. Dies wird uns auffordern, Maus und Tastatur Ports einzuschließen, da diese normalerweise USB 2.0 sind - und unbrauchbar wären, wenn deren Anschlüsse ausgeschlossen würden. Nachdem Sie die Ports so umgeschaltet haben, dass nur Tastatur und Maus ausgewählt sind, können Sie C =Confirm = Bestätigen) auswählen. Bestätigen Sie, um alle vorherigen uia-Boot-Args in nvram zu entfernen, und fügen Sie -uia_exclude-hs uia_include = HSxx, HSxx hinzu, wobei die beiden HSxx-Werte der Maus und Tastatur Ports entsprechen.

Nachdem Sie dies eingestellt haben, starten wir erneut und führen den Erkennungsprozess wie bei den obigen HSxx-Ports durch. Wenn Sie alle verwendeten Ports zugeordnet haben, können Sie q drücken und eingeben (ENTER Taste), um die Erkennung zu verlassen. Wir möchten dann P. Plist bearbeiten & SSDT / Kext erstellen auswählen, wodurch wir zu einem Menü gelangen, in dem wir Ports aktivieren / deaktivieren (basierend auf unserer obigen Entdeckung) und Porttypen ändern können. Folgende Porttypen stehen zur Verfügung:

  • siehe oben

Am Ende der Liste befindet sich ein Zähler, der Sie darüber informiert, ob Sie das 15-Port-Limit überschritten haben - dies erfordert derzeit nicht mehrere Controller - ziehen Sie dies in Betracht.

Wenn Sie die Liste wie gewünscht eingerichtet haben, können Sie entweder K. USBMap.kext erstellen oder S. SSDT-UIAC erstellen auswählen. Ersterer versucht, einen USBMap.kext-Injektor zu erstellen (für den kein USBInjectAll.kext erforderlich ist). Dabei werden jedoch nur Ports hinzugefügt, die ohne USBInjectAll.kext nicht angezeigt werden. Wenn Ihr System also wie mein Asus Maximus X-Code ist (der HS01-HS14 und SS01-SS10 bereits ohne USBInjectAll.kext erkennt), sind Sie bereits über der 15-Port-Grenze und das Hinzufügen weiterer Ports bringt nichts. Das Erstellen einer SSDT ist normalerweise das, was die meisten Benutzer tun möchten, da nur die Ports ausgewählt werden, die das System sehen soll. Dies bedeutet, dass Ports nach Bedarf hinzugefügt und entfernt werden. Für die SSDT muss jedoch USBInjectAll.kext vorhanden sein.

Der resultierende Text kann in Ihren EFI/CLOVER/kexts/Other/-Ordner kopiert werden und sollte durch einen Neustart aktiviert werden (sofern Sie InjectKexts in Ihrer CLOVER config.plist aktiviert haben).

Die resultierende SSDT-UIAC.aml (iasl wird automatisch heruntergeladen und verwendet, um die .dsl zu kompilieren, falls möglich) kann in Ihrem EFI/CLOVER/ACPI/patched/-Ordner abgelegt werden. Wenn Sie SortedOrder verwenden, stellen Sie Folgendes sicher:

  • config.plist -> ACPI -> SortedOrder: Das dictionary muss <string> SSDT_UIAC.aml </string> enthalten

Vor einem erneuten Neustart: Gehen Sie zum Hauptmenü des Skripts und wählen Sie C. Ausschlüsse löschen, um alle ausgeschlossenen / eingeschlossenen Ports zu entfernen.

Danach sollten Sie in der Lage sein, alle zugewiesenen Ports neu zu starten und zu nutzen."

USB SSDT erstellen

/!\ Das benutze ich wegen #USBmap.kext nicht mehr.

Mit den gefundenen USB Ports kann man jetzt mit einem Python script USB-SSDT.command erstellen. Die Forum-Diskussion ist hier zu lesen.

Die original Version dieses Skriptes ist von Pike R. Alpha, dort gibt es auch eine Diskussion dazu.

Der iasl61 ACPI Compiler im Zip Archiv ist leider veraltet. Eine aktuelle Version von 2016-12-10 ist von RehabMan in github und das binary zum download. Das binary sollte in den Ordner GAH270M kopiert werden.

  • Dazu im Terminal arbeiten:

# Ordner erstellen, wenn noch nicht vorhanden:
$ mkdir ~/Install/Clover/GAH270M

# wechsele den Pfad zum Script
$ cd ~/Install/Clover/GAH270M/

# es sollte im Ordner sein:
    iasl61                      # ACPI compiler für Terminal
    IORegistryExplorer_302.app  # I/O Baum zeigen, IOService
    MaciASL                     # ACPI compiler/decompiler mit GUI
    USB-SSD.command             # Python script

# make executable
$ chmod +x USB-SSDT.command

# SSDT Tabelle erstellen
$ ./USB-SSDT.command
# Jetzt werden die gefundenen USB Ports abgefragt. Der Großbuchstabe ist die Voreinstellung.
# Weiter geht es immer mit der Taste ENTER.

...
Do you want to enable: HS04? [Y/n] n
Do you want to enable: HS05? [Y/n]
You enabled: HS05, are you using it as an internally connected port (For example WiFi/Bluetooth module)? [y/N]
Is: HS05 a USB 3.0 connector? [Y/n]
Do you want to enable: HS06? [Y/n]
...
# Nach der letzten Abfrage wird die Tabelle erstellt: /Schreibtisch/USB-SSDT.aml
# Diese verschiebt man am besten in den GAH270M Ordner.
Die SSDT hat die TableID: "xh_rvp10"

# EFI Partition mounten (mit Clover Configurator oder TINU)
# File USB-SSDT.aml kopieren nach EFI/CLOVER/ACPI/patched/

Dann muss man in der EFI/CLOVER/config.plist folgender Eintrag eingeben (z. B. mit Clover Configurator):

<key>DropTables</key>
     <array>
         <dict>
            <key>Signature</key>
            <string>SSDT</string>
            <key>TableId</key>
            <string>xh_rvp10</string>
         </dict>
     </array>

Es kann sein, dass bereits ein Eintrag DropTables vorhanden ist. Dann muss nur der Teil <dict>...</dict> eingesetzt werden.

Mac OS X

Hier werden die Betriebssystem Themen dokumentiert.

Clover

Aktualisieren Sie Clover auch mit dem Clover-Installationsprogramm auf den neuesten Stand. Stellen Sie sicher, dass Sie EFI/Clover/kexts korrigieren, sodass nur EFI/Clover/kexts/Other vorhanden ist. Alle versionsspezifischen Verzeichnisse unter EFI/Clover/kexts sollten entfernt werden. Von RehabMan.

Für Laptop BIOS: Aktuell halten, und Reset the EC (Embedded Controller).

ASM1042 USB

Es ist ein ASM1042 USB 3.0 Chip eingebaut (Rückseite, 2 x USB blau Buchsen), die aber anscheinend keinen Treiber haben. GenericUSBXHCI.kext

Intel NUC6i7KYK

Info: RehabMan nutzt den Intel NUC6i7KYK als Mac Mini Ersatz. Preis: 560 EUR + RAM + M2 SSD.

Kommandozeile

Die Dateibearbeitung in der Kommandozeile geht am einfachsten mit dem Midnight Commander.

Man kann die binär Version installieren, siehe Links, oder mit dem System homebrew package manager.

Auflistung der PCI und USB Geräte mit einem Linux (Ubuntu) USB Stick.

  • oder mit Mac OS Mitteln:
  • lsusb: Auflistung der USB Geräte:

# Bei dem Mainboard GA-H270M, und USB 2 und USB 3 Hub
$ brew install lsusb
$ lsusb
Bus 020 Device 001: ID 045b:0210 Renesas Electronics Corp. Hub
Bus 020 Device 003: ID 05dc:a833 Lexar Media, Inc. USB Flash Drive  Serial: AAJITNU51106MGAT
Bus 020 Device 002: ID 045b:0210 Renesas Electronics Corp. Hub
Bus 020 Device 011: ID 15d9:0a4c 15d9 USB OPTICAL MOUSE
Bus 020 Device 010: ID 046a:0023 CHERRY GmbH Composite Device
Bus 020 Device 005: ID 045b:0209 Renesas Electronics Corp. Hub
Bus 020 Device 009: ID 045b:0209 Renesas Electronics Corp. Hub
Bus 020 Device 004: ID 1a40:0201 TERMINUS TECHNOLOGY INC. USB 2.0 Hub [MTT]
Bus 020 Device 007: ID 1307:0330 USBest Technology Inc. Mass Storage Device  Serial: 00000000000006
Bus 020 Device 008: ID 7392:7811 7392 802.11n WLAN Adapter  Serial: 00e04c000001
Bus 020 Device 006: ID 1a40:0101 TERMINUS TECHNOLOGY INC. USB 2.0 Hub
Bus 000 Device 001: ID 1d6b:ISPT Linux Foundation USB 3.0 Bus

Um die PCI Geräte zu sehen empfiehlt sich (2013) DPCIManager

# Bei dem Mainboard GA-H270M, Fenster PCI List
Vendor Device Sub Ven Sub Dev Vendor name
10DE, 0E0F, 1462, 8C93, NVIDIA Corporation, GK208 HDMI/DP Audio Controller
10DE, 128B, 1462, 0010, NVIDIA Corporation
8086, 1901, 007F, 0000, Intel Corporation, Sky Lake PCIe Controller (x16)
8086, 1911, 1458, 5000, Intel Corporation, Sky Lake Gaussian Mixture Model
8086, 590F, 1458, 5000, Intel Corporation
8086, 5912, 106B, D000, Intel Corporation
10EC, 8168, 1458, E000, Realtek Semiconductor Co., Ltd., RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
8086, A282, 1458, B005, Intel Corporation
...
8086, A2F0, 1458, A182, Intel Corporation

USB HUB blockiert Rechner Start

Ein Logitech USB 2.0 10-Port HUB blockiert das Rechner einschalten. Bei laufendem Rechner eingesteckt, funktioniert der HUB. Aber aus dem Ruhezustand wacht der Rechner dann nicht mehr auf.

Mit einem USB 2.0 aktiven HUB Digitus 4-Port funktioniert es normal.

Das Netzteil Start-Problem mit einem aktiven USB-HUB ist bekannt, siehe Link

Die Problemlösung war, wie beschrieben im Link, die +5 V Leitung am USB-Kabel zu kappen. Das habe ich an einem Ersatz Kabel gemacht. Anscheinend war die HUB-Netzteil Spannung mit 5.22 V zu hoch.

List of pages in this category:

-- RudolfReuter 2019-02-23 05:51:35


Go back to CategoryMacOSX or StartSeite

MacOSXMojaveUSB3 (last edited 2019-08-15 14:15:04 by RudolfReuter)