Jump to content

[GUIDE] USB Fix El Capitan 10.11


830 posts in this topic

Recommended Posts

HS## = USB 2.0 or lower

SSP# = USB 3.0

 

 

You got to find how HS## and SSP# are using the same physical port.

 

For example;

 

HS01 and SSP1 are sharing the same port. So, you got to have them in info.plist.  You have 4 USB 3.0 ports and probably 2 on board USB 2.0.  Therefore, you should have 6 HS## and 4 SSP# in info.plist. Now, I think you know which port address, like 01 00 00 00,  will be added.

  • Like 1
Link to comment
Share on other sites

Are these fixes only for Intel USB or can they work with other USB controllers from VIA (VL800, etc)? All USB 2.0 ports are detected and work fine in El Capitan and 1 front case USB 3.0 ports work fine as well. The other 4 USB 3.0 ports in the back of the MSI motherboard don't.

Link to comment
Share on other sites

Are you using dsdt that you provided it on your H81M topic?  If yes, you may change Device (XHC), based on your dsdt & iMac 14,2, to Device (XHC1) and other xhc to xhc1.  Then, you should get two back usb 3.0 ports working for usb 3.0 devices without editing kext but may not working for USB 2.0.  Some ports may or may nor working  for USB devices due to limit port address in info.plist of AppleUSBXHCIPCI.kext.  

 

 

All USB 2.0 ports are detected and work fine in El Capitan and 1 front case USB 3.0 ports work fine as well. The other 4 USB 3.0 ports in the back of the MSI motherboard don't.

 

Look at your IORegistryExplorer, under XHC, it should show you HS01 to HS14 (for USB 2.0) and SSP1 (for USB 3.0).  So, you need to modify kext to match your hardware.

 

If you want to get all working ports, I would recommend you modify kext for SSP1 to SSP6 and using FakePCIID.kext and FakePCIID_XHCMux.kext to force USB 2.0 devices controlled by EHCI controller.

 

 

 

Only USB 3.0 pcie card with Fresco FL1100 chip is working natively. MacPro6,1 has this chip.

  • Like 1
Link to comment
Share on other sites

Are you using dsdt that you provided it on your H81M topic?  If yes, you may change Device (XHC), based on your dsdt & iMac 14,2, to Device (XHC1) and other xhc to xhc1.  Then, you should get two back usb 3.0 ports working for usb 3.0 devices without editing kext but may not working for USB 2.0.  Some ports may or may nor working  for USB devices due to limit port address in info.plist of AppleUSBXHCIPCI.kext.  

 

 

 

Look at your IORegistryExplorer, under XHC, it should show you HS01 to HS14 (for USB 2.0) and SSP1 (for USB 3.0).  So, you need to modify kext to match your hardware.

 

If you want to get all working ports, I would recommend you modify kext for SSP1 to SSP6 and using FakePCIID.kext and FakePCIID_XHCMux.kext to force USB 2.0 devices controlled by EHCI controller.

 

 

 

Only USB 3.0 pcie card with Fresco FL1100 chip is working natively.

 

I want to understand this better. Without any modification in El Capitan:

 

 

T9PnqQL.png

 

e14wXzm.png

 

So according to this screenshot:

ErvpCKw.png

USB Receiver (Logitech)

USB Flash Drive (Lexar)

USB Flash Memory (Toshiba)

Cruzer

 

The two back USB 2.0 ports and 1 front USB 2.0 and 1 Front USB 3.0 port are under the USB 3.0 Bus category with PCI Device ID 8C31.

 

Looking at this in IORegistryExplorer:

8nyrBkH.png

I'm not understanding something. Isn't the front USB 3.0 port suppose to fall in SSP1 or SSP2? 

 

From what I read this motherboard uses the VIA controller so this is detected in System Information:

84eDyue.png

I'm not sure what the other USB 2.0 Bus are for. So what exactly am I suppose to do to make the 4 usb 3.0 ports work? I don't know what the addresses are for the 4 USB ports and according to the guide, it says I have to modify the Device ID. So do I put the VIA device ID? Wouldn't that disable Intel USB (8C31) if I were to do that?

 

I do see EHCI and EHC2 in the DSDT but I don't think I need to do anything with that.

 

And then I have this under DSDT>_SB.PCI0>XHC>RHUB

 

RQcJUlm.png

 

So SSP1-SSP6 are my USB 3.0. Question is which one are the 4 USB 3.0 ports?

 

So to summarize, I believe I have the information needed but where do I start? Or is there a better way of fixing this?

 

EDIT: Apparently I just found out that El Capitan does indeed know that there are USB drives connected to all 4 USB 3.0 ports but are not mounted. They appear here in IORegistryExplorer and System Information:

csWO0Rs.png

uHXtZxN.png

El Capitan get's weirder. So they're detected but not mounted? This is happening on a machine without any USB kext or DSDT modifications. Well anyways where should I begin?

Link to comment
Share on other sites

...

I'm not understanding something. Isn't the front USB 3.0 port suppose to fall in SSP1 or SSP2?

Whether the device shows as SSPx or HS0x depends on whether the device is USB2 or USB3.

 

XHCI ports are actually two ports in one (USB2+USB3).

Link to comment
Share on other sites

@ GhostRaider

 

I hope you can understand what I try to tell you these followings.

 

 

based on your post #205

 

Cruiser connected to Front USB 3.0 port = Device (HS01) & address = 0x01,  sharing port with Device (SSP1) & address = 0x10

 
 
Flash drive (Lexar) connected to Back USB 2.0 = Device (HS09) & address = 0x09
Receiver (Logitech) connected to Back USB 2.0 = Device (HS10) & address = 0x0a
 
 
Flash memory (Toshiba) connected to internal USB 2.0 header = Device (HS07) & address = 0x07
 
 
These above devices were controlled by XHCI controller (mostly will be used for Intel 8/9 series).
 
————————————————
Let’s try to identify which port has Device (name).
 
Front USB 3.0 header provides two USB ports.
Device (HS01) + Device (SSP1)
Device (HS02) + Device (SSP2), not available due to your front case has one USB 3.0 port.
 
Front USB 2.0 port connected to internal USB 2.0 header. 
Device (HS07)
Device (HS08), not available due to front case has one USB 2.0 port.
 
 
*** I am guessing on back USB 3.0 ports and I am not sure about Device (HS##).  Due to seeing specification of MSI H81M, it uses VIA VL805 to controlled back four USB 3.0.
Device (HS03) + Device (SSP3)
Device (HS04) + Device (SSP4)
 
Device (HS05) + Device (SSP5)
Device (HS06) + Device (SSP6)
 
Back USB 2.0 ports
Device (HS09)
Device (HS10)
 
 
So, you should have these following in your dsdt since you would not modify kexts and add third party kexts. Don't do anything about dsdt.
 
Device (HS01) = address 0x01
 
Device (HS03)* = address 0x03
Device (HS04)* = address 0x04
Device (HS05)* = address 0x05
Device (HS06)* = address 0x06
 
Device (HS07) = address 0x07
 
Device (HS09) = address 0x09
Device (HS10) = address 0x0a
 
Device (SSP1) = address 0x10
 
Device (SSP3) = address 0x12
Device (SSP4) = address 0x13
Device (SSP5) = address 0x14
Device (SSP6) = address 0x15
 
can add more two Device (name)
 
* need to find out what Device (name) and address exactly is by plugging in USB 2.0 device to back USB 3.0 ports. 
 
P.S. HS## is used for USB 2.0 & SSP# is used for USB 3.0
 
The below is what I was doing my dsdt before I would select which Device (name) will be eliminated.
 
(I will leave this part for such H87 chipset.)
           Device (RHUB)
            {
                Name (_ADR, Zero)
                Device (HS01)
                {
                    Name (_ADR, One)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS02)
                {
                    Name (_ADR, 0x02)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS03)
                {
                    Name (_ADR, 0x03)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS04)
                {
                    Name (_ADR, 0x04)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS05)
                {
                    Name (_ADR, 0x05)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x69, 0x0C, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS06)
                {
                    Name (_ADR, 0x06)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x69, 0x0C, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS07)
                {
                    Name (_ADR, 0x07)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS08)
                {
                    Name (_ADR, 0x08)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS09)
                {
                    Name (_ADR, 0x09)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x81, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS10)
                {
                    Name (_ADR, 0x0A)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS11)
                {
                    Name (_ADR, 0x0B)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x80, 0x05, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS12)
                {
                    Name (_ADR, 0x0C)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS13)
                {
                    Name (_ADR, 0x0D)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x80, 0x06, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS14)
                {
                    Name (_ADR, 0x0E)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (HS15)
                {
                    Name (_ADR, 0x0F)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (SSP1)
                {
                    Name (_ADR, 0x10)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (SSP2)
                {
                    Name (_ADR, 0x11)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (SSP3)
                {
                    Name (_ADR, 0x12)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (SSP4)
                {
                    Name (_ADR, 0x13)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (SSP5)
                {
                    Name (_ADR, 0x14)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00
                    })
                }
 
                Device (SSP6)
                {
                    Name (_ADR, 0x15)
                    Name (_STA, 0x0F)
                    Name (_UPC, Package (0x04) {0xFF, 0x03, Zero, Zero})
                    Name (_PLD, Package (0x10)
                    {
                        /* 0000 */    0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x71, 0x0C, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00
                    })
                }
            }
 
 
 
 
Also, see IORegistryExplorer about data address, like this example of Z77X-UP5 TH.
post-93383-0-24982500-1439565390_thumb.jpg
SSP1 address is 0x05.
 
Sorry, I have no idea about PCIe USB 3.0 card, chip VIA.
 
Edited this post because of reading more specification of chipsets which may be different. 
  • Like 1
Link to comment
Share on other sites

Okay, I kind of get it now. So I tried to see what the 4 back USB 3.0 were doing and they are detected, but El Capitan doesn't do anything about it. 
 
So from what I understand, the 4 back USB 3.0 ports should be listed in the XHC@14 right? Obviously I can see that there are HS## missing as well as SSP# missing because each of the 4 usbs share an HS## and SSP#.
vYkNxOm.png
For sure SSP2 belongs to an unused front USB 3.0 port along with HS##. The motherboard also has 3 extra front USB 2.0 connectors so they are for HS##.
 
Finally, there are two HS## detected but they don't exist in the motherboard as far as I know. I doubt these belong for the back 3.0 ports.
 
So this happens when I connect 4 USB devices to the back 4 usb 3.0 ports. One of them is a real 3.0 device (AS2105). Apparently its controlled by AppleUSBXHCIPCI.
tMtujWK.png
And then the USB 2.0 devices are inside USB 2.0 Hub (Controlled by VIA)
 
Looking at IORegistryExplorer, these back 4 ports are inside AppleACPIPlatfromExpert/PCI0@0/AppleACPIPCI/RP06@1C,5/IOPP/PXSX@0
168KOgp.png
USB 3.0 devices are controlled by AppleUSB30XHCIPort@00#00000 under PXSX@00000000. So in my case it says that the USB 3.0 device AS2105 uses port (0x05). So one of the back USB 3.0 ports is here. This means that the other 3 back USB 3.0 ports use AppleUSB30XHCIPort@00400000, AppleUSB30XHCIPort@00300000, and AppleUSB30XHCIPort@00200000 when a 3.0 device is connected.
 
When a 2.0 device is connected, they are listed under AppleUSB20XHCIPort@00100000 > USB2.0 Hub @00100000.
vLTsvyZ.png
So USB Flash Drive is using address 00110000, USB Flash Memory is using address 00120000, and Mass Storage Device is using address 00130000.

 

And then I decided to see what exactly each of the back usb 3.0 port belongs to:

 

xoLOlrV.png

 

PORT 1

USB 3.0 Device = AppleUSB30XHCIPort@00200000

USB 2.0 Device = AppleUSB20HubPort@00110000

 

PORT 2

USB 3.0 Device = AppleUSB30XHCIPort@00300000

USB 2.0 Device = AppleUSB20HubPort@00120000

 

PORT 3

USB 3.0 Device = AppleUSB30XHCIPort@00400000

USB 2.0 Device = AppleUSB20HubPort@00130000

 

PORT 4

USB 3.0 Device = AppleUSB30XHCIPort@00500000

USB 2.0 Device = AppleUSB20HubPort@00140000

 

So what does this mean? Is it not possible to fix this problem on this motherboard? Seems very different to that of the guide.

 

I've attached an IOReg dump if anyone else wants to take a look at how this motherboard is structured. SSP1 is not active because I did not connect a 3.0 device to it. AppleUSB20HubPort@00140000 is not active because the device connected to it is a 3.0 device.

MSI H81ME34 IOREG.zip

  • Like 1
Link to comment
Share on other sites

@ GhostRaider

 

Now, I got the point.  The board with H81 chipset will support only two USB 3.0 and eight USB 2.0. (see http://ark.intel.com/products/75016/Intel-DH82H81-PCH)

 

So, MSI H81M back four USB 3.0 will be hosted by VIA VL805 after I looked at the manual and more information.

 

Therefore, you don't have to do anything about USB 3.0/2.0 that controlled by H81 chipset.

 

Maybe got to wait third party developer to build a generic xhci kext.

Link to comment
Share on other sites

Injecting properties for hubs...

Note that there is a few hub injectors in IOUSBHostFamily...PlugIns...AppleUSBHub.kext.

 

For:

MacBookPro9,1

MacBookPro8,1

MacPro6,1

 

So, even if your DSDT has EH01/EH02/XHC, if you're using these model identifiers, the hub injector will activate and limit your hub ports to those specified, regardless what your DSDT says.

 

It appears you can avoid this by building a custom hub injector personality with a larger IOProbeScore (eg. 5000).

 

See example at ProBook repo: https://github.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch

  • Like 1
Link to comment
Share on other sites

USB3.0 are all right under 10.10, and El Capitan Public Beta 1, 2, 3, and 4. Native drivers, no third-party kexts for USB.

 

Today I upgraded from Public Beta 4 to 5, and after that my USB3.0 all became USB2.0. See the screenshot. The USB3.0 port could work, but they displays as USB2.0 ports rather than USB 3.0.

 

Screenshot. The Bluetooth was on USB3.0 before update and became USB2.0 after upgrading to Public Beta 5.

 

post-1496828-0-79309500-1440153443_thumb.png

 

 

Link to comment
Share on other sites

USB3.0 are all right under 10.10, and El Capitan Public Beta 1, 2, 3, and 4. Native drivers, no third-party kexts for USB.

 

Today I upgraded from Public Beta 4 to 5, and after that my USB3.0 all became USB2.0. See the screenshot. The USB3.0 port could work, but they displays as USB2.0 ports rather than USB 3.0.

 

Screenshot. The Bluetooth was on USB3.0 before update and became USB2.0 after upgrading to Public Beta 5.

 

 

Do you have a USB 3.0 Bluetooth adapter? Otherwise it should be showing up under USB 2.0 Hub.

 

I fixed my El Capitan USB issues for the build in my signature as followed.

 

Changed my USB 2.0 device names from EHC1/EHC2 > EH01/EH02 via DSDT. Left the USB 3.0 device XHC alone and installed FakePCIID.kext & FakePCIID_XHCMux.kext into /EFI/Clover/Kexts/10.11/ or /System/Library/Extensions/ or /Library/Extension/

 

Now every USB port is working like it should, just like Yosemite with the USB 3.0 Multiplex patch.

 

If you want to test a couple DSDT patch(es) that might help...

 

https://github.com/mrengles/Gigabyte-Z77N-WiFi-Hackintosh-DSDT/blob/master/Apple-Intel-USB-2.0-El-Capitan.txt

https://github.com/mrengles/Gigabyte-Z77N-WiFi-Hackintosh-DSDT/blob/master/Apple-Intel-USB-7-Series.txt  Only for Intel 7 Series

 

Let us know if the FakePCIID.kext's and DSDT patch(es) help, like it did for me.

 

Good luck,

 

Robert aka Mrengles

 

System Specs:

 

ASRock Z77 Professional-M

Intel i7-3770K

32GB RAM

Nvidia GTX 670 4GB

512GB OCZ Vertex 4

Edited by Mrengles
Link to comment
Share on other sites

Do you know the reason for the issue of USB3.0? Will there be methods that do not require DSDT?

 

Maybe the future FakeSMC will figure it out even we do not need the third party kext.

 

Tom

 

PS the Bluetooth displayed as USB3.0 on Yosemite. This 94360.now it displays as USB2.0.

Link to comment
Share on other sites

Do you know the reason for the issue of USB3.0? Will there be methods that do not require DSDT?

 

Maybe the future FakeSMC will figure it out even we do not need the third party kext.

 

Tom

 

PS the Bluetooth displayed as USB3.0 on Yosemite. This 94360.now it displays as USB2.0.

 

Have you read the first post and the rest of this thread? It will answers ALL your questions.

Link to comment
Share on other sites

Do you have a USB 3.0 Bluetooth adapter? Otherwise it should be showing up under USB 2.0 Hub.

 

I fixed my El Capitan USB issues for the build in my signature as followed.

 

Changed my USB 2.0 device names from EHC1/EHC2 > EH01/EH02 via DSDT. Left the USB 3.0 device XHC alone and installed FakePCIID.kext & FakePCIID_XHCMux.kext into /EFI/Clover/Kexts/10.11/ or /System/Library/Extensions/ or /Library/Extension/

 

Now every USB port is working like it should, just like Yosemite with the USB 3.0 Multiplex patch.

 

If you want to test a couple DSDT patch(es) that might help...

 

https://github.com/mrengles/Gigabyte-Z77N-WiFi-Hackintosh-DSDT/blob/master/Apple-Intel-USB-2.0-El-Capitan.txt

https://github.com/mrengles/Gigabyte-Z77N-WiFi-Hackintosh-DSDT/blob/master/Apple-Intel-USB-7-Series.txt  Only for Intel 7 Series

 

Let us know if the FakePCIID.kext's and DSDT patch(es) help, like it did for me.

 

Good luck,

 

Robert aka Mrengles

 

System Specs:

 

ASRock Z77 Professional-M

Intel i7-3770K

32GB RAM

Nvidia GTX 670 4GB

512GB OCZ Vertex 4

How to patch the FakePCIID?

 

I copied both FakePCIID.kext and FakePCIID_XHCIMux.kext into /S/L/E, repaired permissions, and rebuilt the caches.

 

After rebooting, issue remains.

 

Tom

Link to comment
Share on other sites

My USB3.0 device's ID is 8086 8cb1. This device ID is included in the kext of IOUSBHostFamily.kext/Contents/Plugins/AppleUSBXHCIPCI.kext/Contents/Info.plist

 

So it should be natively compatible, but it is not be.

 

post-1496828-0-27048300-1440242194_thumb.png

Link to comment
Share on other sites

So, first thing is that you look at your DSDT. You search for your XHC1 and look there how many ports do you have there.

post-1220203-0-55736700-1440311456_thumb.png

Then you open that Info.plist and fill it with the number of ports you have in your DSDT.

post-1220203-0-01383400-1440311558_thumb.png

Then you change the port-count to the exact number of ports you have there. (it has to be in hexadecimal ;) )

This same exact thing is written in the first post. :) Just more in depth. You should've read that like 10 times slowly to understand it.

Oh, and now you need to change in the Info.plist two dependencies.

post-1220203-0-22212100-1440312029_thumb.png

com.apple.driver.usb.AppleUSBXHCI from 1.0 to 1.0.1

com.apple.iokit.IOUSBHostFamily from 1.0 to 1.0.1

Link to comment
Share on other sites

Then you change the port-count to the exact number of ports you have there. (it has to be in hexadecimal ;) )

The port-count is actually not a "count of ports", but actually the maximum value for 'port' in the 'ports' dictionary.

 

Poor naming on the part of Apple.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...