Jump to content

[GUIDE] USB Fix El Capitan 10.11


830 posts in this topic

Recommended Posts

Thank you very much VCH888, RehabMan and dgsga.

 

I'm now enjoying full USB2 and USB3 (Intel and ASMedia chip) on El Capitan (Asus Z97 Deluxe, SMBIOS iMac15,1, Clover).

 

Here is what I did and I hope it helps others as well:

  • Replaced If (_OSI ("Windows 2013")) with  If(LOr(_OSI("Darwin"),_OSI("Windows 2013"))) in my DSDT.aml (using macIASL)
  • Placed the the DSDT.aml in the appropriate folder in the Clover EFI partition
  • Installed the attached kernel extensions with Kext Utility (the DummyUSBXHCIPCI.kext does add/define the port restrictions for the USB3 ports)
  • Reboot
  • Done

I did not have to rename any USB ports in the DSDT.

 

It is important to know that this way only works with the iMac15,1 SMBIOS definition!

DummyUSBXHCIPCI.kext.zip

FakePCIID_XHCIMux.kext.zip

FakePCIID.kext.zip

  • Like 1
Link to comment
Share on other sites

Thank you very much VCH888, RehabMan and dgsga.

 

I'm now enjoying full USB2 and USB3 (Intel and ASMedia chip) on El Capitan (Asus Z97 Deluxe, SMBIOS iMac15,1, Clover).

 

Here is what I did and I hope it helps others as well:

  • Replaced If (_OSI ("Windows 2013")) with  If(LOr(_OSI("Darwin"),_OSI("Windows 2013"))) in my DSDT.aml (using macIASL)
  • Placed the the DSDT.aml in the appropriate folder in the Clover EFI partition
  • Installed the attached kernel extensions with Kext Utility (the DummyUSBXHCIPCI.kext does add/define the port restrictions for the USB3 ports)
  • Reboot
  • Done

I did not have to rename any USB ports in the DSDT.

 

It is important to know that this way only works with the iMac15,1 SMBIOS definition!

 

Am I missing something? How are the ASmedia USB 3.0 ports working?

Link to comment
Share on other sites

Am I missing something? How are the ASmedia USB 3.0 ports working?

 

I was surprised myself, but they do work. I have two ASmedia controlled ports at the front of my case and they work. If I attach a device there, they connect to the ASmedia controller (according to the system report).

If I attach a USB 3 device at the back of the case in one of the Intel controlled ports, they are directly listed under "USB 3 bus".

Link to comment
Share on other sites

I was surprised myself, but they do work. I have two ASmedia controlled ports at the front of my case and they work. If I attach a device there, they connect to the ASmedia controller (according to the system report).

If I attach a USB 3 device at the back of the case in one of the Intel controlled ports, they are directly listed under "USB 3 bus".

 

Can you please provide your patched DSDT, Clover Config and IOreg export basically the same stuff your provided for original help but after your changes?

 

I'm curious how the ASMedia 1042 USB 3.0 ports are working with the Apple Drivers. Could you possibly have a 3rd-party USB drive installed somewhere?

Link to comment
Share on other sites

Can you please provide your patched DSDT, Clover Config and IOreg export basically the same stuff your provided for original help but after your changes?

 

I'm curious how the ASMedia 1042 USB 3.0 ports are working with the Apple Drivers. Could you possibly have a 3rd-party USB drive installed somewhere?

 

Hi Mrengles, attached you will find the files.

ASM107x:

  Produkt-ID:	0x3074
  Hersteller-ID:	0x174c  (ASMedia Technology Inc.)
  Version:	1.00
  Geschwindigkeit:	Bis zu 5 Gbit/s
  Hersteller:	ASUS Tek.
  Standort-ID:	0x14100000 / 1
  Verfügbare Stromstärke (mA):	1800
  Erforderliche Stromstärke (mA):	2
  Zusätzlicher Betriebsstrom (mA):	0

config.plist.zip

DSDT.aml.zip

export.ioreg.zip

Link to comment
Share on other sites

It's ASM1074 not the more common ASM1042 so this may work with the Apple drivers (assuming it's XHCI 1.0 compliant).

 

I have the similar Asus Z97-WS board which has an ASM1042 on it which causes a kernel panic in 10.11 but works fine using vanilla USB drivers on 10.10.

 

The ASM107x's you see in the ioreg tree are hubs not controllers.

 

From 10.10:

 

dClzfb2.png

  • Like 1
Link to comment
Share on other sites

I have the similar Asus Z97-WS board which has an ASM1042 on it which causes a kernel panic in 10.11 but works fine using vanilla USB drivers on 10.10.

 

The ASM107x's you see in the ioreg tree are hubs not controllers.

 

From 10.10:

 

dClzfb2.png

 

You are absolutely right. I got this wrong. It is the hub which is working (which is to be expected because hubs do not require special drivers usually).

 

Sorry for the confusion!

Link to comment
Share on other sites

If anyone runs into non-working USB after sleep, it could be caused by DSDT.

 

I found that on one of my laptops, that DSDT was calling XSEL from _WAK (indirectly through XWAK). XSEL (or is it ESEL?) on this particular machine sets PR2 (32-bit register at offset 0xD0 in XHC PCI config) which controls how USB2 devices are routed to the ECH1 controller (USB2 deferring, as -gux_defer_usb2 does). Because it is routing USB2 devices to EHC1 and the new drivers in 10.11 don't expect it (system expects them to stay on the XHC controller), no USB ports devices were working after sleep.

 

Easy fix: Make XSEL and ESEL do nothing.

Currently, the only people that can get 10.11 are developers. So... any developer should know what to do and be able to read threads like this :-)

Hi !

 

I must confess that I'm not a developer so I don't know how to make XSEL and ESEL do nothing :P.

 

Would you mind to take a look at my DSDT and tell me how to do that (also attached is IOReg from IORegistry Explorer 2.1 and kexts I use) ?

 

Thanks :D.

Polyzargone_files.zip

Link to comment
Share on other sites

Hi !

 

I must confess that I'm not a developer so I don't know how to make XSEL and ESEL do nothing :P.

Find both XSEL and ESEL methods in your DSDT. Remove all code from each method. Or wrap all the code in "if(0){ ... original code }"

  • Like 1
Link to comment
Share on other sites

So this :

            Method (XSEL, 0, Serialized)
            {
                If (LOr (LEqual (XHCI, 0x02), LEqual (XHCI, 0x03)))
                {
                    Store (One, ^^LPCB.XUSB)
                    Store (One, XRST)
                    Store (Zero, Local0)
                    And (PR3, 0xFFFFFFC0, Local0)
                    Or (Local0, PR3M, PR3)
                    Store (Zero, Local0)
                    And (PR2, 0xFFFF8000, Local0)
                    Or (Local0, PR2M, PR2)
                }
            }

            Method (ESEL, 0, Serialized)
            {
                If (LOr (LEqual (XHCI, 0x02), LEqual (XHCI, 0x03)))
                {
                    And (PR3, 0xFFFFFFC0, PR3)
                    And (PR2, 0xFFFF8000, PR2)
                    Store (Zero, ^^LPCB.XUSB)
                    Store (Zero, XRST)
                }
            }

            Method (XWAK, 0, Serialized)
            {
                If (LOr (LEqual (^^LPCB.XUSB, One), LEqual (XRST, One)))
                {
                    XSEL ()
                }
            }

Would become this ? :

            Method (XSEL, 0, Serialized)
            {
                If(0)
                {
                    Store (One, ^^LPCB.XUSB)
                    Store (One, XRST)
                    Store (Zero, Local0)
                    And (PR3, 0xFFFFFFC0, Local0)
                    Or (Local0, PR3M, PR3)
                    Store (Zero, Local0)
                    And (PR2, 0xFFFF8000, Local0)
                    Or (Local0, PR2M, PR2)
                }
            }

            Method (ESEL, 0, Serialized)
            {
                If(0)
                {
                    And (PR3, 0xFFFFFFC0, PR3)
                    And (PR2, 0xFFFF8000, PR2)
                    Store (Zero, ^^LPCB.XUSB)
                    Store (Zero, XRST)
                }
            }

            Method (XWAK, 0, Serialized)
            {
                If(0)
                {
                    XSEL ()
                }
            }

Correct ?

 

PS : thanks for the reply :).

 

[EDIT]

 

It worked :thumbsup_anim:  !

 

I just left XWAK method as it :

            Method (XWAK, 0, Serialized)
            {
                If (LOr (LEqual (^^LPCB.XUSB, One), LEqual (XRST, One)))
                {
                    XSEL ()
                }
            }

And everything is OK now !

 

Thanks a lot :D !

Link to comment
Share on other sites

Guys .. I found different method to fix usb in el capitan at my mobo, after compare AppleUSBHub.kext  between 10.10.5 and 10.11 build 15A263e (now 15A279b) .. delete another key in AppleUSBHub.kext and leave AppleUSB20Hub0 & AppleUSB20Hub1, dont know the effect but my usb port work again (MacPro 6.1).  hopefully can be supplement  for pokenguyen research

 

post-1113740-0-80824300-1441111883_thumb.jpg

  • Like 1
Link to comment
Share on other sites

.. delete another key in AppleUSBHub.kext and leave AppleUSB20Hub0 & AppleUSB20Hub1, dont know the effect but my usb port work again (MacPro 6.1).

No need to edit the kext. I wrote about building a port injector for hubs earlier in this thread.

  • Like 2
Link to comment
Share on other sites

@RehabMan  is this what you mean http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/page-3?do=findComment&comment=2148322, how about if I dual boot with Yosemite, thanks

Kexts installed to 10.11 volume have no effect on 10.10 volume.

 

EHCx->EH0x rename seems to have no effect on Yosemite USB drivers.

Link to comment
Share on other sites

As I don't use a DSDT at the moment, is there any way to achieve full functionality of USB 2/3 either another way or with a DSDT that contains just the required alterations?

 

EDIT: I renamed XHC1 to XHC in the Info.plist of AppleUSBXHCIPCI.kext (Macmini6,2-XHC1) as thats what it seemed like my USB 3.0 was named as and it seems to have worked!

 

Before:

post-499606-0-61777700-1441530503_thumb.png

After:

post-499606-0-81351700-1441530581_thumb.png

Link to comment
Share on other sites

Hi:

I'm working on my Acer Aspire E5-771-74E7 (MacBookAir6,2) under Beta 8.  Currently, all ports are working and responding to devices correctly but USB3 connections are showing up on the USB2 hub.  The USB3 bus is showing in System Info but doesn't have a hub like USB2.

 

My solution to getting the ports working under USB2 seems different from what I've seen from previous posts.  My IORegEx doesn't seem to reflect my DSDT very accurately.  There are 2xUSB2 and 2xUSB3.

 

> To get all 4 ports working (all under/as USB2), all I have to do is add a PRT1 entry with LocationID = 0x01  under EHC1(see screenshot). 

> EHC1 doesn't even show up with any PRT# listings in IORegEx.  Just PR12 (not sure what that is).

> EHC2 exists in my DSDT but doesn't show up in IORegEx.  I tried adding to the AppleUSBEHCIPCI kext plist but no change.

> I tried adding all non-restricted ports for XHC (as shown in IORegEx) to the AppleUSBXHCIPCI plist.  USB3 port connections still showing on USB2 hub.

> I have tried actual USB3 devices in the USB3 ports but they still show under the USB2 hub and at USB2 transfer speeds.

 

I've attached some screens, plists, and ioregs without entries (no restrictions) and with (working USB2).

 

Any help appreciated.  Thanks.

 

post-858855-0-53987400-1441588793_thumb.png

post-858855-0-15559500-1441588811_thumb.png

post-858855-0-04124900-1441588816_thumb.png

rytz_usb_ioreg_dsdt_kext.zip

post-858855-0-00020600-1441589300_thumb.png

Link to comment
Share on other sites

I am getting a kernel panic when I try to install El Capitan from USB flash drive.  I finally managed to install it but had to install off another Sata drive and tried many times, maybe 25 to 30 attempts, to get past the kernel panic.  The USB flash drive was flooded with messages and could never get to the installer screen so I had to install El Captian from a Sata drive partitioned with the installer on it.

 

I still am getting kernel panics during boot and it takes many tries to finally get to Desktop but when I do,  I still get the same flooded messages during the boot and after the boot.   I have disabled the ASMedia USB 3 in Bios but that does not seem to help much.

 

Tried the Dummy kext and Rehab's Port Injector and I still get the kernel panic.  I also tried to boot after removing AppleUSBEHCI, AppleUSBEHCIPCI, AppleUSBXHCI and AppleUSBXHCIPCI from the IOUSBHostFamily kext but still get the kernel panic or the flooded power-state messages if I get past the kernel panic.

 

I have the Asus X79-Deluxe with Intel E2-2697 v2 running 10.10.5 flawlessly with the GenericUsbXHCI.kext.  I do not have a DSDT not needed, only SSDT.  Clover config, SSDTs and DSDT and IOReg from 10.10.5 attached. Keep in mind I don't use the DSDT only SSDT but generated one for informational purposes.

 

See Screenshots

Clover_Config_SSDTs_Ioreg_DSDT.zip

post-135888-0-75556700-1441653769_thumb.png

post-135888-0-42607200-1441653786_thumb.png

Link to comment
Share on other sites

If you're still using GenericUsbXHCI.kext when booting El Capitan, it will panic. Remove it and replace back AppleUSBEHCI, AppleUSBEHCIPCI, AppleUSBXHCI and AppleUSBXHCIPCI in the IOUSBHostFamily kext.

 

And also, don't forget to set correctly CrsActiveConfig flag in Clover if you're using latest PB's or DP's so you can play around with System folder (e.g. install and remove kexts and set or fix permissions) !

 

You should be able to boot El Capitan with no KP but it's likely that your USB 3.0 ports won't work at full speed or won't work at all.

 

I'm not sure about the ASMedia chipset so I suggest you read previous posts. I believe someone had success with it. Finally and based on IOReg, DSDT, etc. you should be able to determine your correct ports addresses.

 

That's all I can see for now since I'm definitely not an expert when it comes to DSDT and all that stuff :D.

  • Like 1
Link to comment
Share on other sites

You should be able to boot El Capitan with no KP but it's likely that your USB 3.0 ports won't work at full speed or won't work at all.

 

 

Is this the general consensus?  I get the feeling that I should feel lucky to have all 4 of my USB ports working, even though USB3 ports respond under the USB2 hub.

 

See:

http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/page-14?do=findComment&comment=2166035

Link to comment
Share on other sites

×
×
  • Create New...