Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Joined
Jan 16, 2017
Messages
84
Motherboard
Gigabyte H370N Wifi
CPU
i3-8100
Graphics
UHD 630
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Nothing is wrong with USBPorts.kext being put in 'Other'. In fact it is safer to use it in EFI/CLOVER/kexts/Other or EFI/OC/Kexts for Catalina and Big Sur.

For a start, no third-party kext should go in S/L/E for Catalina or later. Period. This is because of new kernel protection put in place by Apple.

This guide doesn't use USBPorts.kext. This guide was a slightly older method of configuration, relying on USBInjectAll.kext and and SSDT-UIAC.aml. In the New Beginner's Guide we create and use USBPorts.kext.

The reason for the preference between the techniques is because USBPorts.kext contains no executable code. This is important for the latest macOS's. It is a method of altering the ACPI by loading, or injecting, the changes we need as a kext would. Because it has no executable it does not ring any alarm-bells for Catalina or Big Sur. It doesn't get blocked. If you put it in the EFI location macOS doesn't even get a sniff of it. Run the Terminal command 'kextstat' (when you get it all working) and you will see it is apparently not there.
Hi, thanks for replying. I have every intention to utilize Other for kext placement. No kexts have ever been placed in S/L/E, just in LE. Now back to my original question: Why is USBPorts.kext incorrect when placed in E/C/k/O? I was just pointing out that if using LE, the ports were mapped correctly. I will move kexts back to EFI, but I'd like to ensure USBPorts.kext is functioning as expected. Also, I used your New Beginners Guide to create the kext file. Not sure why I posted my original question (last year) in the other (older) guide. Any hints?
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
6,585
Motherboard
Gigabyte Z490i Aorus Ultra - OC 0.6.8
CPU
i5-10600K
Graphics
GT710 - 1920x1080
Mac
  1. iMac
  2. Mac mini
Classic Mac
  1. eMac
  2. iBook
Mobile Phone
  1. Android
Hi, thanks for replying. I have every intention to utilize Other for kext placement. No kexts have ever been placed in S/L/E, just in LE. Now back to my original question: Why is USBPorts.kext incorrect when placed in E/C/k/O? I was just pointing out that if using LE, the ports were mapped correctly. I will move kexts back to EFI, but I'd like to ensure USBPorts.kext is functioning as expected. Also, I used your New Beginners Guide to create the kext file. Not sure why I posted my original question (last year) in the other (older) guide. Any hints?

Well perhaps I misunderstood something. Are you saying that USBports.kext works as intended when installed in L/E but not when it is put in EFI/CLOVER/kexts/Other ? What is "incorrect"?

There should be no duplicated kexts, both in EFI and L/E. USBInjectAll.kext should not be in either.

Perhaps consider uploading a config.plist with serial numbers redacted, or your EFI folder.

:)
 
Joined
Jan 16, 2017
Messages
84
Motherboard
Gigabyte H370N Wifi
CPU
i3-8100
Graphics
UHD 630
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Well perhaps I misunderstood something. Are you saying that USBports.kext works as intended when installed in L/E but not when it is put in EFI/CLOVER/kexts/Other ? What is "incorrect"?

There should be no duplicated kexts, both in EFI and L/E. USBInjectAll.kext should not be in either.

Perhaps consider uploading a config.plist with serial numbers redacted, or your EFI folder.

:)
Hello,

Sorry for the late response. I now have all kexts, including USBPorts, installed in E/C/k/O; no 3rd party texts in LE. The USB ports are now showing correct in Hackintool. Not sure what happened before; I had some weird issues updating kexts. To remedy, I had moved them back into LE per the guide on "Installing 3rd Party Kexts". The recent update to Clover Config changed my inject kext setting. Seems like if USBPorts was installed in E/C/k/O with inject kext set to Detect, the ports mapping was incorrect. If instead USBPorts was installed in LE, the ports were correct. Hence the reason for my post to determine if something was amiss with USBPorts installed in Other? The correct inject kexts setting if using Other is Yes. Anyway, I'm good for the time being.

I do have another question. In a previous post (#588) in this thread, you indicate that since SS07 & SS08 do not show up in Hackintool, I wont be able to configure them. These ports are located on the back panel as USB 3.1. When plugging into them, only HS07 and/or HS08 appear. Does this mean that these two will only work as USB2, even if using a USB3 device? Below are the screen shots from last year showing my mapped ports using your guide, as well as what appeared in the beginning with the port limit removal patch. Thank you for any info!
 

Attachments

  • Hackintool USB.png
    Hackintool USB.png
    122.8 KB · Views: 19
  • Port Limit Removal all Ports.png
    Port Limit Removal all Ports.png
    148.2 KB · Views: 25

Feartech

Moderator
Joined
Aug 3, 2013
Messages
23,555
Motherboard
Asus N752VX-OpenCore
CPU
i7-6700HQ / HM170
Graphics
HD 530 1920 x 1080
Mac
  1. iMac
Mobile Phone
  1. iOS
Hello,

Sorry for the late response. I now have all kexts, including USBPorts, installed in E/C/k/O; no 3rd party texts in LE. The USB ports are now showing correct in Hackintool. Not sure what happened before; I had some weird issues updating kexts. To remedy, I had moved them back into LE per the guide on "Installing 3rd Party Kexts". The recent update to Clover Config changed my inject kext setting. Seems like if USBPorts was installed in E/C/k/O with inject kext set to Detect, the ports mapping was incorrect. If instead USBPorts was installed in LE, the ports were correct. Hence the reason for my post to determine if something was amiss with USBPorts installed in Other? The correct inject kexts setting if using Other is Yes. Anyway, I'm good for the time being.

I do have another question. In a previous post (#588) in this thread, you indicate that since SS07 & SS08 do not show up in Hackintool, I wont be able to configure them. These ports are located on the back panel as USB 3.1. When plugging into them, only HS07 and/or HS08 appear. Does this mean that these two will only work as USB2, even if using a USB3 device? Below are the screen shots from last year showing my mapped ports using your guide, as well as what appeared in the beginning with the port limit removal patch. Thank you for any info!
because setting Detect in config.plist, it will detect to see if FakeSMC or VirtualSMC kext is installed to /L/E and then if it sees it in there, it will load that kext and also any other kext in /L/E
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
6,585
Motherboard
Gigabyte Z490i Aorus Ultra - OC 0.6.8
CPU
i5-10600K
Graphics
GT710 - 1920x1080
Mac
  1. iMac
  2. Mac mini
Classic Mac
  1. eMac
  2. iBook
Mobile Phone
  1. Android
Hello,

Sorry for the late response. I now have all kexts, including USBPorts, installed in E/C/k/O; no 3rd party texts in LE. The USB ports are now showing correct in Hackintool. Not sure what happened before; I had some weird issues updating kexts. To remedy, I had moved them back into LE per the guide on "Installing 3rd Party Kexts". The recent update to Clover Config changed my inject kext setting. Seems like if USBPorts was installed in E/C/k/O with inject kext set to Detect, the ports mapping was incorrect. If instead USBPorts was installed in LE, the ports were correct. Hence the reason for my post to determine if something was amiss with USBPorts installed in Other? The correct inject kexts setting if using Other is Yes. Anyway, I'm good for the time being.

I do have another question. In a previous post (#588) in this thread, you indicate that since SS07 & SS08 do not show up in Hackintool, I wont be able to configure them. These ports are located on the back panel as USB 3.1. When plugging into them, only HS07 and/or HS08 appear. Does this mean that these two will only work as USB2, even if using a USB3 device? Below are the screen shots from last year showing my mapped ports using your guide, as well as what appeared in the beginning with the port limit removal patch. Thank you for any info!

Glad you got the USBPorts.kext working. :thumbup:

Okay, looking at the two screengrabs you've posted, the Hackintool one just shows a restricted port set, but the IORegistryExplorer grab shows all available ports with a port-limit removal patch in place and USBInjectAll.kext. As you know.

Remember with Hackintool to mouse-click the Broom icon on the bottom row and then the one next to it with the Circular Arrows. This is how to clear and refresh the display. Often the old results are cached and don't represent the current state of play unless you do this.

If HS07 and HD08 are blue ports - i.e USB3.1 - then they should have equivalents in the H370 SS** line-up. By all means upload your USBPorts.kext and we can check it over for you.

:)
 
Joined
Jan 16, 2017
Messages
84
Motherboard
Gigabyte H370N Wifi
CPU
i3-8100
Graphics
UHD 630
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Glad you got the USBPorts.kext working. :thumbup:

Okay, looking at the two screengrabs you've posted, the Hackintool one just shows a restricted port set, but the IORegistryExplorer grab shows all available ports with a port-limit removal patch in place and USBInjectAll.kext. As you know.

Remember with Hackintool to mouse-click the Broom icon on the bottom row and then the one next to it with the Circular Arrows. This is how to clear and refresh the display. Often the old results are cached and don't represent the current state of play unless you do this.

If HS07 and HD08 are blue ports - i.e USB3.1 - then they should have equivalents in the H370 SS** line-up. By all means upload your USBPorts.kext and we can check it over for you.

:)
Alright!
The Hackintool screen grab showed the results of my USBPorts.kext (restricted?) mapping. It’s a mini build. Yes, I’m aware of refreshing the Hackintool display. Based on your recent reply, it seems my USB ports mapping isn’t quite right. The two ports in question are indeed blue. That’s why I was quizzing earlier in this thread that I needed SS07 & SS08, but they weren’t showing up in Hackintool to correctly configure them, only HS07 & HS08 appeared. USBPorts.kext zipped attached. In the meantime, I’ll be focused on your updated new beginners guide for further instruction as we proceed.
Thanks again!

Update: I just noticed that my IOReg screen grab (from last year) showing all ports available via the port limit removal patch does not contain SS07 & SS08. Where are they? Might I have done something wrong applying the patch? Screen shot below.
Thanks!
 

Attachments

  • USBPorts.kext.zip
    1.6 KB · Views: 12
  • Port Limit Removal all Ports.png
    Port Limit Removal all Ports.png
    148.2 KB · Views: 14
Last edited:

NorthAmTransAm

Moderator
Joined
Jul 26, 2018
Messages
1,237
Motherboard
Asus Z370-A Prime II
CPU
i9-9900K
Graphics
RX 580
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Alright!
The Hackintool screen grab showed the results of my USBPorts.kext (restricted?) mapping. It’s a mini build. Yes, I’m aware of refreshing the Hackintool display. Based on your recent reply, it seems my USB ports mapping isn’t quite right. The two ports in question are indeed blue. That’s why I was quizzing earlier in this thread that I needed SS07 & SS08, but they weren’t showing up in Hackintool to correctly configure them, only HS07 & HS08 appeared. USBPorts.kext zipped attached. In the meantime, I’ll be focused on your updated new beginners guide for further instruction as we proceed.
Thanks again!

Update: I just noticed that my IOReg screen grab (from last year) showing all ports available via the port limit removal patch does not contain SS07 & SS08. Where are they? Might I have done something wrong applying the patch? Screen shot below.
Thanks!
Quick dummy check. Can you clear your NVRAM next reboot and see if that clears anything up for you?
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
6,585
Motherboard
Gigabyte Z490i Aorus Ultra - OC 0.6.8
CPU
i5-10600K
Graphics
GT710 - 1920x1080
Mac
  1. iMac
  2. Mac mini
Classic Mac
  1. eMac
  2. iBook
Mobile Phone
  1. Android
As @NorthAmTransAm said. Spot on. This is one of those prerequisites between boots when testing - much like the Clear and Refresh of Hackintool.

Looking at the USBports.kext, you are going to need to reconfigure your ports completely, and I would recommend using the New guide. You could also try CorpNewt's USBMap instead if you want. It's a python script that helps out.

If you decide to go with Hackintool and the New Guide, post in the thread and I'll support you.

:)
 
Joined
Oct 12, 2019
Messages
24
Motherboard
Gigabyte Z390 AORUS PRO
CPU
i9-9900k
Graphics
RX580
Thanks for this, didn't think NVRAM was so relevant. Will add it to the "USB Mapping" procedure of mine (yes I'm following the New Guide).
 
Top