CaseySJ
Moderator
- Joined
- Nov 11, 2018
- Messages
- 22,195
- Motherboard
- Asus ProArt Z690-Creator
- CPU
- i7-12700K
- Graphics
- RX 6800 XT
- Mac
- Classic Mac
- Mobile Phone
All,Hi @CaseySJ,
I explored more. I have been able to generate a custom USBmap.kext which only has Info.plist inside it (and not executable code), and used that to enable USB ports. I disabled all SSDT-UIAC-VISION-D-V*.aml. and USBInjectAll.kext. The ports were still working.
Having no extra code (through a kext) is a good thing, it lets OpenCore handles the port maps, since USBInjectAll is no longer maintained, this makes it even better and as dortania mentioned in my above post's quote, this makes it closer to "Real Mac" because Apple also uses similar method for port maps in real Macs.
I'll post more the proper custom USBMap.kext soon, which is very specific to our Vision D board. Dortania recommends having custom SSDTs and Port maps, as this reduces bloat and faster boot times compared to having generic SSDT and stuff, because those have to go through lots of of non-existing things to figure things our at start of the boot.
Current working config, without UIAC.aml's and no USBInjectAll.kext.
View attachment 524614View attachment 524615
Yes, that's correct. You will need either USBInjectAll.kext or a custom USB port map to enable proper working of the USB ports. This is because macOS is very poor in picking USB ports from ACPI tables. Thing is USBInjectAll.kext should be used temporarily while preparing config and booting into macOS for very first time. After that a custom map with limited no. of ports can be created (because macOS has limit of 15 ports limit, counting each hub as single unit). XhciPortLimit quirk is also meant to be temporary and be enabled while generating port map. After that, a new USBMap's plist should be used and both USBInjectAll.kext, XhciPortLimit should be removed. Even SSDT-UIAC-VISION-D-V*.aml ACPI tables shouldn't be needed as the new map can disable ports too.
While it’s perfectly okay to create your own USBPort kext, it is not necessary. The Dortania guidelines are being misinterpreted. USBInjectAll is indeed being maintained by other developers (not the original developer), one of whom is me. There are two versions of USBInjectAll in the EFI folder — one for Mojave and the other for Catalina and up.
There is NOTHING WRONG with USBInjectAll. In fact there are advantages to USBInjectAll that do not exist with USBPort kext. For example, the ability to disable and enable specific USB ports with just a boot argument.
While everyone is always free to make their own choice, I do not want to perpetuate the impression that USBInjectAll somehow needs to be replaced. It does not.