corpnewt / USBMap

Python script for mapping USB ports in macOS and creating a custom injector kext.
MIT License
1.06k stars 89 forks source link

Stuck on step 5 and 6 #35

Open tekdru opened 2 years ago

tekdru commented 2 years ago

I tried going through the Quick Start steps but I'm stuck on step 5 & 6.

At step 5, two of the usb ports are not being detected. These missing ports are on the internal header of a NUC8i7BEH. step-5

At step 6, I'm not sure what to do or what is meant by "toggle off".
The options that I see does not look like anything mentioned in step 6 to "toggle-off". Please see attached screenshots. step-6-a step-6-b

Any help is appreciated Thanks

Crazor commented 2 years ago

I figured it out: Important: Remove USBInjectAll.kext!

Instead of step 6, go to the main menu and enter menu P. Enable all populated ports, disable all empty ports (should already be the case). If you're missing some USB3 ports, go ahead and enable all the disabled SS ports. If you're still missing USB2 ports, enable all the disabled HS ports. Don't bother with USRx ports, macOS doesn't support them. Then look at the XHC count. It has to be 15 or lower and green. If it's above 15 and red, disable a bunch of ports, maybe even ones already disabled. Build the updated kext, install it, reboot, re-run the discovery step, rinse and repeat. Took me three reboots to get all my ports working. Remember to never turn off ports which have your input devices, or you will be stuck.

souko6 commented 2 years ago

I figured it out: Important: Remove USBInjectAll.kext!

Instead of step 6, go to the main menu and enter menu P. Enable all populated ports, disable all empty ports (should already be the case). If you're missing some USB3 ports, go ahead and enable all the disabled SS ports. If you're still missing USB2 ports, enable all the disabled HS ports. Don't bother with USRx ports, macOS doesn't support them. Then look at the XHC count. It has to be 15 or lower and green. If it's above 15 and red, disable a bunch of ports, maybe even ones already disabled. Build the updated kext, install it, reboot, re-run the discovery step, rinse and repeat. Took me three reboots to get all my ports working. Remember to never turn off ports which have your input devices, or you will be stuck.

Thank you to both posts. It took additional testing to figure the process, but I will provide my instructions on how I got my USB 3.0 ports to work with USB 2.0 devices.

Pre-requisites: -- Disable USBInjectAll.kext in your config.plist -- USBMap is installed and running on your mac -- Running Monterey v12.5 -- This assumes you have most of your USB 3.0 ports mapped already using Wiki

STEPS

  1. Run USBMap.command
  2. Follow steps 1-5 in Wiki
  3. Once you're on step 6, return to USBMap main menu then input P as your option (it doesn't show up as an option, but it's there) and press Enter
  4. This takes you to the Edit USB Ports screen
  5. You can enable and disable the ports you see on the screen by their list number (i.e. inputting 1 as your selection and hitting enter will toggle the port on and off; # sign denotes it's on, empty brakcets [ ] denotes it's off)
  6. To enable USB 2.0 devices on your USB 3.0 ports, enable HSXX ports until you hit XHCI count of 15 (I guess you can't go over this)
  7. Select option K to build the USBMap.kext for Catalina and newer; this will open Finder to show you where the file was created
  8. Mount your EFI partition, copy USBMap.kext to your EFI > OC > Kext folder (overwrite existing file)

Repeat this process enabling and disable HSXX ports until you're happy with which USB 3.0 ports work with USB 2.0 devices. If you hit the limit of 15 XHCI ports and still have USB 3.0 ports that don't work with USB 2.0, you'll probably have to compromise unless there's a port limit kext that works?