Contribute
Register

USB 3.0 fix for Asus Z97I-Plus on El Capitan 10.11.1

Status
Not open for further replies.
Joined
Jul 16, 2011
Messages
81
Motherboard
Asus Z97I-Plus
CPU
i7-4790K
Graphics
Zotac GTX 780 3GB @ Dell U2711
Mac
  1. MacBook Air
  2. Mac mini
Classic Mac
  1. 0
Mobile Phone
  1. iOS
I'm posting this since I had several issues with my build and USB 3.0 after updating to El Capitan. I tried to google especially for my mainboard, because I didn't face the usual problems described by other users. Moreover, most tutorials referred to editing the DSDT and stuff, but with this board and many other UEFI capable systems, you don't have a DSDT file to modify.
So all in all: Back then didn't find anything, hopefully this'll help other guys with the same MB.


When I updated to El Capitan everything worked fine, so I didn't notice the USB issue at first. My only USB 3.0 device was my external HDD which I plugged out during the whole update process, since I didn't want to accidentally crash the backups I stored there.
When I tried to use the HDD after finishing all the updates and cosmetic maintenance (updating Clover, searching for the newest FakeSMC Plugins etc.) it wasn't recognized at all. It didn’t show up in Finder, Disk Utility, even the System Utility didn’t show the according USB device in the tree. It worked however when plugged into a USB2.0 only port. Other USB 2.0 devices were also working when plugged into a USB3.0 port.


I read a few tutorials on how to fix the issue and fried a few of RehabMan’s injector kexts but even with the USBInjectAll.kext it didn’t work properly. During this experimentation I noticed that one of my USB 3.0 flash drives was actually recognized with full speed when plugged into the upper front USB 3.0 port.

As I dug deeper into this topic I found out that there’s apparently a limit of USB ports set to 15. I didn’t care about this at first because, eh, no way that there are more than 15 ports in this Mini-ITX machine. After taking a look at ioreg or IORegistryExplorer, it gave me this:

Screenshot 2015-11-30 18.00.15.png


What I didn’t know: a USB 3.0 port uses 2 slots of this 15-limit, after raising the limit via the Clover config.plist (be sure that there’s NO pound # at the beginning of <string>):



Code:
<key>KextsToPatch</key>
    <array>
        <dict>
            <key>Comment</key>
            <string>change 15 port limit to 20 in XHCI kext</string>
            <key>Find</key>
            <data>g72M/v//EA==</data>
            <key>Name</key>
            <string>AppleUSBXHCIPCI</string>
            <key>Replace</key>
            <data>g72M/v//FQ==</data>
        </dict>
    </array>

ioreg started to look like this:


Screenshot 2015-11-30 18.12.19.png


And now also every port worked. I still wanted to get rid of the USBInjectAll.kext since it’s not a nice and permanent solution. I tried to figure out which of these entries were actually used and started to plug a flash drive around, writing down the information from ioreg:



Code:
Front
    Upper    HS01 SSP1
    Lower    HS02 SSP2


Back
    LAN       
        Upper    HS03 SSP3
        Lower    HS04 SSP4
    PS2
        Upper    HS09 SSP5
        Lower    HS10 SSP6
    4-Stack
        Upper    HS13
        Mid-up    HS14
        Mid-low    HS05
        Lower    HS06
(here’s a photo of the MB's back panel: http://www.asus.com/Motherboards/Z97IPLUS/gallery/)


When I tried to build an own injector kext and all that stuff I also coincidentally found out that there’s a much much simpler solution to all of that: don’t use any injector kext at all. Seriously: The only issue was the limit of 15 devices. After adding the patch to config.plist it worked with nothing more than Apple’s default kexts.
 
Moreover, most tutorials referred to editing the DSDT and stuff, but with this board and many other UEFI capable systems, you don't have a DSDT file to modify.

Incorrect. All computers have DSDT.

I still wanted to get rid of the USBInjectAll.kext since it’s not a nice and permanent solution.

Incorrect. It is actually the port limit patch that is not a permanent solution.

Complete details and recommendations in my guide...

http://www.tonymacx86.com/el-capitan-laptop-support/173616-guide-10-11-usb-changes-solutions.html
 
When I tried to build an own injector kext and all that stuff I also coincidentally found out that there’s a much much simpler solution to all of that: don’t use any injector kext at all. Seriously: The only issue was the limit of 15 devices. After adding the patch to config.plist it worked with nothing more than Apple’s default kexts.

Could you please explain what patch did you use? Ive tried XHCI SSDT patch, FakePCIID kexts, EHC renaming, etc in all possible configurations, but never managed to make usb3 work on 10.11.1. Usually im ending up with all ports working but in USB2-only mode, USB3 devices are not detected at all (even in USB2 mode).

Kind regards,
Michal
 
Could you please explain what patch did you use? Ive tried XHCI SSDT patch, FakePCIID kexts, EHC renaming, etc in all possible configurations, but never managed to make usb3 work on 10.11.1. Usually im ending up with all ports working but in USB2-only mode, USB3 devices are not detected at all (even in USB2 mode).

Please list your specific motherboard model, CPU model, and GPU model in the system configuration area to the left and/or your signature. It's hard to give good advice without having that on hand on every post.

If you are patient and methodical, you can get USB working.

The first thing to try on a 7/8/9 board is FakePCIID.kext and FakePCIID_XHCIMux.kext (put them in your Clover kext directory/directories, and get rid of any other USB fix attempts for the moment). If you do that, you should not see HS** entries under XHC in IORegistryExplorer. For some SMBIOS system definitions there will still be problems, but e.g. for MacPro3,1 this should normally fix everything. If this doesn't work for you, post a screen shot of XHC in IORegistryExplorer like the post above and note your SMBIOS system definition.

There are links to the kexts in question here: http://www.tonymacx86.com/el-capitan-desktop-support/179056-usb-fixes.html#post1152921

And much more detail at RehabMan's post that he linked to above.
 
Please list your specific motherboard model, CPU model, and GPU model in the system configuration area to the left and/or your signature. It's hard to give good advice without having that on hand on every post.
Fixed.
Before i'll go back to FakePCIID kexts i wanted to follow Seim's advice.
I found and applied this kext patch (no other usb kexts, clover options, fixes, patches):
Find 83BD8CFEFFFF10
Replace with 83BD8CFEFFFF16
Unfortunately even this doesnt work. Now System Information lists all my USB2 devices under USB3 (even if those are plugged into USB2 ports), but still no usb3 devices anywhere.
 
Unfortunately even this doesnt work. Now System Information lists all my USB2 devices under USB3 (even if those are plugged into USB2 ports),

As should be expected. 10.11 shows under "USB3" if the device is on XHC. XHC includes both USB2 and USB3 support.

but still no usb3 devices anywhere.

Post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.
 
Here's my ioreg with port limit patch only:
https://www.dropbox.com/s/xsfm1zwwe3vzvga/portlimitpatch.ioreg?dl=0
Shows all devices under USB3, discovers usb3 drive in usb2 mode, doesnt discover usb3 hub with other devices connected.

Here's vanilla usb without any patches, kexts, etc
https://www.dropbox.com/s/6tyto23l9s49c8y/vanillausb.ioreg?dl=0

And here's ioreq with FakePCIID and FakePCIID_XHCIM installed (without any other patches):
https://www.dropbox.com/s/qrxdvf8728e5tf7/fakepciid.ioreg?dl=0

PS. SMBios is MacPro5,1
 
Here's my ioreg with port limit patch only:
https://www.dropbox.com/s/xsfm1zwwe3vzvga/portlimitpatch.ioreg?dl=0
Shows all devices under USB3, discovers usb3 drive in usb2 mode, doesnt discover usb3 hub with other devices connected.

Which device is supposed to be USB3. You should try multiple USB3 devices just incase you have a device specific issue.

Also, what are your USB settings in BIOS?

Here's vanilla usb without any patches, kexts, etc
https://www.dropbox.com/s/6tyto23l9s49c8y/vanillausb.ioreg?dl=0

Note SSPx is truncated to just SSP1, as should be expected. Only one USB3 port can be expected to work as USB3.

And here's ioreq with FakePCIID and FakePCIID_XHCIM installed (without any other patches):
https://www.dropbox.com/s/qrxdvf8728e5tf7/fakepciid.ioreg?dl=0

All USB2 devices moved to EHCI (from XHCI) as expected.
 
Which device is supposed to be USB3. You should try multiple USB3 devices just incase you have a device specific issue.
At the moment my configuration looks like:
-USB3 hub (build-in in Dell monitor), with USB2 webcam and USB2 Dell soundbar plugged in. Non of these is discovered at all, but everything worked fine on 10.10.x.
-USB3 external drive, with FakePCIID max speed 480mb/s
-ive just found another USB3 hub - this one is detected with FakePCIID as "USB 2.0 hub"

Also, what are your USB settings in BIOS?
XHCI: smart-auto
EHCI hand-off: was disabled, just changed to enabled but no difference


All USB2 devices moved to EHCI (from XHCI) as expected.
So how should i proceed?
 
At the moment my configuration looks like:
-USB3 hub (build-in in Dell monitor), with USB2 webcam and USB2 Dell soundbar plugged in. Non of these is discovered at all, but everything worked fine on 10.10.x.

"not discovered" or "working as USB2". Big difference between the two.

-USB3 external drive, with FakePCIID max speed 480mb/s
-ive just found another USB3 hub - this one is detected with FakePCIID as "USB 2.0 hub"


XHCI: smart-auto
EHCI hand-off: was disabled, just changed to enabled but no difference



So how should i proceed?

Try with _OSI->XOSI patch + associated SSDT.
 
Status
Not open for further replies.
Back
Top