- Joined
- Jun 11, 2017
- Messages
- 31
- Motherboard
- MSI Z690I Unify
- CPU
- 19-12900K
- Graphics
- RX 5700 XT
- Mac
Use Corpnewt's USBmap and skip USBInjectAll and XhciPorrLimit quirk.
You'll need to put a python on your system to run it but these are readily available.
The documentation is sparse but what you need to know is there.
Read the quick-start and play with the script and it will make sense.
Outline:
0. Remove all config pertaining to port mapping. Attach only bare minimum USB to operate system. Have devices handy for each connector type and USB 2 / USB 3, as appropriate. A USB 3 hub can be handy because it can be both personalities, but a mouse dongle and USB 3 flash drive will serve.
1. Run USBmap to Discover root controllers, generate a "dummy" kext and boot it
2. Discover ports. If a root controller has more than 26, poke around to find some to eliminate and use the alternate support script to pare down dummy to be able to see the ports you need (disable ports in dummy, replace dummy and reboot).
3. Detect all needed ports, disable unneeded ports to get down to 15 max (directly connected to root) and set connector types for active ports.
• You decide the tradeoffs / mix of active ports.
• As many other ports as you need can branch from these 15, mapping only pertains to ports directly connected to the root.
• If you have more than one root, each root gets 26 (during discover) / 15 (final).
• Connector type is determined by the final wiring to reach the downstream device, so a header that connects to a case harness with a type-A port is typically 3, while a header connected to a bluetooth adapter is 255 (internal). USBmap has a list built in to remind you. Late model type-C ports are 9 (switched)
4. Generate the final USBmap.kext and replace dummy with it.
• You can return to make adjustments.
If you change SMBIOS you need to revisit the layout. Ports may or may not stay the same, and at a minimum the SMBIOS label written into the kext must be updated if you change SMBIOS for your build.
Live long and prosper
Thanks for your guide c-o-pr
but maybe I'm doing something wrong.
1) I removed all my usb kexts I created before. Rebooted.
2) Ran USBmap, discovered ports. (for some reason it discovered only 15 my XhciPortLimit quirk is set to False)
3) Created a Dummy kext and set it up
4) After this I ran USBmap and tried to discover ports, here is what I saw:
5) I started to plug in USB 3.0 flash drive and it wasn't recognised in any port. Only USB 2.0 flash drive are working.
First of all I just don't understand why I see limited number of ports since I have quirk disabled and I don't have any .aml or .kext for usb.
I'll continue to research.