Contribute
Register

The New Beginner's Guide to USB Port Configuration

Interesting.

The only difference is in the PCI config - SLT1 being (0x1C,0x0) and SLT7 being (0x1C,0x6).
What do you mean by that ?
I don't have your hardware to test with but I would probably try adding a DeviceProperties entry for the SLT7 USB controller.
I'm very interesting to do that, but I don't know how. Is there a guide you can recommend ?
I can only guess no other hardware device uses the same value and causes a conflict? (Backup in case it does).

No guarantees, but something worth testing perhaps?

:)
testing is my life :lol:
 
Open Hackintool, navigate to the PCIe tab and select the Export icon (bottom right hand side).

Screenshot 2023-10-25 at 21.05.31.png Hackintool > PCIe tab

This will export 4 x files to your desktop.

Screenshot 2023-10-25 at 21.05.51.png 4 x Exported files, pcidevices.plist highlighted

Open the pcidevices.plist using your normal Plist editor (I use ProperTree).

This Plist file contains DeviceProperties for all the components/devices in your system. They are in a format that they will work in the OpenCore config.plist, without any alteration/editing. Below is an example from the pcidevices.plist exported from my AMD B550 system (as that it what I am currently using).

Screenshot 2023-10-25 at 21.13.29.png DeviceProperties from my AMD system.

With the pcidevices.plist open, scroll to the ASMedia USB SLT1 & SLT7 entries (SLT1 being (0x1C,0x0) and SLT7 being (0x1C,0x6)). Copy and paste both sets of device properties from the pcidevices.plist to the DeviceProperties section in your OC config.plist. Or just the one where the USB controller is not being displayed.

This is not always necessary but you may want to add a line/child setting the SLT7 USB controller as built-in, so macOS treats it as a built-in device. But try it without first. The two screenshots below show the difference between having the built-in line and not.

Screenshot 2023-10-25 at 21.18.53.png Not built-in

Screenshot 2023-10-25 at 21.19.27.png Built-in added
 
Thanks @UtterDisbelief, this guide is excellent and easy to understand/follow by an inexperiencedThanks @UtterDisbelief, this guide is excellent and easy to understand/follow by an inexperienced hackintosher like me - I successfully generated an USBports.kext for my NUC8iBEH which fixed the annoying sleep/dark-wake/re-sleep issue - the OpenCore template that I adopted was with a problematic mapping of one USB port which caused my computer to darkwake immediately after the sleep, and re-enter sleep after around 60 seconds;
I'm currently on Sonoma 14.0 and am trying to re-map my USB drives, originally done back in Monterey, because of a possible mis-map I made back then. I've removed that USBPorts.kext from my EFI folder (OC 0.9.5) and its reference from my config.plist. Then I followed the guide of @UtterDisbelief in Post #1732 by downloading USBInjectAll.kext, referencing it in my config.plist and enabling the XHCIPortsLimits quirk. But when I reboot, *none* of my USB ports are functioning... I can't use the wired mouse & wired keyboard no matter where they're plugged in. Additionally, my bluetooth is turned off (I believe it's provided by my Fenvi card, which under Sonoma no longer offers Wifi but does off bluetooth, possibly thru an internal USB connection). Consequently, I can't even begin the USB mapping procedure with Hackintool because I can't move the mouse pointer at all.

I've tried various versions of USBPorts.kext from 0.7.3 up to 0.7.7 but none of them cooperate; all USB ends up being completely off (even my USB audio... my sound ends up coming thru my monitor instead of my external speakers). Is this because none of the versions of USBPorts.kext are compatible with Sonoma?
 
A previous USBPorts.kext that worked correctly in Ventura or older should work exactly the same in Sonoma.

Try the attached version 0.8.0 for USBInjectAll.kext, see if that helps. It has been updated to work with 600 & 700 Series USB controllers, so should work with your Z590 board.

Did you use the ResetNvramEntry.efi driver to clear all the old Nvram settings before you tried booting back in to macOS?

Also if you have a practically correct USBPorts.kext why don't you edit the info.plist within your USBPorts.kext, to correct the element you think you got wrong? Surely that would be better than creating a new kext.

To edit the existing kext do the following:
  1. Right-click on the USBPorts.kext,
  2. Select 'Show package contents' from the sub-menu,
  3. Open the Contents folder and then
  4. Open the Info.plist in ProperTree or another Plist editor.
Screenshot 2023-10-26 at 00.47.13.png Right-click sub-menu with Show Package Contents highlighted.

You should then be able to change any USB connector types, add comments and add or remove any USB ports. Although the last part might take some detective work to make sure you are adding the correct port, with the correct port number.
 

Attachments

  • USBInjectAll - v0.8.0.zip
    36.3 KB · Views: 24
A previous USBPorts.kext that worked correctly in Ventura or older should work exactly the same in Sonoma.

Try the attached version 0.8.0 for USBInjectAll.kext, see if that helps. It has been updated to work with 600 & 700 Series USB controllers, so should work with your Z590 board.

Did you use the ResetNvramEntry.efi driver to clear all the old Nvram settings before you tried booting back in to macOS?

Also if you have a practically correct USBPorts.kext why don't you edit the info.plist within your USBPorts.kext, to correct the element you think you got wrong? Surely that would be better than creating a new kext.

To edit the existing kext do the following:
  1. Right-click on the USBPorts.kext,
  2. Select 'Show package contents' from the sub-menu,
  3. Open the Contents folder and then
  4. Open the Info.plist in ProperTree or another Plist editor.
View attachment 573414 Right-click sub-menu with Show Package Contents highlighted.

You should then be able to change any USB connector types, add comments and add or remove any USB ports. Although the last part might take some detective work to make sure you are adding the correct port, with the correct port number.
Thanks, I will definitely try the version 0.8.0 tomorrow & report back.

My USB mapping always seemed okay enough from Monterey to Ventura & now Sonoma, though I never wrote down what was what and am always forgetting when I plug in a new device. Newer 3.x peripherals don't work in certain ports and I have to shuffle the connections until I find one where they do work. So I've intended for awhile now to redo the mapping from scratch if & when I got the time.

For instance: I bought a new USB WiFi adapter (a TP-Link Archer T3U Plus) yesterday; it says USB3 on the box but no matter where I plug it in, Hackintool shows it being on a HS personality, not an SS one. See attached screenshot. That happens even if I temporarily unplug a device that showed it was using SS… the T3U plugged into the same port switches it to HS. Unless there's something wrong with the T3U itself, I can only assume there's something wrong with my mapping.
 

Attachments

  • IMG_2421.jpeg
    IMG_2421.jpeg
    183 KB · Views: 19
Thanks

Capture d’écran 2023-10-26 à 08.49.28.png
Screenshot 2023-10-26 at 08.50.39.png

No improvement With or Without the "built-in" line. Mystery thickens!!
is it possible to include SLT1 & SLT7 in the USBmap.kext ?
 
Thanks, I will definitely try the version 0.8.0 tomorrow & report back.

My USB mapping always seemed okay enough from Monterey to Ventura & now Sonoma, though I never wrote down what was what and am always forgetting when I plug in a new device. Newer 3.x peripherals don't work in certain ports and I have to shuffle the connections until I find one where they do work. So I've intended for awhile now to redo the mapping from scratch if & when I got the time.

For instance: I bought a new USB WiFi adapter (a TP-Link Archer T3U Plus) yesterday; it says USB3 on the box but no matter where I plug it in, Hackintool shows it being on a HS personality, not an SS one. See attached screenshot. That happens even if I temporarily unplug a device that showed it was using SS… the T3U plugged into the same port switches it to HS. Unless there's something wrong with the T3U itself, I can only assume there's something wrong with my mapping.

Hmmm. The official macOS driver only reaches as far as Mojave. Are you using the updated version by Chris1111 ?

:)
 
Hmmm. The official macOS driver only reaches as far as Mojave. Are you using the updated version by Chris1111 ?

:)
Yes, I followed his YouTube video and installed his driver per those instructions. It did seem to dump a few kexts in my EFI folder that his video kind of zoomed past (RtWlanU.kext and RtWlanU1827.kext). He never mentioned the need to reference them in a config.plist but I added the references there myself. Now, I'm wondering if their presence is somehow interfering with USBInjectAll... but tonight I'll try the updated 0.8.0 version that @Edhawk sent me in Post #1748.
 
Yes, I followed his YouTube video and installed his driver per those instructions. It did seem to dump a few kexts in my EFI folder that his video kind of zoomed past (RtWlanU.kext and RtWlanU1827.kext). He never mentioned the need to reference them in a config.plist but I added the references there myself. Now, I'm wondering if their presence is somehow interfering with USBInjectAll... but tonight I'll try the updated 0.8.0 version that @Edhawk sent me in Post #1748.

Oh, okay. The driver download I linked to was an installer app, not just kexts.

Also remember not to have USBInjectAll and the quirk enabled if you are using a USBPorts.kext (which your last screengrab seemed to imply) and vice versa.

:)
 
My screengrab shows my current state, which is still using my (possibly wonky) USBPorts.kext and with the quirk set to False. When I set out to re-map, I removed that USBPorts.kext, installed USBInjectAll.kext, and set the quirk to True. But that's when all my USB ports shut off after reboot.

If the same thing happens tonight with version 0.8.0 of USBInjectAll, I might see if I can login to my Hack using Remote Desktop from an old Mac and control the Hack's mouse that way, at least long enough for me to do a fresh map of the ports. I'd really like to get that new USB WiFi adapter to use an SS speed instead of the HS it's showing now.
 
Back
Top