Contribute
Register

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

Status
Not open for further replies.
Joined
Mar 18, 2013
Messages
27
Motherboard
ASUS P8Z77-V Pro
CPU
i7-3770K
Graphics
RX 580
Mac
  1. iMac
The OpenCore Install Guide, under USB Creation suggests USBToolBox - BUT then the toolbox info says when working from MacOS to use USBMap instead. (USBToolBox is for use on Windows)
USBMap has a nice Quick STart guide along with the download.
After running step 1. Discover Ports and 2. Create dummy USBMap.kext, it says to add the USBMap.kext dummy injector to your Kexts folder and Config.plist.
I added it to the Kexts folder, but...
My (mounted) EFI for the Install USB I’m creating has no Config.plist, so, what is it talking about?

Also, step 4 says Reboot. (Also step 7)
What does it want me to Reboot?
Does it want me to add the dummy kext to my running OS EFI folder? - (and not the EFI on the install USB disk) and then restart the Mac I’m using to edit the EFI? (I'm in the middle of following the Opencore Install guide to create my install USB)
-OR- are these REBOOT steps supposed to be used AFTER I install Big Sur ?

=== reference from USBMap Quick Start ===
USB MAP
Quick Start
1. Make sure you've run D. Discover Ports at least once from the main menu of USBMap.command so it knows what USB controllers you have
2. Choose K. Create Dummy USBMap.kext via the main menu of USBMap.command
3. Add the USBMap.kext dummy injector to your OC -> Kexts folder and config.plist -> Kernel -> Add
4. Reboot
5. Go into USBMap's D. Discover Ports and plug a USB 2 and USB 3 device into every port - letting the script refresh between each plug
6. Use USBMapInjectorEdit.command to toggle off all non-essential seen ports (any of the first 15 that aren't a keyboard/mouse/etc which are needed for basic functionality)
7. Reboot
8. Go into USBMap's D. Discover Ports and plug a USB 2 and USB 3 device into every port - letting the script refresh between each plug
9. Go into the P. Edit & Create USBMap.kext menu and change the types to match the physical port types and toggle which ports (up to 15) you want to preserve
10. Build the final USBMap.kext and replace the dummy injector in your OC -> Kexts folder
The dummy injector + USBMapInjectorEdit steps are to allow you to map using a "sliding window" of sorts. Since you can only see 15 port personalities at one time, you need to map what's visible, then omit them to make room for the next sweep - then map again
FAQ
• Intel Bluetooth Doesn't Show In Discovery
◦ Due to the way Intel Bluetooth populates, it does not show in ioreg the same way other USB devices do. You can still find its address in System Information -> USB, then clicking on the bt device and taking note of its Location ID

=== end Reference ===
 
More Info:
===from toolbox download===

From macOS​

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.
===end===
and the OS Guide also suggests the Toolbox Kext (points to download).
so What is recommended?
the macOS.zip tool AND the Toolbox-Kext? -or- the USBMap tool?

(I think using the opencore installer is a little above my ability level)
 
I added it to the Kexts folder, but...
My (mounted) EFI for the Install USB I’m creating has no Config.plist, so, what is it talking about?

Also, step 4 says Reboot. (Also step 7)
What does it want me to Reboot?

I think you're confusing the OpenCore install guide instructions with the USBToolBox instructions. The latter assumes that you already have a working OpenCore installation and is instructing you to place the kext in the working EFI folder. In order for OpenCore to see the new kext, the config.plist needs to be updated to identify the presence of the kext. You then need to reboot for OpenCore to load the kext.

In your case, you don't have a working EFI folder yet because you're still in the "Gathering files" portion of the OpenCore install guide. Once USBToolBox produces the kext, you can return to the OpenCore guide and it will help you to create the config.plist file and tell you where to put the various kexts and SSDT files in the EFI folder. I think things will make more sense as you continue through the OpenCore guide.

Good luck!
 
My (mounted) EFI for the Install USB I’m creating has no Config.plist, so, what is it talking about?

USBmap depends on a bootable macOS.

Whats the most common pathos of a new OC build that has no USB map provision at all? The USB drive with installer disconnects, or runs slowish because only its USB 2 personality works?

If you use a lower-numbered port (per the way the board guide counts) for install then you get macOS up, then proceed to USBmap.

With USBmap you generate dummy (It's version of USB Inject All) and its version of RHUB ACPI, place these in OC config, then restart computer. Now you can return to USBmap script to build the map by plugging in devices and marking them.

USBmap refers back to its own output in Results/ plus maybe some other file to keep going after the restart.

It has a companion script that lets you edit a USBmap.kext directly from anywhere to fix up details after the fact. (It's just editing Info.plist internally).

If you have a problem of not being able to see ports in the list, use the companion script to edit dummy disable lower range ports so that higher range can be seen during mapping. IOW cast out lower range ports you don't need to make way for higher, while keeping in mind that USB 2 and USB 3 personality appear as separate ports even though they are same connector, and USB 3 are typically up in higher range.

Also note that for a board with multiple root hubs (typically the back panel is all on one, but headers may lead to another hub) each has its own limit of 15. And that if a port internally connects to a hub, e.g., bluetooth, ports off the bub don't tally against the 15 root hub limit.
 
If you use a lower-numbered port (per the way the board guide counts) for install then you get macOS up, then proceed to USBmap.

Don't you need Rehabman's USBInjectAll.kext to make this work?
 
No. The dummy it makes to start takes the place of USBInjectAll.kext.

Making Dumny scopes out the root hubs and selects an SMBIOS for the map, populating the map with the full 26 ports per root hub that can be addressed in macOS. From there you can find ports in the lower 15 and determine, if needed, what lower range ports you can live without. Update dummy to disable lower ports bringing needed higher range ports into view, and complete the map details with types, etc.

You get a root hub reset ACPI as a side effect of the process.
 
Last edited:
I think you're confusing the OpenCore install guide instructions with the USBToolBox instructions. The latter assumes that you already have a working OpenCore installation and is instructing you to place the kext in the working EFI folder. In order for OpenCore to see the new kext, the config.plist needs to be updated to identify the presence of the kext. You then need to reboot for OpenCore to load the kext.

In your case, you don't have a working EFI folder yet because you're still in the "Gathering files" portion of the OpenCore install guide. Once USBToolBox produces the kext, you can return to the OpenCore guide and it will help you to create the config.plist file and tell you where to put the various kexts and SSDT files in the EFI folder. I think things will make more sense as you continue through the OpenCore guide.

Good luck!
right, apparently this is a "Post Install" procedure. - I'm supposed to make a USB map after install.

However, I need some help with OCSysInfo. it produces an error.

===error msg.===
Last login: Fri Feb 3 21:27:10 on ttys001
michaelpxx@iMac ~ % cd '/Applications/OCSysInfo-1.0.8/' && '/usr/local/bin/python3' '/Applications/OCSysInfo-1.0.8/main.py' && echo Exit status: $? && exit 1
Traceback (most recent call last):
File "/Applications/OCSysInfo-1.0.8/main.py", line 11, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
michaelpxx@iMac OCSysInfo-1.0.8 %


===end msg.===

any advice?
 
No. The dummy it makes to start takes the place of USBInjectAll.kext.

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:

 
However, I need some help with OCSysInfo. it produces an error.

It appears that OCSysInfo relies on Python 3.9 or greater, which I don't believe is pre-installed on MacOS. You can try installing the latest version from the Python website:

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

Edit: A pip command in the code was also causing an error. I had to update the pip code too - it's part of python.

===message===

michaelxxx@iMac OCSysInfo % python3 main.py
Traceback (most recent call last):
File "/Applications/OCSysInfo/main.py", line 13, in <module>
from src.info import get_latest_version, format_text, AppInfo, color_text, requests_timeout, useragent_header
ImportError: cannot import name 'get_latest_version' from 'src.info' (/Applications/OCSysInfo/src/info.py)
michaelxxx@iMac OCSysInfo %
 
Last edited:
Status
Not open for further replies.
Back
Top