UtterDisbelief
Moderator
- Joined
- Feb 13, 2012
- Messages
- 9,663
- Motherboard
- Gigabyte B760 Gaming X AX
- CPU
- i5-14600K
- Graphics
- RX 560
- Mac
- Classic Mac
- Mobile Phone
Hi @UtterDisbelief thank you for your guide, I just discovered it... Have been using USBInjectAll with SSDT-UIAC on my NUC8 and wanted to ask a couple of setup questions, if you know (or anyone else of course, is welcome).
1. You mention on your first post:
The physical port is the same, but how it is enumerated is different depending on what type of device is plugged-in - USB2.0 is an HS** port and USB3.0/3.1 is an SS** port. So as you can see, a single, physical USB3 port counts as 2x ports towards our 15-limit because either type of device can be plugged in to it.
I agree on that of course, but I still wanted to ask you if, for the sake of being 100% accurate on later computers without EHCI controller but only XHCI, we should (or not) mark all HS0x ports as USB2 instead of USB3 controller type? Indeed HS probably stands for "High Speed" but as USB 2.0 devices are mapped only to HS0x ports and USB 3.0 devices show as SS0x ports (in IOReg) is it better to tell the system that HS0x is eventually a USB2 type controller? (on Hackintool, prior to exporting) Any ideas why we should (not)? Just to learn...
2. And speaking of learning (part of Hackintoshing joy) it was my prior understanding to reading your guide that USBPorts.kext (being a binary-less kext) was replacing SSDT-UIAC.aml only; didn't realise we don't need USBInjectAll.kext anymore! Is this valid for Mojave or only Catalina and forward? And do you understand the mechanics on how its special Info.plist manages to "force" USB port names etc. to the system without the need of a binary kext such as USBInjectAll.kext? It's very interesting how this is achieved, to my opinion!
Thank you all for your input!
Hi there.
Okay...
1) On a chipset with only an XHCI controller a USB2 port is described by its UsbConnector type. A black, USB2-only port has fewer electrical contacts in it than a blue or red USB2/USB3 port. So even though we are configuring an HS** USB2 port, if it is on a blue USB3 socket we still use UsbConnector type "3". So to answer your question: no.
2) True, with a USBPorts.kext you do not need either USBInjectAll.kext or SSDT-UIAC.aml. You may still need SSDT-EC.aml though.
Yes, I do understand. Even though USBPorts is an "empty" kext container it is still loaded/injected in the same way. As it has no core executable the surprising bonus is that it does not show up in kextstat or the logs, and doesn't get blocked by Catalina. Yet.
USBPorts.kext works for all macOS versions though I have only tested back to Sierra myself.
Hope that helps.