Differences between revisions 5 and 6
Revision 5 as of 2019-05-18 17:33:58
Size: 21549
Editor: RudolfReuter
Comment:
Revision 6 as of 2019-05-21 18:06:36
Size: 31645
Editor: RudolfReuter
Comment: added USBmap
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
||<tablestyle="float:right;margin:0px;"style="padding:0.5em;border:0px;font-size:100%;"><<TableOfContents>> || ||<tablestyle="&quot;float:right;margin:0px; &quot;"style="&quot;padding:0.5em;border:0px;font-size:100%; &quot;"><<TableOfContents>> ||
Line 16: Line 16:
Line 21: Line 22:
Line 26: Line 26:
Seit '''Mojave 10.14''' geht bei USB 3.0 nicht mehr die hohe Geschwindigkeit (5 Gbits/s), obwohl USB 3 angezeigt wird.  Seit '''Mojave 10.14''' geht bei USB 3.0 nicht mehr die hohe Geschwindigkeit (5 Gbits/s), obwohl USB 3 angezeigt wird.
Line 51: Line 51:
'''2016-10-08''' Author kuckuck [[https://www.hackintosh-forum.de/forum/thread/28914-anleitung-usb-3-0-el-capitan-high-sierra-mojave-f%C3%BCr-jedermann-zukunftssicher-f%C3%BCr/|Anleitung: USB 3.0 El Capitan / (High-) Sierra / Mojave für jedermann (zukunftssicher für Updates & komplett gepatcht)]]
Es soll die Kernel Extension [[https://www.hackintosh-forum.de/index.php/Thread/26127-USBInjectAll-Immer-aktuell-wenn-s-geht/|USBInjectAll.kext]] mit Zubehör eingesetzt werden. In Kurzform:
'''2016-10-08''' Author kuckuck [[https://www.hackintosh-forum.de/forum/thread/28914-anleitung-usb-3-0-el-capitan-high-sierra-mojave-für-jedermann-zukunftssicher-für/|Anleitung: USB 3.0 El Capitan / (High-) Sierra / Mojave für jedermann (zukunftssicher für Updates & komplett gepatcht)]] Es soll die Kernel Extension [[https://www.hackintosh-forum.de/index.php/Thread/26127-USBInjectAll-Immer-aktuell-wenn-s-geht/|USBInjectAll.kext]] mit Zubehör eingesetzt werden. In Kurzform:
Line 63: Line 63:
Line 68: Line 69:
Line 72: Line 74:
Line 76: Line 79:
'''2017-01-02''' Author !RehabMan [[https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/|[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:
'''2017-01-02''' Author !RehabMan [[https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/|[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:
Line 82: Line 85:
Line 83: Line 87:
Line 90: Line 95:
Line 92: Line 98:
Dann muss man die '''Vorlage SSDT-UIAC-ALL.dsl''' Editieren, so dass nur die gefundenen USB Port Referenzen übrig bleiben. Dann it dem MaciASL Compiler in die Datei '''SSDT-UIAC-ALL.aml''' kompilieren und nach EFI/Clover/ACPI/patched kopieren.  Dann muss man die '''Vorlage SSDT-UIAC-ALL.dsl''' Editieren, so dass nur die gefundenen USB Port Referenzen übrig bleiben. Dann it dem MaciASL Compiler in die Datei '''SSDT-UIAC-ALL.aml''' kompilieren und nach EFI/Clover/ACPI/patched kopieren.
Line 100: Line 106:
Die Erklärungen sind sehr gut, post #1 und #7.
Line 103: Line 111:

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 wird. Das wird im Kapitel [[#USBmap.kext]] beschrieben.
Line 117: Line 127:
Line 120: Line 129:
 * Voraussetzung: 
* Voraussetzung:
Line 124: Line 134:
Line 168: Line 179:
  - Clover users should read https://clover-wiki.zetam.org/Configuration/ACPI#acpi_smartupsNotice: Downloading iasl.zip ...          - Clover users should read https://clover-wiki.zetam.org/Configuration/ACPI#acpi_smartupsNotice: Downloading iasl.zip ...
Line 187: Line 198:
Do you want to open ssdt.dsl (y/n)?  Do you want to open ssdt.dsl (y/n)?
Line 235: Line 246:
Line 237: Line 247:
 * 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 [[https://www.hackintosh-forum.de/lexicon/entry/79-2-07-usb-port-l%C3%B6sungen/|Hinweis]]:

 *
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 [[https://www.hackintosh-forum.de/lexicon/entry/79-2-07-usb-port-lösungen/|Hinweis]]:
Line 254: Line 265:
Line 256: Line 266:
IORegistryExplorer_302.app (Mainboard GA-H270M) /!\ '''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.

Das USB port zuordnen 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''' tauglich.
 * USB-A Buchsen mit '''blauem''' Isolierstreifen sind '''USB 3.0''' tauglich
 * '''Interne''' USB Anschlüsse (Pfosten mit Kragen) haben entweder USB 2.0 oder USB 3.0 Auslegung.
 * Unten ist das '''Bild''' der Rückwand von Mainboard GA-H270M.

||<tablestyle="&quot;float:right; &quot;">[[attachment:GAH270M_USB_rear2.png|{{attachment:GAH270M_USB_rear2.png|attachment:GAH270M_USB_rear2.png|width="930"}}]] ||

.

||<tablestyle="&quot;float:right; &quot;">[[attachment:GA-H270M_Hackintool-USB.png|{{attachment:GA-H270M_Hackintool-USB.png|attachment:GA-H270M_Hackintool-USB.png|width="386"}}]] ||

==== IORegstryExplorer ====
Die bekannte Methode: '''IORegistryExplorer_302.app''' (Mainboard GA-H270M)
Line 259: Line 288:
 *XHC@14
  * HS01 - USB 3.1, Rear, low, right
  * HS02 - USB 3.1, Rear, low, left
  * HS03 - USB 3.1
, Rear, center, right, USB 2.0 Hub black
  * HS04 - USB 3.1, Rear, center, left, USB 2.0 Hub silver
  * HS05 - USB 3.1, Front, right
  * HS06 - USB 3.1, Front, left
 * XHC@14
  * HS01 - USB 2.0, Rear, low, right
  * HS02 - USB 2.0, Rear, low, left
  * HS0
3 - 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
  * HS
12 - USB 2.0, internal, Bluetooth mini PCIe card
Line 267: Line 297:
  * HS14 - USB 2.0, Rear, right, mouse    * HS14 - USB 2.0, Rear, right, mouse
Line 276: Line 306:
Das funktioniert, ist aber sehr abstrakt.


==== Hackintool ====
Mit der [[http://headsoft.com.au/download/mac/Hackintool.zip|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.

'''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.
 * Die '''SSxx''' Ports sind normalerweise USB 3.0 Version (Super Speed = 5 Gb/s).

Wenn man mit dem Programm '''USBmap.command''' arbeitet, sollte man zuest die Funktion '''D = Discover Ports''' benutzen, siehe die foldende 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.

{{{
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 ===
Das Python Programm Paket [[https://github.com/corpnewt/USBMap|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:
}}}
/!\ 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 '''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.
   * '''Tip''': 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.

{{{
### 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.
Line 278: Line 546:
/!\ Das benutze ich wegen [[#USBmap.kext]] nicht mehr.
Line 280: Line 550:
Die original Version dieses Skriptes ist von [[https://pikeralpha.wordpress.com/2016/07/13/simple-skylake-usb-fix-no-kexts-required/|Pike R. Alpha]], dort gibt es auch eine Diskussion dazu.   Die original Version dieses Skriptes ist von [[https://pikeralpha.wordpress.com/2016/07/13/simple-skylake-usb-fix-no-kexts-required/|Pike R. Alpha]], dort gibt es auch eine Diskussion dazu.
Line 284: Line 554:
Line 286: Line 555:
Line 309: Line 579:
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] 
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]
Line 322: Line 592:
Line 335: Line 606:

Line 340: Line 609:
Line 346: Line 614:

Line 349: Line 615:
Es ist ein ASM1042 USB Chip eingebaut (Rückseite, 2 x USB blau Buchsen), die aber anscheinend keinen Treiber haben. GenericUSBXHCI.kext
Es ist ein ASM1042 USB 3.0 Chip eingebaut (Rückseite, 2 x USB blau Buchsen), die aber anscheinend keinen Treiber haben. GenericUSBXHCI.kext
Line 355: Line 620:
Line 361: Line 625:
Auflistung der PCI und USB Geräte mit einem [[https://www.hackintosh-forum.de/lexicon/entry/39-5-welche-hardware-wurde-in-meinem-ger%C3%A4t-verbaut/|Linux (Ubuntu) USB Stick]]. Auflistung der PCI und USB Geräte mit einem [[https://www.hackintosh-forum.de/lexicon/entry/39-5-welche-hardware-wurde-in-meinem-gerät-verbaut/|Linux (Ubuntu) USB Stick]].
Line 364: Line 629:
Line 368: Line 634:
Bus 020 Device 001: ID 045b:0210 Renesas Electronics Corp. Hub  Bus 020 Device 001: ID 045b:0210 Renesas Electronics Corp. Hub
Line 370: Line 636:
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 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]
Line 378: Line 644:
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 
}}}
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
}}}
Line 383: Line 648:
Line 397: Line 663:


Line 407: Line 670:
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.
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.
Line 415: Line 676:

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).

USB 3.0 Problem

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

Seit Mojave 10.14 geht bei USB 3.0 nicht mehr die hohe Geschwindigkeit (5 Gbits/s), obwohl USB 3 angezeigt wird.

Um das zu korrigieren kann eine SSDT (System Service Descriptor Table) angepasst werden, siehe folgende Anleitungen.

2016-09-30 Author: RehabMan - Ab MacOS 10.11+ ist der USB Stack von Apple umgebaut worden, siehe Guide von RehabMan. Jetzt wird mehr Information von ACPI genutzt als vorher. Deshalb ist es wichtig, dass die Eintragungen in der DSDT 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 Hack 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

.

2016-10-08 Author 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 aufgeleuchtet hat mittels dem bootarg: uia_exclude=SSXX;SSXX;SSXX

Kommentar: Das scheint mir sehr aufwendig zu sein.

.

2016-09-24 Author 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 a 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/GAH81M) kopiert werden.

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

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

.

2017-01-02 Author 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 it 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.

.

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

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

USB Port Korrektur mit einer .kext Datei.

Kommentar: Das erscheint mir sehr aufwendig zu sein.

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 wird. Das wird im Kapitel #USBmap.kext beschrieben.

.

2018-11-30 Author: 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/.

Kommentar: Das erscheint sehr auswendig 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.

Das USB port zuordnen 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 tauglich.

  • USB-A Buchsen mit blauem Isolierstreifen sind USB 3.0 tauglich

  • Interne USB Anschlüsse (Pfosten mit Kragen) haben entweder USB 2.0 oder USB 3.0 Auslegung.

  • Unten ist das Bild der Rückwand von Mainboard GA-H270M.

attachment:GAH270M_USB_rear2.png

.

attachment:GA-H270M_Hackintool-USB.png

IORegstryExplorer

Die bekannte Methode: IORegistryExplorer_302.app (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.

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.

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

Wenn man mit dem Programm USBmap.command arbeitet, sollte man zuest die Funktion D = Discover Ports benutzen, siehe die foldende 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.

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

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:

/!\ 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 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.
      • Tip: 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.

### 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.

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 empfielt 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)