Jump to content
About Just Joined group Read more... ×
wegface

(GUIDE) 10.11 full speed USB (series 8/9) keeping vanilla SLE

497 posts in this topic

Recommended Posts

Alright, I know I said this was working, but upon a further reboot I realized that - while all the ports under XHC were being recognized, the devices for some reason were actually all being connected to the USB2 bus, not the USB3

 

I'm using the patch through Clover too. I checked the speeds to make sure they were 5Gb/s the first time around and they were. I just checked again and they were fine even after a restart. All routing to SSPx and USB3 speeds.

 

I have a 9 series board (z97, Asus Maximus VII Hero).

Share this post


Link to post
Share on other sites
Advertisement

Test this for some days with some valuable data on a usb drive, then report back :)

 

(edit) I do not mean i expect a fail, but its savvy to check these things before advising others to do it ;)

Share this post


Link to post
Share on other sites

Test this for some days with some valuable data on a usb drive, then report back :)

 

(edit) I do not mean i expect a fail, but its savvy to check these things before advising others to do it ;)

 

Why would people do "testing" on their USB transfers with valuable data? That's horrible advice. 

 

I however did just finish some testing. From my internal 1TB to a external through a USB 3.0 port, I have a NAS with copies of both sets of data so no risk in losing anything. Transferred about 30GB io the external without issue. Any specific way to test?

 

No way in hell I'm doing the transfer testing for every port... :hysterical:

Share this post


Link to post
Share on other sites

Why would people do "testing" on their USB transfers with valuable data? That's horrible advice. 

 

It wasn't advice it was to show my point. 

 

 

No way in hell I'm doing the transfer testing for every port...  :hysterical:

To say something works as expected, you MUST test every port properly.  :lol:

Share this post


Link to post
Share on other sites

Guys, noob question here. I have all ports tested and worked perfectly. I looked into my DSDT and found out that I have EHC1 and EHC2, but all ports are located in XHC already. I have GIGA-H97-Gaming 3 MOBO. Should I remove or rename EHC1 and EHC2 into EH01 and EH02 respectively as @wegface guide? Will it help my system start up faster?

Share this post


Link to post
Share on other sites

The Ultimate Solution

 

As I suspected earlier the 15 ports limit can be removed!!!

 

Did some assembly work and here is the result:

 

In Clover, use kext patch feature, patch AppleUSBXHCIPCI

 

Find                83BD8CFEFFFF10

Replace with  83BD8CFEFFFF16

                        <dict>
                                <key>Comment</key>
                                <string>remove usb limit</string>
                                <key>Find</key>
                                <data>
                                g72M/v//EA==
                                </data>
                                <key>Name</key>
                                <string>AppleUSBXHCIPCI</string>
                                <key>Replace</key>
                                <data>
                                g72M/v//Fg==
                                </data>
                        </dict>

the kext use >=0x10 to set the limit so with 0x10 we have 15 ports available.

Changing to 0x16 will give us 21 ports. I didn't go higher as 21 is the maximum amount for 8/9 series motherboard(8 USB2+6 USB3+1 possible dummy port) afaik but should be OK to set it to 0xFF...

 

 

Thats all. No other change necessary  :lol:

Wait wait , so this is a solution without Edited DSDT and without kext injector?

Thats a correct?

Share this post


Link to post
Share on other sites

Wait wait , so this is a solution without Edited DSDT and without kext injector?

Thats a correct?

IMO, this is a dirty hack, with no thought to any repercussions. Far from an "ultimate solution" until properly tested and understood. 

It would be GREAT if this was the end solution to this issue however. Time will tell, don't blame this guide if your kittens get killed. 

Share this post


Link to post
Share on other sites

any clues as to series 7 and below - i only have 8 USB2 ports and none of them work at all.

The same general techniques (port injector) apply to 6-series/7-series (and probably even earlier).

Share this post


Link to post
Share on other sites

With 10.11 comes an all new USB stack, which makes life for hackintosh somewhat difficult. This guide will show how to fully fix usb 2/3 without touching SLE. Important to note is that only the Intel USB3 Controller ports will work, 3rd party USB3 controllers are not suppoted like the ASMedia or NEC ones.

Tools needed: IOJones and Maciasl. 

http://sourceforge.net/projects/maciasl/  

http://sourceforge.net/projects/iojones/

usbviewer (to achieve mapping under windows)

 

1.First we need a working yosemite install so we can correctly map our USB ports (important). Open IOJones with no (unnecessary for this process) USB devices connected. Connect a USB device and Under EHC1 or XHC1 some green entries will appear. 

attachicon.gifScreenshot 2015-10-02 14.21.45.png

Make a note of the port it added to: like HS01 or SSP1. Remove the device and the entries will turn red. Repeat this process for every USB port on the system. HS = USB 2.0, SSP = USB 3.0. Take a photo of your ports (or draw one) and mark each port to its correct name. For USB 3.0 ports, first connect a USB 2.0 device and then a usb 3.0 to get both port names (USB 3 ports count as two).

You end up with a map like so:

attachicon.gifMVIG_IO.png

2. Now open Maciasl and load your DSDT. Look under XHC1 and EHC1 you need to note the ADR of each port like this:

attachicon.gifScreen Shot 2015-10-01 at 4.38.31 PM.png

For usb 2.0 (HS) one will be - 01 00 00 00 , two will be 02 00 00 00 etc

Usb 3.0 (SSP) they start at 10 so one will be: 10 00 00 00, two will be 11 00 00 00 etc.

 

 

Hi

 

Any help appreciated. I am a relative noob so apologies for stupid questions, still learning!

 

Trying to fix USB 3 on my GA Z87-HD3 for El Capitan and I'm stuck at the first hurdle. As per instructions,I am running in Yosemite. I opened up IO Jones and I plugged in a USB 3 flash drive. It shows up in attached screenshot as "Patriot Memory@14900000" in green. Instructions say "make a note of the port it added to: like HS01..." - How do I figure out which port it added to? Never done this before so again, apologies for such basic question!

post-1391658-0-26353700-1444492947_thumb.png

Share this post


Link to post
Share on other sites

I'm using the patch through Clover too. I checked the speeds to make sure they were 5Gb/s the first time around and they were. I just checked again and they were fine even after a restart. All routing to SSPx and USB3 speeds.

 

I have a 9 series board (z97, Asus Maximus VII Hero).

 

What's the PCI ID for your USB controller?

 

For me, I did need the tiny injector to force-match my USB3 controller to the correct kext

Seems that only 4 Intel XHC IDs are in the original kext, if my google-fu is correct

 

8086 1e31 7 series

8086 8c31 8 series  <---thats mine and that's why I didn't notice the issue.

8086 9c31 mobile 8 series

8086 9cb1 mobile 9 series

 

so for desktop 9 series, 8086:8cb1 is not included. The kext injection in OP's guide takes care of this, so for 9-series, when the Clover mod or DSDT port removal mod is used, kext injection is still necessary to get the Apple XHCI driver loaded, except your kext can be used directly without further change, or maybe DSDT device id injection?

 

Yes, I suppose one could just make themselves an injector with my verbatim Info.plist if they have the same device ID.

I put mine in /S/L/E but I see no reason why it would not work equally well in clover's kexts/10.11 directory

 

As for DSDT injection, I would love to, but I am nowhere near good enough at DSDT work - I can't even get the extracted DSDT for my machine to build in iASL  :rofl:

Share this post


Link to post
Share on other sites

As for DSDT injection, I would love to, but I am nowhere near good enough at DSDT work - I can't even get the extracted DSDT for my machine to build in iASL  :rofl:

There could be garbage in your decompiled DSDT, so it won't compile. Depending on your error it is an easy fix.

 

IMHO the DSDT way is still the easiest.

Share this post


Link to post
Share on other sites

There could be garbage in your decompiled DSDT, so it won't compile. Depending on your error it is an easy fix.

 

IMHO the DSDT way is still the easiest.

 

Did I hear you say "would love to help you out buddy"? :-)

Share this post


Link to post
Share on other sites

Did I hear you say "would love to help you out buddy"? :-)

 

Yes, just send me your DSDT in a PM attached and I am happy to look at it. I don't want to go off topic in this thread.

Share this post


Link to post
Share on other sites

Yes, just send me your DSDT in a PM attached and I am happy to look at it. I don't want to go off topic in this thread.

 

Fair enough - sent you a PM :)

 

As for the DSDT injection itself (rather than fixing up mine), is that documented somewhere? Otherwise, this thread might be a good place to sketch out how to do that.

I would definitely love to get rid of the injector kext.

 

With that said, for those who actually do not like the clover patch method long-term, I am thinking that one could use it to do the full port scan, and then generate an injector that way. Then you wouldn't need Windows nor Yosemite.

I have a little tool running locally that enumerates all XHC ports and produces their base64 encoded port ID. This would be trivial to turn into a "generate an injector for all ports", and then people would just remove the ports they don't want/need.

With more IOKit magic, one could actually have the tool listen to devices being inserted and ejected from the USB bus, and actually have a fully automated injector generator, using this clover patch just to bootstrap things.

Share this post


Link to post
Share on other sites

What's the PCI ID for your USB controller?

 

For me, I did need the tiny injector to force-match my USB3 controller to the correct kext

 

This is what it shows.

USB 2.0 Bus:

  Host Controller Driver:	AppleUSBEHCIPCI
  PCI Device ID:	0x8ca6 
  PCI Revision ID:	0x0000 
  PCI Vendor ID:	0x8086

USB 3.0 Bus:

  Host Controller Driver:	AppleUSBXHCIPCI
  PCI Device ID:	0x8cb1 
  PCI Revision ID:	0x0000 
  PCI Vendor ID:	0x8086 

Hi

Any help appreciated. I am a relative noob so apologies for stupid questions, still learning!

Recommend reading from about pg 6, you may not need to do it that way.

A lot of revelation has happened since the initial guide.

Share this post


Link to post
Share on other sites

Everyone else's mileage may vary, and the issue most likely exists between keyboard and chair, but the DSDT patching seemed to nuke working sleep for me.

 

Instead, kext injection allows proper sleep.

 

Again, most likely user error as this was my first time working on DSDTs, but wanted to report the data point in case anyone else finds it useful.

Share this post


Link to post
Share on other sites

This is what it shows.

USB 2.0 Bus:

  Host Controller Driver:	AppleUSBEHCIPCI
  PCI Device ID:	0x8ca6 
  PCI Revision ID:	0x0000 
  PCI Vendor ID:	0x8086

USB 3.0 Bus:

  Host Controller Driver:	AppleUSBXHCIPCI
  PCI Device ID:	0x8cb1 
  PCI Revision ID:	0x0000 
  PCI Vendor ID:	0x8086 

Recommend reading from about pg 6, you may not need to do it that way.

A lot of revelation has happened since the initial guide.

May not, but still worth to read the whole guide carefully, skipping things does not help.

Personally i'm not seeing this "revelation" of which you speak, but glad it works well for you. 

Share this post


Link to post
Share on other sites

May not, but still worth to read the whole guide carefully, skipping things does not help.

Personally i'm not seeing this "revelation" of which you speak, but glad it works well for you. 

 

His question was based specifically on finding the ports and he sure does not have to do it the same way you did.

 

Also he probably should read the whole thread like I did before I jumped in. Different ideas, options, new understandings started showing up around page 6, trying to save him some time.

 

The way your guide described how to get the port addresses in Yosemite does not work on every setup.

I altered your way to be able to find the ports in Yosemite.

 

Now we can just use Windows if we're dual booting with it. (Arix98)

Yes you added it to your guide but at the very bottom and not in the section where it is relevant.

 

The Clover Kext patch can also be used as a method to get the ports. Also as a method for some to just work without anything else. (Arix98)

This can be done in El Cap. No need for another OS to find the port addresses. This is huge as not everyone has another OS.

 

Personally I see those as some revelations that should be read before attempting to complete your guide. I'm happy my setup works too.

Share this post


Link to post
Share on other sites

Can anyone help me use colver's kext patch to replace 0x8c318086 with 0x8cb18086. Tried with data and plist patching, but i guess i missed something. Dummy kext works fine for the device injection.

 

TIA

Share this post


Link to post
Share on other sites

His question was based specifically on finding the ports and he sure does not have to do it the same way you did.

 

Also he probably should read the whole thread like I did before I jumped in. Different ideas, options, new understandings started showing up around page 6, trying to save him some time.

 

The way your guide described how to get the port addresses in Yosemite does not work on every setup.

I altered your way to be able to find the ports in Yosemite.

 

Now we can just use Windows if we're dual booting with it. (Arix98)

Yes you added it to your guide but at the very bottom and not in the section where it is relevant.

 

The Clover Kext patch can also be used as a method to get the ports. Also as a method for some to just work without anything else. (Arix98)

This can be done in El Cap. No need for another OS to find the port addresses. This is huge as not everyone has another OS.

 

Personally I see those as some revelations that should be read before attempting to complete your guide. I'm happy my setup works too.

The windows app is in the first lines of the guide. As rehabman, me and also Pjalm have said, the results of bypassing the 15 port limit is unknown, and i wont add that to the guide at all, until it is understood more.

Not sure why you are being so defensive.

Share this post


Link to post
Share on other sites

The windows app is in the first lines of the guide. As rehabman, me and also Pjalm have said, the results of bypassing the 15 port limit is unknown, and i wont add that to the guide at all, until it is understood more.

Not sure why you are being so defensive.

 

No explaination of how the windows app replaces your method and how to use it and how it correlates. After many people saying that your method for finding the ports in Yosemite doesn't work including me, you have not addressed that in the guide.

 

Rehabman already agreed that the ARIX98 method was a great way to get the port addresses if your already in El Capitan. I saw no such comment from PJALM about bypassing the limit and it's unknowns.

 

Not sure why your being so defensive either. First it was a sarcastic response to test the new method with valuable data. Now it's there are no revelations besides just the Windows app and that's just not true. Someone asks a question about your method but instead of helping him your attacking me for basically tell him that there are some other options and he should read them.

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

Announcements

×