Contribute
Register

OpenCore Guide - USB creation-gather files-kexts-USB - USBMap Guide - says “Restart” - Restart What?

Status
Not open for further replies.
OK, I installed Python 3.11.1 and the process gets lots further in the process but still produces some difficult to understand messages.

Hmm, I'm not sure what the issue is then. I just downloaded and launched OCSysInfo.app as a test and it ran okay on my machine.
 
Solution to my OCSysInfo errors: it would not complete the process of generating the hardware list
1. Installed some command line tools that were missing from my system: (info from apple developers forum)
Run the following command in Terminal:
xcode-select --install

2. I downloaded the previous version of OCSysInfo Source Code v1.0.7 (was using 1.0.8)
- this may or may not have fixed the issue - one of the files in the 1.0.8 folder may have been corrupted -
Open (run) it with Python.
open main.py with Python

(finally I can offer some help to others)
= source of information from apple developers forum =
https://developer.apple.com/forums/thread/711512?answerId=722528022#722528022
= end info =
 
Last edited:
Hmm, I'm not sure what the issue is then. I just downloaded and launched OCSysInfo.app as a test and it ran okay on my machine.
Re: your machine
you have similar hardware (ASUS and a faster i7) - what iMac version are you using for your set-up?
my CPU matches up with iMac 13,1 (my original build) but my GPU is a Radeon RX 580 which matches up closer with an iMac 19,1 (but the 19 has a much faster i7 CPU). My current OS is Catalina 10.15.7 running as iMac 19,1 - but I went with 19,1 only because I got my Config.plist from a moderator on this site (and it had 19,1).
 
Ah, gotcha. I thought that you were advising to skip any sort of USB related kext installation until post install so I was falling back to the old USB mapping guide using USBInjectAll to temporarily enable USB

Ok, I see. To me USBInjectAll means a range of things including the so-named kext and its derivatives, including tailored versions per-build named with "UIAC", the XhciPortLimit quirk, and what USBmap emits as "dummy".

My experience and readings about USB config breaks the chore down as follows:

1. Pre-install ("Gathering Files") phase to get macOS installed:

(a) If using a Comet Lake (10th gen) you need at least Dortania-generic RHUB aml, or follow Dortania guide to make an RHUB yourself. e.g., using SSDTime in Linux or Win or writing and compiling your own.

Then for all builds connect installer drive, keyboard & mouse into a low numbered port according to the system/board docs and hope it works to run the installer. This usually can be made to work to get macOS going.

-or-

(b) Use Windows USBToolBox to make a full map ready for macOS installation.

2. Post-install: If you did 1(a) you will need to make a map from macOS using tool of your choice: Hackintool or CorpNewt USBmap or editing an existing map by hand (which are colloquially known as "UIAC" kexts—these get shared among users of popular builds)

My take is that USBInjectAll.kext (and user-tailored variants named with "UIAC") are traditional ways of making all ports available. These may need to be tailored for your chosen SMBIOS and root hubs.

Corp Newt later scripted the above as USBmap.

Hackintool is similar.

The OpenCore XhciPortLimit Kernel quirk came out alongside USBInjectAll.kext and made it simpler to enable all ports for mapping with Hackintool, as described by the USB Beginners Guide. You use one or the other kext or quirk.

Here's what an older OpenCore doc says about the quirk (not the latest doc):

XhciPortLimit
Type: plist boolean
Failsafe: false
Requirement: 10.11 (not required for older)
Description: Patch various kexts (AppleUSBXHCI.kext, AppleUSBXHCIPCI.kext, IOUSBHostFamily.kext) to remove USB port count limit of 15 ports.
Note: This option should be avoided whenever possible. USB port limit is imposed by the amount of used bits in locationID format and there is no possible way to workaround this without heavy OS modification. The only valid solution is to limit the amount of used ports to 15 (discarding some)...

The word on the street is XhciPortLimit worked from El Capitan thru Catalina, but stopped working with Big Sur. At which point some on the forum began coping by recommending installing Catalina, using it to build a map according USB Beginners Guide, then upgrading to later macOS.

CorpNewt USBmap script supports 1(a) during post-install. It avoids the need for the XhciPortLimit quirk or USBInjectAll by preparing a temporary kext ("dummy" which is a locally tailored USBInjectAll.kext) to enable ports on a root so that they can be tested and mapped. Post-installation adding of "dummy" to OC and rebooting to activate it is what gives rise to the question of "Restart" in this thread title.

When mapping during post-install,
there's a tertiary blob of lore which I am still unclear about: The 26 port maximum configurable by mapping.

I see it as follows (this may be wrong): macOS has an absolute upper limit of 26 ports that can be addressed per root hub (again, USB 2 and USB 3 count separately) so if your kit has more than 26 logical ports, mapping gets sticky. But this doesn't come up in many builds.

By looking at ACPI, a mapping tool under macOS may be able to see more than 26? But regardless, there's no way to address more than 26, and of these the list must be pared down to fit into macOS 15 port active limit so they can be tested by the tool and go into final map. So this is the purpose of whatever way you "inject all": to see as many logical ports as possible (26 max), to detect their type, and make room for what you need under the 15 limit.

If you use Windows USBToolbox, all of this is academic. Windows is not limited during detection, you just make your choice of 15 for the map, put into OpenCore and done.

Whatever way you approach it with OpenCore, I believe the end-game is always to produce a codeless kext that includes the proper SMBIOS and root hub traits with a list of ports (max 26), enumerated agreeably for your build, that restricts active ports to 15, and properly identifies each connector type.

ANYONE WITH MORE DETAILS OR CAN CLARIFY, IT WOULD BE AWESOME TO READ. I have been trying to grok this topic for years and tried to write a USBmap beginners guide, but no matter how many times I think this through, I always end up flummoxed.

(Total aside: A couple years ago, USBToolBox was disregarded by some forum mods due to general fear of Windows malware. I never came across any report of an was ever an actual problem with it.)
 
Last edited:
you have similar hardware (ASUS and a faster i7) - what iMac version are you using for your set-up?

I'm using iMac19,1 per the recommendation in the Dortania Guide for my Coffee Lake CPU. I don't believe that the GPU makes any difference as any supported GPU will work regardless of SMBIOS choice so long as the model selected supports the MacOS version you're trying to install. It's more important to match the CPU chipset feature set as closely as possible for maximum compatibility. That said, if iMac19,1 works for your motherboard and CPU, then there's no reason to muck with it. :)
 
My experience and readings about USB config breaks the chore down as follows:

1. Pre-install ("Gathering Files") phase to get macOS installed:

(a) If using a Comet Lake (10th gen) you need at least Dortania-generic RHUB aml, or follow Dortania guide to make an RHUB yourself. e.g., using SSDTime in Linux or Win or writing and compiling your own.

Then connect installer drive, keyboard & mouse into a low numbered port according to the system/board docs and hope it works to run the installer. This can usually can be made to work to get macOS going.

Ah, I get it now. The RHUB SSDT is the step I missed.

If you use Windows USBToolbox, all of this is academic. Windows is not limited during detection, you just make your choice of 15 for the map, put into OpenCore and done.

I mapped my USB ports post-install using USBMap before USBToolbox was promoted as an officially recommended tool but it's pretty awesome by taking so much of the complexity out of the process!

ANYONE WITH MORE DETAILS OR CAN CLARIFY, IT WOULD BE AWESOME TO READ. I have been trying to grok this topic for years and tried to write a USBmap beginners guide, but no matter how many times I think this through, I always end up flummoxed.

Yeah, it took me several reads of various guides to understand the process well enough to get a working map. The 15-port limit has bitten a couple of folks with my motherboard as one internal header must be disabled so having a proper map is essential. It's always best to roll your own. ;)
 
Status
Not open for further replies.
Back
Top