Contribute
Register

The New Beginner's Guide to USB Port Configuration

2) With a working system, use the Hackintool "broom" icon to clear the stage then the circular-arrows icon to reload the config. Once loaded you see the configuration as it currently stands. Remove sections/ports as needed and Export the files again.
Thanks for that. Unfortunately at the moment I am not in possession of the computer (Skylake, "Mini-ITX 2" below). I have only its EFI folder and documentation of its USB ports. I wanted to update its flash drive installer's boot loader from OC 0.7.4 to 0.8.4, and ran across the issue.

The "techie" reason for preferring the USBPorts.kext over the SSDT-UIAC.aml/USBInjectAll.kext method is to remove a kext with executable code within it. The new security features macOS uses are liable to block third-party kexts that execute from within kernal-space. This is only likley to get stricter. The USBPorts.kext option contains no executable code and is "invisible" to "kextstat" (run it in Termial and check etc). So is safer in the long run. It also works on whatever macOS version you are using.
Thanks; that's the answer I was hoping for to my original question!
 
Going thru this guide to clean up my USB ports. There is mention of getting PLR for older OSs. Is there one for Monteray? Or is the PLR no longer required for Monteray?
Screen Shot 2022-10-01 at 1.46.14 PM.png
 
Hi there,

I have finally mapped the usb-c port on my motherboard and it works but it doesn't show on Hackintool's USB tab when a stick is connected to it so I wonder if I did it right. I went back to Big Sur 11.2.3 to do the mapping and the good thing is that the usb-c port is on its own controller so I didn't need to disable another port to stay at the 15 ports limit.

Hackintool
without usb c.png


System report
Screenshot 2022-10-22 at 10.39.42.png

Does it look right and is it normal that it doesn't show in Hackintool?
Thanks!
 
Sometime you need to use the Clear All icon (sweeping broom) to remove any old settings logged in Hackintool. Then use the Refresh icon (circular arrows) for Hackintool to update the ports displayed.

Always best to take a screenshot of your current Hackintool > USB tab, before you Clear and Refresh the USB window. That way you can see which ports need to be reset to reflect the connector type, and if you have used the Comments column to identify which port is reflected physically when you install a USB drive.

Hackintool - USB tab.png

The screenshot above is an example of a USB config for an Asus Z97-K Mb, before whittling down the ports to fit within the 15 port limit.
 
Thanks Edhawk,
I went back to Big Sur once more but this time enabled Thunderbolt in the bios and added SSDT DTPG.aml and SSDT Z490 TB3HP.aml when mapping ports as the TB port is also the usb-c port and now I have this:

Screenshot 2022-10-23 at 11.29.37.png

I guess I could remove TypeC+Sw HS02/SSP02 as the board only has one usb-c port but it might be linked to thunderbolt and it's maybe better to leave it?

Finally here is a screenshot from IOReg
Screenshot 2022-10-23 at 11.28.51.png

Could you confirm that things look finally right? Thanks!
 
I guess I could remove TypeC+Sw HS02/SSP02 as the board only has one usb-c port but it might be linked to thunderbolt and it's maybe better to leave it?
Yes, better to leave it.

Could you confirm that things look finally right? Thanks!
Yes, that looks fine to me.
 
Yes, better to leave it.


Yes, that looks fine to me.
Edhawk,
I have been struggling with making a build, for a Freind of mine, work properly for a year now. It is an Asus Z490I Rog Strix with an I5 10500T and an AMD Sapphire RX 570. It has one little glitch left as it does not always start up the macOS perfectly. It will start the load bar and then restart if I, or the owner, wait 25 secs or more before clicking on the boot icon it will start perfectly, obviously a kernel panic, but I am wondering if you could take a look at the EFI I created for this machine with IO reg report a screen print of my USB mapping and the dumped DSDT from windows to see if I made a major blunder somewhere in the structure and settings of the configPlist? BTW I have the I-1225-V finally working properly and the machine is dual boot Ventura / Win 11pro using 0.8.6 OC. Many Thanks!!!! if you can help and maybe trim down the Configplist to only the necessary items require for booting this problem child machine. I am in no way as knowledgeable as you in creating the perfect EFI structure, but I have seen your work and it is exemplary!
 

Attachments

  • FILES FOR EDHAWK.zip
    8.8 MB · Views: 40
I'm happy to have a look at the EFI etc.but have a couple of questions/observations.

Did the system suffer with 'Instant Wake' issues, before you added the SSDT-GPRW.aml table and companion patch to the /EFI/OC/ACPI folder and config.plist respectively?

If not then you may not need this SSDT and the config.plist ACPI patch.

You have an obsolete ACPI patch for Method (UPRW, 2,.... enabled in your config.plist.

Screenshot 2022-10-31 at 21.35.09.png Obsolete patch

It is obsolete because the DSDT.aml doesn't contain a Method (UPRW, 2,.... . It contains a Method (GRPW, 2,.... entry.

I assume you obtained the SSDT-GPRW.aml from this Dortania Github page.


You might want to ensure that Lilu.kext and VirtualSMC.kext are the first and second kexts in the Kernel > Add section of your config.plist. While you have Lilu.kext first, VirtualSMC.kext is fourth, with another Lilu plugin (NVMeFix.kext) injected before VirtualSMC.kext. This is not usually a good thing.

Kernel > Patch > 0
Not sure if you need this AppleRTC patch. Where did you obtain the patch and under what circumstances was it being used by the owner/developer?

Screenshot 2022-10-31 at 22.19.23.png AppleRTC Kernel > Patch

Misc > Debug > AppleDebug and ApplePanic are set to false, they should be set as True.

USBPorts.kext details will be in my next post.

Rest of the OC EFI looks fine.
 
The USBPorts.kext has a few anomalies (possible errors).

The MB has the following USB Ports.
Screenshot 2022-10-31 at 21.28.27.png
  1. Going by the above screenshot, the USBPorts.kext should have a maximum of 2 x USB2 ports with Connector Type (0).
    • The kext has 5 x ports with the 0 connector type, so most of these are set incorrectly.
    • Only the 2 x Physical USB2 ports on the rear I/O plate should be set as USB2 (0). Item 8 in the screenshot below.
    • Any USB2 virtual ports, served from a USB3 port, items 2, 9 & 10 in the screenshot below, should be set with the connector type USB3 (3), to match the Physical characteristics of the parent port.
    • Screenshot 2022-10-31 at 21.32.07.png Rear I/O plate connectors.
    • HS12 & HS13 should be the only ports set as USB2 (0), according to the Motherboard layout below.
    • Screenshot 2022-10-31 at 21.29.48.png Motherboard layout
    • The others are likely to be virtual USB2 ports served from the USB3 physical ports, so they should be set as USB3 (3), not USB2.
  2. There are 2 x USB Ports set with connector type Internal (255)
    • One for the Bluetooth and one for the Aura LED controller, this is what the USBPort.kext activates.
    • Assumptions:
      • The Bluetooth is provided by the built-in CNVi connector for the Intel WiFi/BT card, that was part of the motherboard when purchased.
      • The Aura LED controller USB connection is from the USB2 header port.
  3. Type-C ports and header can be tricky to set correctly, as there are two different types of Type-C ports.
    • Type-c+sw (9)
    • Type-c (10) (without switch)
    • USB Port Connector Types.png USB connector types.
    • You have set 3 x ports as Type-c+sw (9) in the USBPorts.kext.
      • Are you sure this is correct?
      • Did you undertake the Type-C flip test, where you insert a type-c device in to a port, note which port is activated, then remove the device, flip it 180° and reinsert the device.
      • Was the same port activated?
      • If yes, then the connector type (9) is correct.
      • If not, then the port should be set as connector type (10).
From my reading of the Motherboard layout and your USBPorts.kext these are the correct ports on this board.
  • USB2 - HS12 & HS13
  • USB3 Header - HS07/SS07 & HS08/SS08
  • Type-C Header - HS01 & SS01
  • CNVI (BT) - HS11
  • USB3 G1 - HS09/SS09 & HS10/SS10
  • USB3 G2 - HS05/SS05 & HS06/SS06
  • USB3 G2 - HS03/SS03
  • Type-c (rear) - HS04/SS04
  • USB2 Header (Aura LED) - HS02
I can't tell which connector type the 2 x Type-C connectors requires, that can only be discovered by undertaking the test mentioned above. But the above list and other information should help you set the USBPorts.kext to rights.

Hope this helps.
 
Back
Top