Jump to content
pokenguyen

[GUIDE] USB Fix El Capitan 10.11

832 posts in this topic

Recommended Posts

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.

 

 

Well I put everything back and removed the GenericUsbXHCI driver and I still get a kernel panic.   Its the ASMedia controller causing it.  In my Z97 I boot El Capitan without any issues and that has the ASMedia controllers on it.   Disabling the ASMedia USB 3 rear and Front does to help.   There must be something else that needs modifying to get past at least the kernel Panic.  I have to keep trying different things in Clover/SSDT.  Riley said he could not get past the Kernel Panic as well. 

 

Edited:

 

I finally booted into El Captain.  After about 10 reboots.  No 3rd party kexts installed.  Ioreg attached to see if this can help the developers get a driver written to at least stop the Kernal Panic?  All USB3 ports working perfectly right now except this flooded message which I made a screen shot from my post above.

 

9/7/15 4:48:20.000 PM kernel[0]: 000598.797120 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 2 failed with 0xe00002e9

9/7/15 4:48:20.000 PM kernel[0]: 000598.797204 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 1 returned 0xe00002e9

9/7/15 4:48:21.000 PM kernel[0]: 000598.897601 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 2 failed with 0xe00002e9

9/7/15 4:48:21.000 PM kernel[0]: 000598.897687 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 1 returned 0xe00002e9

9/7/15 4:48:21.000 PM kernel[0]: 000598.997914 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 2 failed with 0xe00002e9

9/7/15 4:48:21.000 PM kernel[0]: 000598.997999 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 1 returned 0xe00002e9

9/7/15 4:48:21.000 PM kernel[0]: 000599.098562 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 2 failed with 0xe00002e9

9/7/15 4:48:21.000 PM kernel[0]: 000599.098642 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 1 returned 0xe00002e9

9/7/15 4:48:21.000 PM kernel[0]: 000599.199734 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 2 failed with 0xe00002e9

9/7/15 4:48:21.000 PM kernel[0]: 000599.199887 ASMX@00000000: AppleUSBHostController::setPowerStateGated: going to state 1 returned 0xe00002e9

 

Ioreg attached.

 

Edited Again:

 

Got rid of the flooded messages by unchecking everything under USB in Clover Configurator but I still get a kernel panic and takes about 5-8 times to finally boot into El Capitan.  All USB including USB 3 ports function as they should.  My Kingston USB2/3 flash drive shows up in System Profile under USB 3 and I am getting the correct USB 3 speeds.   Now just to solve the Kernel Panic.

 

Edited:

 

The USB Installer was one of the earlier PB's maybe 1 but after I updated to PB6 panic is gone but the ASMedia ports do not work now.  I don't care I have enough Intel USB ports on this board that are working.

 

Edited:

 

False alarm it just happened to boot this time without a panic.  I still get the panic every 5 to 10 times then it boots to Desktop.

El_Capitan.ioreg.zip

post-135888-0-68081100-1441667779_thumb.png

Share this post


Link to post
Share on other sites
Advertisement

I was able to get all 4 USB ports working in 2 different scenarios:
[1] Modify AppleUSBEHCIPCI.kext to force PRT1 on EHC1 @ 0x01.  All 4 ports work but USB3 shows up under USB2 hub with only USB2 speeds.

[2] Modify AppleUSBXHCIPCI.kext to replace 0x8c318086 with 0x9cb18086 under AppleUSBXHCILPTH1 > IOPCIPrimaryMatch.  Also remove port restrictions under MacBookAir6,2-XHC1 > IOProviderMergeProperties.  In this scenario, all USB devices show under the USB3 bus and USB3 devices in USB3 ports get USB3 speeds.  USB2 devices work fine.

 

My AppleUSBEHCIPCI.kext is never loaded on startup.  I always have to load this kext manually.  I'm not sure why.  Even with the original IOUSBHostFamily.kext, it doesn't load on startup.

 

No matter what types of changes I make from the suggestions in this thread, I cannot get the mix and match of USB2 and USB3 devices under the correct bus/hubs.  At least with scenario #2 above, I can get fully working ports with USB3 speeds (tested).

 

My Bluetooth was working in Yosemite 10.10.5 with RehabMan's atheros kext, but I have been unable to get Bluetooth to work with any changes made during these USB tests.  I still get "Bluetooth: Not Available" on the menu bar.

 

RehabMan has suggested that my hubs are not properly set up.  One thing I've noticed from my DSDT is that EHC2 exists but is never picked up by IORegExp.  I also did some debug traces in the DSDT to see if methods under that HUBN are called but they are not.  I added an entry to AppleUSBEHCIPCI.kext for EHC2 but the entries don't show up in IORegExp.

 

I'm not sure what else to try for Bluetooth.  I have attached my DSDT and ioregs.

 

Thanks.

 

rytz’s MacBook Pro.ioreg.zip

post-858855-0-95778000-1441781597_thumb.png

post-858855-0-61281400-1441781607_thumb.png

post-858855-0-54138100-1441781612_thumb.png

DSDT.dsl.txt

Share this post


Link to post
Share on other sites

Got my USB ports(USB2/3 + USB3 speeds), bluetooth, and webcam working.  My DSDT was not configured to enable the ports associated with bluetooth and webcam.  Once I enabled those, I was able to see everything without port restrictions in the kexts.  You can find the details by searching another forum with the title "Atheros Bluetooth: IOath3kfrmwr.kext: Not Working (AR3011)".

 

My final solution: DSDT edits (below) and injector kext (below) to bypass apple and allow no port restrictions.

Some important notes:

> EHC1/2 are renamed to EH01/2 in DSDT to avoid apple conflicts.  They are identified as so in the injector.
> XHC is labeled as XHC in DSDT (no changes required).
> "AppleUSBXHCILPTH1 > IOPCIPrimaryMatch" must match IOreg: added to injector and changed to "0x9cb18086"
> Injector removes all port restrictions (no entries under IOProviderMergeProperties).  Bootup seems normal again after a couple boots.

These fixes all for Acer Aspire E5-771-74E7.

Special thanks to RehabMan!

RYTZUSBPortInjector.kext.zip

rytz’s MacBook Pro.injector.ioreg.zip

DSDT.dsl.zip

Share this post


Link to post
Share on other sites

I have read this entire thread and am glad to see that most people have made substantial progress and/or resolved their USB issues.  I thought I had a worse USB problem than I actually did.  The dummy kexts made things worse for me because I didn't realize that the ones I downloaded were outdated in terms of their dependencies.  The suggestions made in this thread were, for me, overkill.  It turns out that I had both USB 2.0 and 3.0 buses but I had one USB port that was not functioning.  I also believed that the USB 3.0 bus was not functioning because none of my internal USB devices were attached to the 3.0 bus (Bluetooth, Camera, Wireless Audio).  

 

For the non-functioning port, I added the port HUBN to the EHCIPCI kext (I have the MacBookPro9,2 SMBIOS).  For the USB 3.0 "issue," I plugged in a device that I was sure was USB 3.0.  That device appeared under the 3.0 bus.  In Yosemite, my USB hubs were called High Speed and Super Speed, not 2.0 and 3.0.  High Speed is 2.0 and Super Speed is 3.0, I just didn't realize it.  In my DSDT, under XHC1 (which I renamed to XHC for no apparent benefit) I have ports HSP1-4 and SSP1-4.  All of them are of the type 0x03 (making me think they were all USB 3.0 ports).  Apparently, that is not the case and that the XHC was handling both 2.0 and 3.0 devices.

 

As you can see, it is VERY easy to over-complicate this issue.  For me, I had to add one additional port and make sure I plugged in a USB 3.0 device.  I spent all day trying out all of the various fixes of DSDT and kext edits/dummy kexts and none of it was productive.  I learned a lot reading and trying out all sorts of suggestions from this thread but my advice is this:  keep it simple.

Share this post


Link to post
Share on other sites

I have to say I made some progress as well.  My kernel Panic mentioned in Post #273 and #276 has nothing to do with the actual USBXHCI controller but actually the AppleUSBHostMergeProperties.kext.  You can see it in the Kernel Panic message as a dependency so I removed  that kext and I am able to boot no issues although none of my USB drive will mount. They show up in Ioreg just will not mount.

 

That kext has many devices inside with Vendor/Device Ids etc and wonder if I have to possibly add some device there or modify a device to get around the panic?

Share this post


Link to post
Share on other sites

Hi all i don't understand how to do the dsdt edit? but i never used one before has my board has always worked out of the box its a ga Z97X gaming 7 and the usb3 ports just worked but on el capitan gm they work but has usb2. I want to edit the dummy kext files for iMac 14.2 but what do i do please help thanks a lot:) 

Share this post


Link to post
Share on other sites

Hello, I'm having some trouble here.

 

First off, I have a GIGABYTE GA-Z87M-D3H mobo, this has 4 USB3.0 ports on the mobo and 2 USB2 ports.  I also have 2 USB3 ports on the usb3 header on the mobo.  I also have 2 usb2 ports on a usb2 header, 2 more usb2 ports on another usb2 header, and a card reader with a usb port on the last usb2 header.

 

So, that's 6 usb3 ports total, and 8 usb2 ports (including the card reader).

 

I've got all the USB 3.0 ports working properly at fullspeed, but now only 2 of the USB2 ports work.

 

Here's a screenshot of my about this mac USB screen 

 

q2ZkB7t.png

 

 

The USB Keyboard and Wireless Reciever are plugged into the USB2 ports on a USB2 header (not sure why they are showing up in the USB3 bus.)  The ADATA is my USB3 flash drive.  Not sure what USB2.0 Hub is, I don't have a USB2 hub plugged in.

 

 

 

Anyway so I've set up DummyUSBXHCIPCI.kext like this.  I'm using iMac14,2 btw.

 

xjujka2.png

 

 

With this setup all of the USB3 ports work with USB3 devices fine, but only certain ones work with USB2 devices.  I'm thinking I've set them up incorrectly, idk.

 

 

 

I've attached a zip file with 3 files =

 

I use clover and I don't use a DSDT (I guess Clover patches it at boot?), but I've attached a DSDT.dsl dump extracted from Ubuntu linux on a flash drive (DSDT_FROM_LINUX.dsl).  I've also opened up MaciASL and saved what came up (System DSDT.dsl).  Finally, I've included an ioreg file from IORegistryExplorer that I took while the adata usb3 drive was plugged in, if that helps.

 

I'd be very grateful if anyone could shed some light on where to go from here.

files.zip

Share this post


Link to post
Share on other sites

@RehabMan

 

I have a sleep problem. After inject info.plist, all my usb port and internal usb devices work fine, but my laptop only sleep a second and instant wake itself automatically, The log shows Wake reason : EHCA EHCB。

 

My laptop is HM55 motherboard, with 4 usb2.0 port, and 1 Internal usb camera, 1 Internal usb Bluetooth. If I disable the internal usb devices (both camera and bluetooth) by not inject them to info.plist, and other 4 usb2. port inject and work fine, then sleep works fine, no more instant wake itself. If I disable the internal usb devices, even I plug a mouse receiver, then sleep, the laptop won't wake itself. It seems that the internal usb devices wake my laptop, neither the devices plugged in usb port.

 

I had try many ideas , patch dsdt--remove all _PSW _PRW method in EHC devices, edit or remove _UPC  method in Bluetooth , change usbconnecter value in info.plist,  no lucky.

My dsdt has no _PLD method.

 

More information:

OS X El Capitan GM Candicate 15A282a 

Chameleon 2758 + BIOS + MBR

 

Thank you for your help.

 

IOreg and dsdt, injected info.plist

 

 

 

 

 

post-747273-0-54935000-1442197839_thumb.png

post-747273-0-33037300-1442197852_thumb.png

lhl的MacBook Pro.zip

dsdt.zip

Info.zip

post-747273-0-41804200-1442198291_thumb.png

Share this post


Link to post
Share on other sites

@RehabMan

 

I have a sleep problem. After inject info.plist, all my usb port and internal usb devices work fine, but my laptop only sleep a second and instant wake itself automatically, The log shows Wake reason : EHCA EHCB。

Disable "wake on USB" in BIOS.

 

If not available, DSDT patches required...

Share this post


Link to post
Share on other sites

Disable "wake on USB" in BIOS.

 

If not available, DSDT patches required...

Thank you for your replay.

There isn't "wake on usb" in bios.

what kind patch should I use? I tried many but no lucky.

Share this post


Link to post
Share on other sites

@ dqb

 

I would suggest you to do followings:

 

1. test all USB 3.0 ports with USB 3.0 device and record each port address of physical port, such as <10 00 00 00>, see IORegistryExplorer

2. remove dummy kext and restart the OS X.  You should get all USB 2.0 ports and then connect USB 2.0 device and record each port address. See IORefistryExplorer, how many items are in XHC that is maximum.

3. edit info.plist of dummy kext or else that contains ports will be used.  Note, physical USB 3.0 ports support both USB 3.0 & USB 2.0, so you need to have both HS## and SSP# in info.plist.

 

or

4. the best way is using dummy kext or else that has 6 SSP# and rehabman's FakePCIID + FakeXHCIMux. The mux kext will force all USB 2.0 controlled by EHCI.

 

*******

 

Not sure what USB2.0 Hub is, I don't have a USB2 hub plugged in.

Did you have an external USB3.0 hub connect to the back USB 3.0 port? If yes, connect USB 2.0 device to the hub and see IOReg & System Info.

Share this post


Link to post
Share on other sites

Just follow Rehabman suggest for device renaming with Clover to fix my Asus top USB port, and working great.. Thankyou

<key>DSDT</key>
<dict>
  ...
  <key>Patches</key>
  <array>
    <dict>
      <key>Comment</key>
      <string>EHC2 [to] EH02</string>
      <key>Find</key>
      <data>
      RUhDMg==
      </data>
      <key>Replace</key>
      <data>
      RUgwMg==
      </data>
    </dict>
    <dict>
      <key>Comment</key>
      <string>EHC1 [to] EH01</string>
      <key>Find</key>
      <data>
      RUhDMQ==
      </data>
      <key>Replace</key>
      <data>
      RUgwMQ==
      </data>
    </dict>
  </array>
  ...
</dict>

Share this post


Link to post
Share on other sites

Problem solved with the solution of the "RehabMan".

Renamed "EHC1" and "EHC2" in my "DSDT" for "EH01" and "EH02". As for the USB 3.0 ports were already functioning normally, without editing the "XHC1". This I left like this.......
 
RehabMan. In previous systems, you will have a problem? In Yosemite and Mavericks?
 
Thanks!

Share this post


Link to post
Share on other sites

RehabMan. In previous systems, you will have a problem? In Yosemite and Mavericks?

I don't run Mavericks anywhere, but so far no problems using EH01/EH02/XHC with 10.10.

Share this post


Link to post
Share on other sites

I don't run Mavericks anywhere, but so far no problems using EH01/EH02/XHC with 10.10.

 

RehabMan confirmed. With this fix, usually works on OS X Mavericks.

Thanks.

Share this post


Link to post
Share on other sites

i have a problem with my US Robotics USB Modem 5637 for Fax, only this not work in El Capitan GM.

All another USB 2.0 and 3.0 works fine.

 

here is a screenshot from USB Modem in Systemprofile...

 

Excuse me is from actual Yosemite 10.10.5... a moment i will boot from El Capitan GM

 

the left Picture si Yosemite 10.10.5 all ok

 

the right Picture is from El Capitan 10.11 GM see mA = 0 is available and Modem can't in systemconfig--network and Printer add see.

 

Is this a Modem Driver problem or USB 2.0 Problem ? i need this for faxing on my Hackintosh.

 

Here ist the Picture from El Capitan GM: http://www.insanelymac.com/forum/uploads/monthly_09_2015/post-6397-0-54816400-1442362762_thumb.jpg

 

is a error here in Google Chrome browser, i see not the 2. Picture. In Safari see 2 Links from 2 Picture.

post-6397-0-87344300-1442356760_thumb.png

post-6397-0-54816400-1442362762_thumb.jpg

Share this post


Link to post
Share on other sites

@ dqb

 

I would suggest you to do followings:

 

1. test all USB 3.0 ports with USB 3.0 device and record each port address of physical port, such as <10 00 00 00>, see IORegistryExplorer

2. remove dummy kext and restart the OS X.  You should get all USB 2.0 ports and then connect USB 2.0 device and record each port address. See IORefistryExplorer, how many items are in XHC that is maximum.

3. edit info.plist of dummy kext or else that contains ports will be used.  Note, physical USB 3.0 ports support both USB 3.0 & USB 2.0, so you need to have both HS## and SSP# in info.plist.

 

or

4. the best way is using dummy kext or else that has 6 SSP# and rehabman's FakePCIID + FakeXHCIMux. The mux kext will force all USB 2.0 controlled by EHCI.

 

*******

Did you have an external USB3.0 hub connect to the back USB 3.0 port? If yes, connect USB 2.0 device to the hub and see IOReg & System Info.

 

 

Thanks a ton, I've got it all figured out and it seems like everything is working perfectly now!

 

Thanks!

Share this post


Link to post
Share on other sites

Hi guys,

 I've trying to install El Capitan on my machine which has a Rampage IV Extreme motheboard, so some of the usb ports are Intel X99 and other are Asmedia 1042.

 I got it installed on an external hard drive using another computer which as a Asrock B85M-ITX with modded firmware 1.90, works fine without any change. All USB ports work with all default kext and no DSDT change.

 

 However, when I run the installed EL Capitan HDD on the Rampage everything works except the usb ports as expected. I see the login screen etc, and I'm able to do a remote desktop and login without any problems.

 The USB 2.0 hubs are EUSB and UESBE. I renamed them to EHC1 and EHC2, they get recognized as I can see them on the System Information, but there is no device attached to them besides my mouse and keyboard are plugged into these ports.

 The is no USB 3.0 hub like XHC or whatever, they are individual USB 3.0 ports attached to the ROOT PCI, and they are called PEX1.. PEX5.  Not sure if u get what I mean, I don't have access to the the machine right now but I'll try to post a picture later and ioreg file.

 I renamed them to XHC1.. XHC5 but because they are Asmedia ports, their device id don't match 0x3c818086.
So, I think it will be hard to get these ports working on a Rampage IV Extreme motherboard until someone works on a Asmedia driver/kext.

Share this post


Link to post
Share on other sites

I actually got the El Capitan running successfully on a Rampage IV Extreme, the thing is that I had to buy a USB PCI-E card, it costed me $35AUD. It's working like a charm..

Share this post


Link to post
Share on other sites

Injecting properties for hubs...

 

Newer beta builds use DSDT _UPC/_PLD info to determine the state of ports on a hub, similar to how _UPC/_PLD is used for ports. I'm not sure when the change happened, but the change caused my USB2 ports on XHC to stop working when using FakePCIID_XHCIMux.kext.

 

If your DSDT returns incorrect information for hub ports, they will be excluded and the ports will not work. This seems to be common with laptops.

 

For example, with my Lenovo u430 using FakePCIID_XHCIMux.kext to force USB2 ports on XHC to be handled by EHC drivers, the ports end up being disabled and built-in devices such as camera, bluetooth, touchscreen, etc aren't recognized.

 

Already using a port injector for the port itself, which is defined as "not-connectable" and "not user visible", therefore disabled by 10.11:

    Device (HUBN)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Device (PR01)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
                    {
                        Name (UPCA, Package (0x04)
                        {
                            Zero, // not connectable
                            0xFF,
                            Zero,
                            Zero
                        })
                        Return (UPCA)
                    }
                    Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0008 */  0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // hidden
                            }
                        })
                        Return (PLDP)
                    }

 

The above port can be fixed in DSDT:

Device (HUBN)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Device (PR01)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
                    {
                        Name (UPCA, Package (0x04)
                        {
                            0xFF, // connectable
                            0xFF,
                            Zero,
                            Zero
                        })
                        Return (UPCA)
                    }
                    Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
                    {
                        Name (PLDP, Package (0x01)
                        {
                            Buffer (0x10)
                            {
                                /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0008 */  0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // hidden
                            }
                        })
                        Return (PLDP)
                    }

 

You can also leave DSDT as-is, and inject port-count/ports with an injector kext (dummy not needed with EHCx->EH0x rename).

 

Injecting port-count/ports for that port makes the system load the driver for the port (which is a hub and is handled by the hub driver), but only a subset of the ports on the hub are enabled, due to the same/similar problem.

 

For example:

                    Device (PR11)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
                        {
                            Name (UPCP, Package (0x04)
                            {
                                Zero, // not connectable
                                0xFF,
                                Zero,
                                Zero
                            })
                            Return (UPCP)
                        }
                        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
                        {
                            Name (PLDP, Package (0x01)
                            {
                                Buffer (0x10)
                                {
                                    /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0008 */  0xE1, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // visible
                                }
                            })
                            Return (PLDP)
                        }
                    }

 

In this particular case, both _UPC and _PLD are wrong.  _UPC should be connectable, and the _PLD should indicate "not user visible".  This hub port is the internal bluetooth connection for the half-mini PCIe BT/WiFi combo card.

 

It can be fixed in DSDT:

Device (PR11)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
                        {
                            Name (UPCP, Package (0x04)
                            {
                                0xFF, // connectable
                                0xFF,
                                Zero,
                                Zero
                            })
                            Return (UPCP)
                        }
                        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
                        {
                            Name (PLDP, Package (0x01)
                            {
                                Buffer (0x10)
                                {
                                    /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0008 */  0xE0, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // hidden
                                }
                            })
                            Return (PLDP)
                        }
                    }

 

Or you can inject port-count and ports for the hub itself and leave DSDT untouched.

 

Through a bit of experimentation (and intuition) I was able to determine that the same properties (port-count and ports) that are read by the controller driver, are also read by the hub driver.

 

The trick is injecting the properties with an appropriate IOKitPersonality match:

attachicon.gifScreen Shot 2015-08-06 at 8.13.15 AM.png

 

Matching on provider class AppleUSB20InternalHub and locationID.  The locationID (0x1d100000, decimal 487587840) is the locationID you see for the hub in ioreg.  It is based on the port address and controller address.

 

The complete injector is at my u430 repo: https://github.com/RehabMan/Lenovo-U430-Touch-DSDT-Patch

Amazing!! It works!!

My dsdt has no UPC\PLD, I add it follow the ACPIspec, then rename EHC1 to EHCA, etc. Now, info.plist injection is no need anymore.

I can't use usb disk to install el capitan, it says "still waiting for root devices", because usb ports does not work, even if I inject the info.plist. After I patch the dsdt by add UPC\PLD, the problem solved!!

But I still has the sleep problem: instant wake after sleep. reason is EHC, remove _PRW doesn't help. Only disable internal usb bluetooth and camera can solve this.

Share this post


Link to post
Share on other sites

Hi guys, I'm using a MacbookPro8,1 SMBIOS for my M2420, it has been all messy after updating to El Capitan, USB won't work at all, shutdown and sleep/wake were not working either, I tried dummies to get it to work, I get to enable shutdown and sleep but USB is still disabled no matter what mod I do to the kexts, what's more bluetooth gets disabled as well whenever I touch the kexts, I tried writing ports, (I've got 3 2.0 ports physically but 4 in the DSDT) modding the DSDT, removing port restrictions from dummy, treating original kexts directly (KP for this)  I really don't know what else I could do.

 

Here is the set of original tables of my system

and the set of patched tables that I use:

 

http://www.mediafire.com/download/5637lkdc5bysokd/original.zip Original

http://www.mediafire.com/download/yzliwsy4lmlx5z3/patched.zip Patched

 

I hope you guys can help me

Share this post


Link to post
Share on other sites

I actually got the El Capitan running successfully on a Rampage IV Extreme, the thing is that I had to buy a USB PCI-E card, it costed me $35AUD. It's working like a charm..

Does this card do USB3? What card is it? Anyone else know of PCI-E cards that work? It's early days but I'm about to give up for now at least. thanks

Share this post


Link to post
Share on other sites

 i am too stupid to get it working with usb 3.0 perhaps someone can help? my board H97n-WIFI... :(

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×