Contribute
Register

The New Beginner's Guide to USB Port Configuration

Attachments

  • EFI.zip
    2.5 MB · Views: 54
A general question - I'm working through this and have what seems to me to be an odd situation - I've only now had a gigabyte z390m board, just upgraded to Big Sur, start having usb problems (all main ports worked before).

Now what I have is: all the ports I had working before are working (I think, confirming) except that none of them will work with USB2 devices, only USB3.

(The exception is a cheap PCI card that has sata and usb2 ports - fortunately or I wouldn't be able to use the computer at all.)

This is opencore 0.7.4 and big sur, ports were working as expected with Catalina and 074.
 
'As expected' when using what exactly?

From your statement 'I'm working through this....' I assume you are using the OC Kernel > Quirks > XhciPortLimit entry in your config.plist.

The XhciPortLimit entry has been problematic since Big Sur 11.3+ IIRC. So if you are running a newer version of Big Sur you may have to do the following.

This USB issue required people to downgrade to Mojave/Catalina or an early version of Big Sur so they could use the XhciPortLimit quirk and then create a working USB configuration following this guide.

If you still have your Catalina drive/installation working then follow the guide from your Catalina system. The resultant USBPorts.kext you create will work in macOS Big Sur.
 
'As expected' when using what exactly?

From your statement 'I'm working through this....' I assume you are using the OC Kernel > Quirks > XhciPortLimit entry in your config.plist.

"As expected" meaning that before this, all the ports worked in USB2 &3 without any of this.

"Working through this"- sorry wasn't clear, meaning I was / am reading through the instructions at top of this thread and in parallel doing a wee bit of the usb port testing. Yes, in initial stages, using the xhci portlimit quirk.

So do I understand you correctly that in most recent Big Sur, it really won't be possible to sort out the USB ports mapping, and I should plan on having to do it in Catalina (and then using the resulting .kext in Big Sur)? If I attempt to do this in Big Sur, am I going to get nonsense or crashes or just not get there?
 
Yes, you will need to undertake the USB configuration in Catalina or an early version of Big Sur. As the XhciPortLimit quirk stopped working so full discovery of the USB ports is not possible in the latest versions of Big Sur.
 
"As expected" meaning that before this, all the ports worked in USB2 &3 without any of this.

"Working through this"- sorry wasn't clear, meaning I was / am reading through the instructions at top of this thread and in parallel doing a wee bit of the usb port testing. Yes, in initial stages, using the xhci portlimit quirk.
Okay, was successful in using this guide to fix USB ports issue on my Gigabyte Z390 M (non-gaming). A quick summary in case this is helpful, and thanks to the authors/contributors of this guide - it really is not as hard as it looks.

-I did the USB port configuration in Big Sur and got there just following the guide instructions here. Opencore 0.7.4.
-All my USB ports were working in Catalina (and previous os's). Upgrading to Big Sur for some reason made all the ports only work on USB3 - meaning I couldn't even run a keyboard, at least at first, except through a PCI card (cheap and was in the case when I built this - SATA + 2 USB2 ports).
-Short form - I followed the instructions - mapped out on paper which physical ports I had, and which ones worked with what, using two USB flash sticks (one of each).
-I did switch things up a bit by turning on and off the xhci portlimit quirk, and installing the usbforceinstall kext (whatever the correct name for that is) - modifying the config.plist and rebooting. Hackintool would reliably light up when a usb device was plugged in and identified.
-I did this to make sure I knew which ports would do USB2/3/both, and each reboot meant some differences in what the ports would recognise - in one case, only USB3 functioning, in another, only USB2 (the usb2 ports on PCI card worked in USB2 regardless).
-Being a bit slow and methodical, I did eventually get to the point where I was quite sure the USB ports I planned to use/needed physically were correctly identified. Deleted everything else in Hackintool to get below 15 ports and exported the usb ports kext, modified the config.plist to match, rebooted, and now everything works the way it should. (Xhciportlimit now off)

Apart from the intimidating aspect at first, it was all quite straightforward and more simple than it seemed to me at first (like much in hackintoshing). Difficulty level - low if you're comfortable with config.plist editing and updating using whatever tool you're comfortable with (I used propertree) and get the basics of kexts and how to put them in the right folder, medium if you haven't quite grasped config.plist in opencore. (No recent experience with clover)
 
i wanted to write this down somewhere as I haven't seen it anywhere else.

I've been trying to fix native sleep on my machine for a while. I decided to go down the rabbit hole today where I saw in the Dortania OC guide:
  • Note: Some USB devices that do not have proper drivers in macOS can unfortunately result in sleep issues. For example, Corsair water coolers with USB addressable control can prevent the machine from sleeping correctly. For these situations, we recommend users disconnect these troublesome devices when debugging sleep issues.
I disregarded this because I am a fool and never considered one of my devices would be my wake culprit.

pmset was not helpful. All I got was "DarkWake from Normal Sleep [CDN] : due to XDCI/ Using AC (Charge:0%) 45 secs" which was pointing me towards my GPU...

After confirming CPU PM and USB were all correctly mapped and loaded, I tried unplugging some things.

It was my Windows Mixed Reality HMD. Hololens sensors show up in MacOS so I figured it would be fine, but it turns out they block sleep and cause instant wakes. Unplugging just the USB connection works fine, so I'm going to leave it for a bit to test. My best bet is probably disabling this port completely if I want to leave it plugged in for use on Windows.

Tags for search: HMD WMR Windows Mixed Reality VR Headset
 
Last edited:
Hi guys, I have LG Gram 17 with Big Sur 11.6 I generated and installed USBPorts.kext and everything seems working. Sleep, waking up, all usb ports etc. I can transfer large amount of data to/from usb flash drives. However, I've recently bought nvme-to-usb3.0 dongle and installed 1TB Intel nvme drive there. With this dongle I have problems. During data transfer it suddenly disconnects. I'm guessing the power provided by usb port is not enough for it to work properly. In system info for this drive I see

Code:
  Current Available (mA):    900
  Current Required (mA):    896
  Extra Operating Current (mA):    0

While for iphone, for example, I see

Code:
  Current Available (mA):    500
  Current Required (mA):    500
  Extra Operating Current (mA):    1504
  Sleep current (mA):    2100

The problem with this dongle occurs only in macos. In linux I can transfer data to and from it without any problems.
I attached my ioreg and EFI/OC files. Any help would be very much appreciated
 

Attachments

  • OC.zip
    27.9 MB · Views: 49
  • MacBook Pro.ioreg.zip
    967.7 KB · Views: 30
Your SSDT-EC-USBX.aml looks fine, so macOS should be providing the correct power to your XHC controller USB ports.

I assume you have tried all three external Type-A USB3 ports on your laptop, do you see the same result with each port?

Have you tried using a Type-c adapter and the Type-C port as this is not connected to the XHC controller that the Type-A and internal USB ports use. It may be able to provide more power than the Type-A ports. I think you have an Ethernet adapter connected to the Type-c port.

Does the NVME USB3 adapter have the option for adding external power, or can it use a cable with dual USB connectors, so it can get sufficient power from the system, i.e from two ports simultaneously?
 
Back
Top