Jump to content

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


wegface
497 posts in this topic

Recommended Posts

Nice to know. Then I must be doing something else wrong since I don't see any changes then.

You're looking for "port-count" and "ports" under EH01/EH02/XHC (not the IOPCIDevice, but the one just below it).

 

Note: You can use USBInjectAll.kext to install all ports for each EH01/EH02/XHC.

 

https://github.com/RehabMan/OS-X-USB-Inject-All

 

From your findings, you can customize/create your own injector that matches the ports actually being used.

Link to comment
Share on other sites

SICK! Awesome, awesome find and great work man. I just tested.

attachicon.gifScreen Shot 2015-10-09 at 7.13.14 PM.png

All ports found and mapped properly. No DSDT. Just your Kext patch added to my config.

Makes all the work I previously did look stupid :hysterical:

 

Edit: This method my boot time is what it should be from Clover. It hangs a bit when editing the DSDT. A bunch of reboots some test transfers on a couple ports and all is well.

 

 

So you still believe removing the ports from DSDT to be the better way? I noticed my OSX boots much faster this way, I'm suspecting OSX is figuring out the missing ports and reassigning may cause some stalling on boot?

only working methode till now!

 

I think about still making a working injector but this works perfectly

Link to comment
Share on other sites

hi there i don't know is this a problem but better to ask from rehabman :) :-

i have 4 x usb 3.0 ports in my laptop(only 4 ports-intel) and 

   # if i connect usb 2.0 device to my laptop>> it shows in usb 3 hub( is that mean fault with my injector created) 

   # no problems with usb 3.0 devices so far

thanks  :)

Link to comment
Share on other sites

 # if i connect usb 2.0 device to my laptop>> it shows in usb 3 hub( is that mean fault with my injector created)

Normal. It is because that USB2 is connected to the XHCI controller.

Link to comment
Share on other sites

I'll try one last time...

 

If I _don't_ see any ports labeled "HS" or "SSP" with IOJones on my Yosemite Hackintosh as the initial post on this thread says I should, what should my next step be?

That's normal for 10.10 (in IOService plane). This thread is for 10.11.

  • Like 1
Link to comment
Share on other sites

Is anyone else experiencing a slight delay (mine is consistently 10 seconds or so) before USB 2 starts working? I notice that they work at the clover boot loader screen, turn off during boot, and begin functioning again 10 seconds after the login screen appears. This issue is only on USB 2 as the USB 3 ports function properly.

 

I've used PJALM's DSDT patches only to get USB (2 and 3) working for me on iMac 13,2 and everything else seems ok. It's really my only issue right now as sleep works too.

Link to comment
Share on other sites

That's normal for 10.10 (in IOService plane). This thread is for 10.11.

 

But according to the very first post on this thread, I'm s'posed to run IOJones on my Yosemite install to enumerate the USB ports. And according to that same post:

 

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. 

 

Thus my confusion. You see?

Link to comment
Share on other sites

But according to the very first post on this thread, I'm s'posed to run IOJones on my Yosemite install to enumerate the USB ports. And according to that same post:

 

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. 

 

Thus my confusion. You see?

The image (first image) in post #1 appears to be from 10.11, not 10.10.

 

You will see something like that in 10.10 if you select IOACPIPlane, but not IOService as shown.

 

And you can use IOACPIPlane in 10.11 just as well for the same effect.

Link to comment
Share on other sites

The image in post #1 appears to be from 10.11, not 10.10.

 

Well, then, this whole thread kinda falls apart, doesn't it? Unless I'm really missing something. How can I use IOJones to enumerate USB ports under El Capitan when the ports aren't working and won't be seen. 

 

Wasn't the idea to enumerate the ports on a system where they worked (Yosemite) so you'd know how to make patches to enable them in El Capitan?

 

So, I guess the OP's methodology simply won't work and I should ignore it, right?

 

(Sorry if I seem touchy. I've been trying to get these ports to work for a week now.)

Link to comment
Share on other sites

Well, then, this whole thread kinda falls apart, doesn't it? Unless I'm really missing something. How can I use IOJones to enumerate USB ports under El Capitan when the ports aren't working and won't be seen. 

 

Wasn't the idea to enumerate the ports on a system where they worked (Yosemite) so you'd know how to make patches to enable them in El Capitan?

 

So, I guess the OP's methodology simply won't work and I should ignore it, right?

 

(Sorry if I seem touchy. I've been trying to get these ports to work for a week now.)

I would use USBInjectAll.kext to inject all ports: https://github.com/RehabMan/OS-X-USB-Inject-All

(make sure you read the README)

 

After you get all your ports working, you can trim the unused ones from a custom port injector and remove USBInjectAll.kext (and the port limit patch).

Link to comment
Share on other sites

I have reason to believe that the UsbConnector value is derived from the _UPC object (second value) in the ACPI tables, and in case you want to correct this value, then you can do that with help of a tiny bit of SSDT coding:

        Scope (\_SB.PCI0.XHC.RHUB.HS01)
        {
            Store (0x3, Index (_UPC, 1))
        }
Also. Apple doesn't like this:

        Device (SS02)
        {
            Method (_ADR, 0, NotSerialized)  // _ADR: Address
            {
                Return (Add (SSPA (), One))
            }
        }
It wants something like this instead:

        Device (SS02)
        {
            Name (_ADR, One)
        }
Link to comment
Share on other sites

I have reason to believe that the UsbConnector value is derived from the _UPC object (second value) in the ACPI tables,

Yes. Many times, however, it is not accurate. Physical inspection/testing is the solution in that case.

 

 

        Scope (\_SB.PCI0.XHC.RHUB.HS01)
        {
            Store (0x3, Index (_UPC, 1))
        }

 

Placing code outside of a method is an error, but...

 

It is easier just to change the _UPC method/Package itself.

 

Also. Apple doesn't like this:

        Device (SS02)
        {
            Method (_ADR, 0, NotSerialized)  // _ADR: Address
            {
                Return (Add (SSPA (), One))
            }
        }

 

Actually, it works just fine.

Link to comment
Share on other sites

Yes. Many times, however, it is not accurate. Physical inspection/testing is the solution in that case. Placing code outside of a method is an error, but... It is easier just to change the _UPC method/Package itself.

Yes indeed, but I do this from Method (_INI... but it was just an example. The crux is this line:

Store (0x3, Index (_UPC, 1))
That works just fine, without the need to mod the DSDT or SSDT tables.

 

Actually, it works just fine.

Ok. Well. The ports with that simply failed to show up on Skylake boards, so I assumed the this was the problem, but perhaps it exceeds the maximum port number (of 15). Need to check this...
Link to comment
Share on other sites

Ok. Well. The ports with that simply failed to show up on Skylake boards, so I assumed the this was the problem, but perhaps it exceeds the maximum port number (of 15). Need to check this...

Ports that don't show in IOService:

- ports that are not possible given the chipset hardware

- ports where _UPC[0] == 0 (most common problem)

- ports that exceed max 15 (arix98's patch in post #179 is useful temporary workaround)

- maybe ports where _STA returns 0 (?, not sure I've seen an _STA=0, where _UPC[0] non-zero)

 

The port type (_UPC[1]) will not affect whether or not it shows (well, maybe an illegal value might, but I haven't seen a DSDT that has illegal data at _UPC[1])

 

Note: My preferred method for correcting this data is using an injector. It is also Apple's preferred method (my MacBookAir6,2 uses an XHC port injector).

Link to comment
Share on other sites

I'm running a Gigabyte Z77-DS3H with 10.11.1. Trying to get my ports working, I installed USBInjectAll.kext, along with the clover patch to AppleUSBXHCIPCI to increase max ports.

 

No joy, nothing changed at all. I can, exactly as before, see both HSP1-4 and SSP1-4 under XHC, but any device I attach shows up under HSP. Argh!

 

Funny thing is, I could swear I saw this working once. And after a lot of thought, I experimented a bit. Sure enough, there is one way to get devices to attach to SSPx... Boot with them already plugged in! This works reliably, on all USB3 ports, regardless of whether I have USBInjectAll.kext installed or not. Better yet, a USB3 hub attached at boot time stays connected to that node, so you can attach and detach other 5gbps devices to it at will, and they stay at the 5gbps speed (though about 20% slower than the builtin ports, sigh). I wonder how widespread that is?

 

Anyway... any suggestions what I might do now, so I can avoid this USB3 hub workaround?

 

Thanks.

Link to comment
Share on other sites

Ports that don't show in IOService:

- ports that are not possible given the chipset hardware

- ports where _UPC[0] == 0 (most common problem)

- ports that exceed max 15 (arix98's patch in post #179 is useful temporary workaround)

- maybe ports where _STA returns 0 (?, not sure I've seen an _STA=0, where _UPC[0] non-zero)

None of the above is the case.

 

The port type (_UPC[1]) will not affect whether or not it shows (well, maybe an illegal value might, but I haven't seen a DSDT that has illegal data at _UPC[1])

Using 0xff for a USB 3 port is an illegal value as it should be 0x3.

 

Note: My preferred method for correcting this data is using an injector. It is also Apple's preferred method (my MacBookAir6,2 uses an XHC port injector).

That to me is an Apple workaround for older hardware. The new iMac's comes without injectors.
Link to comment
Share on other sites

But according to the very first post on this thread, I'm s'posed to run IOJones on my Yosemite install to enumerate the USB ports. And according to that same post:

 

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. 

 

Thus my confusion. You see?

Images are just examples, dont expect to see identical results.

 

Well, then, this whole thread kinda falls apart, doesn't it? Unless I'm really missing something. How can I use IOJones to enumerate USB ports under El Capitan when the ports aren't working and won't be seen. 

 

Wasn't the idea to enumerate the ports on a system where they worked (Yosemite) so you'd know how to make patches to enable them in El Capitan?

 

So, I guess the OP's methodology simply won't work and I should ignore it, right?

 

(Sorry if I seem touchy. I've been trying to get these ports to work for a week now.)

If the methodology didnt work this would be a pointless thread.

In any case, each update from apple is causing things to change, so early adopters of capitan should be aware of these problems, and be prepared for work.

 

I agree with piker in the fact fixes are better done in dsdt rather than injectors.

Link to comment
Share on other sites

None of the above is the case.

What case? Provide specifics and then maybe I can add to my list :-)

 

If you're referring to Z170 problems... I think the problems lie deeper...

 

Using 0xff for a USB 3 port is an illegal value as it should be 0x3.

That's not how I read the ACPI spec (v5). 0xFF means it is internal/proprietary. 0x3 is used only for "USB 3 Standard-A connector." There are also 4 other specifications for different USB3 connectors (4,5,6,7).

 

That to me is an Apple workaround for older hardware. The new iMac's comes without injectors.

MacBookAir6,2 is not "older" hardware. It is the Haswell MacBookAir...

Link to comment
Share on other sites

Ok had some progress...kind of...

Eventually worked out how to apply the DSDT patch in Clover Configurator top rename the EHC1 to EHO1 etc.

 

Tried the USB Series 8 Injector (from post #1) didn't make any difference, tried in both Clover/Kexts/10.11 and S/L/E. - No Change. 

Tried the InjectALL kext (removed the series 8 one) mentioned on here to, again in both locations, again No Change. 

After installing each kext (Kext Helper) I also repaired (?) the permissions (Kext Utility).

 

Then as a last shot i used Kext Helper to install the Series 9 Injector (after removing the InjectALL one) and now i have some difference. 

 

The 4 USB3 ports on the back (top) now work for both USB3 & USB2 (System Information says "Up to 5Gb/Sec")

The other 2 USB3 ports on the back (Intel ?) both recognise USB2 and the right one recognises USB 3. 

 

The 3 on the Front panel --

1x USB3 - works both USB3 and USB2

2x USB2

Connected to USB1314 on MB - Nothing.

Connected to USB1112 / USB910 / USB78 on MB - Works as should. 

 

So effectively using RENAME in CC, and Series 9 Injector, AS IS, everything works as it should apart form ONE USB3 port on the back not recognising USB3, only USB2, i can live with that!!

 

The only other thing i noticed is I now have no Bluetooth Icon in the System Preferences pane, and the Bluetooth Icon in the Title bar has a wavy line through it and when you hover over it says Bluetooth unavailable.

 

Matt.

 

EDIT: If i open the NETWORK settings in System Prefs, there is something that says Bluetooth PAN, and it is not available, form there i can click the "Setup Bluetooth Device" and get to the normal Bluetooth Settings Pane, but it says Bluetooth Off and the button to turn it on is not active (can't be pressed). 

Link to comment
Share on other sites

Ok had some progress...kind of...

Eventually worked out how to apply the DSDT patch in Clover Configurator top rename the EHC1 to EHO1 etc.

 

Tried the USB Series 8 Injector (from post #1) didn't make any difference, tried in both Clover/Kexts/10.11 and S/L/E. - No Change. 

Tried the InjectALL kext (removed the series 8 one) mentioned on here to, again in both locations, again No Change. 

After installing each kext (Kext Helper) I also repaired (?) the permissions (Kext Utility).

 

Then as a last shot i used Kext Helper to install the Series 9 Injector (after removing the InjectALL one) and now i have some difference. 

 

The 4 USB3 ports on the back (top) now work for both USB3 & USB2 (System Information says "Up to 5Gb/Sec")

The other 2 USB3 ports on the back (Intel ?) both recognise USB2 and the right one recognises USB 3. 

 

The 3 on the Front panel --

1x USB3 - works both USB3 and USB2

2x USB2

Connected to USB1314 on MB - Nothing.

Connected to USB1112 / USB910 / USB78 on MB - Works as should. 

 

So effectively using RENAME in CC, and Series 9 Injector, AS IS, everything works as it should apart form ONE USB3 port on the back not recognising USB3, only USB2, i can live with that!!

 

The only other thing i noticed is I now have no Bluetooth Icon in the System Preferences pane, and the Bluetooth Icon in the Title bar has a wavy line through it and when you hover over it says Bluetooth unavailable.

 

Matt.

 

EDIT: If i open the NETWORK settings in System Prefs, there is something that says Bluetooth PAN, and it is not available, form there i can click the "Setup Bluetooth Device" and get to the normal Bluetooth Settings Pane, but it says Bluetooth Off and the button to turn it on is not active (can't be pressed).

What version of OS X?

 

For certain XHC, it matters 10.11 vs. 10.11.1+. It is covered in the USBInjectAll README.

Link to comment
Share on other sites

×
×
  • Create New...