-
Notifications
You must be signed in to change notification settings - Fork 97
Description
I have been struggling for weeks to get my USB ports mapped with various tools... finally this one did the trick. Huge thanks to the developers for making this program! Here's how to make it work (at least for me with a z690 motherboard)...
First of all...
- Do not use USBInjectAll.kext - just get rid of that for good.
- Do not enable XHCIPortLimit in your config.plist
- Disable any other USB kexts and/or SSDTs that might interfere with the state of your USB until you get the mapping working, except for USB-plug-alt or the RHUB reset that you can create (if you need it... I didn't).
- Follow the instructions and use the program to generate a dummy USBMap.kext, and put that in your EFI.
Now when you reboot, you will likely have a bunch of USB ports that don't work, so you'll need to find one or two that work for your keyboard and mouse. Now follow the instructions for inserting a USB 2 and 3 device into each USB-A port. Don't be surprised if USB3 devices don't get detected at all. Just name all the ports as it says. I used U1, U2, U3, L1, L2, L3 etc for the upper and lower ports on the back of my computer. You should unplug and replug your keyboard/mouse so it will let you name them. When you are done with all the ports, you can quit USBMap and it will save your progress. Don't worry if most of your ports didn't work for USB3.
The part that is most unclear with the instructions is what to do with the USBMapInjectorEdit program, which is the next step. Like I said, you do not want to make a real USBMap.kext yet, you are still using the dummy. Don't make the mistake of generating a real USBMap.kext, that is for the final step only. Mount your EFI and Show Contents of the dummy USBMap.kext you are already using, and drag the Info.plist from that to USBMapInjectorEdit. All ports will be shown enabled... disable all the ones you named EXCEPT for the 1 or 2 you are using for keyboard and mouse. Quit the program, it will save it automatically. Now reboot.
Now when you run USBMap again, you should see a whole bunch of new ports which weren't there before because they were over the 15 port limit. Go through all the ports again like before, USB 3 devices should start registering (at least for me, the USB 3 ports were all the higher number ports). Name them the same labels you gave the same ports in 2.0 mode. When you are done you should have discovered all the ports in both USB 2.0 and USB 3 mode.
Now fix the types for the ports, including setting whatever Bluetooth is on to type 255. You will most likely be over the 15 port limit, so now you can choose what to disable. One thing that no one seems to mention is that USB 2.0 and USB 3 on the same physical port counts as 2 ports. So you don't need to disable whole ports. I had 18 ports when I was done mapping, and I decided to turn 2 physical ports into USB 3 only and one into USB 2.0 only, which took it down to 15 total. When you have everything the way you like it, you can now generate the real USBMap.kext and replace the dummy in your EFI.
That's, it. It should now work properly when you reboot. Another important thing to know is if you want to change what you disabled, you can drag your Info.plist from the new kext on your EFI into USBMapInjectorEdit any time.
I hope this helps anyone who was stuck like I was. Don't give up and resort to using USBToolBox on Windows. I did that at first and it turned my ports into a complete disaster. That program is not effective in doing this as it doesn't behave at all like how MacOS does and you'll have to disable entire physical ports, and it still won't work right in the end.
USBMap is genius. Finally all my ports work for the first time since building this machine.