Jump to content

[GUIDE] USB Fix El Capitan 10.11


830 posts in this topic

Recommended Posts

Is it possible to use XHCIUsbMux + FakePCIId with not-intel chips? I'm not asking whether it wil work; I'm asking whether it's possible to use it to inject properties for other chips (By modifying the IOMatch to make it attach to said device, obviously)

Link to comment
Share on other sites

Is it possible to use XHCIUsbMux + FakePCIId with not-intel chips? I'm not asking whether it wil work; I'm asking whether it's possible to use it to inject properties for other chips (By modifying the IOMatch to make it attach to said device, obviously)

The "fake PCI spoofing" part of FakePCIID, yes... But FakePCIID_XHCIMux does things specific to Intel XHCI chipset (manipulates USB2 port routing features, PR2/PR2M register). It is possible other XHCI chipsets have the same feature, but unlikely that the controls are in the same place.

Link to comment
Share on other sites

Can somebody help me to install the El Capitan on my computer? I'm desperate. I do not understand the DSDT. Yosemite 10.10.5 works perfectly. What is the problem here? Thanks a lot.

post-646273-0-43638200-1445452506_thumb.jpg

DSDT.zip

Link to comment
Share on other sites

The "fake PCI spoofing" part of FakePCIID, yes... But FakePCIID_XHCIMux does things specific to Intel XHCI chipset (manipulates USB2 port routing features, PR2/PR2M register). It is possible other XHCI chipsets have the same feature, but unlikely that the controls are in the same place.

Oh yeah, it figures. I was wondering specifically about more robust ways to inject properties without use of a DSDT/bootloader (currently working on a real Mac)

Link to comment
Share on other sites

Oh yeah, it figures. I was wondering specifically about more robust ways to inject properties without use of a DSDT/bootloader (currently working on a real Mac)

Depends on the specific properties you're trying to inject. AppleUSBMergeNub can be used to inject properties almost anywhere... It works as long as the code reading the properties doesn't read them until IOService::start (eg. not in probe or other IOService startup methods).

Link to comment
Share on other sites

Hi, 

I have an 6 Series Motherboard 

Asus P8P67 Rev 3.0 with 2133 patched BIOS,

ATI 6850 and i5 2500K @ 3.3Ghz

My USB3 on board controller is an NEC one.

 

I use smbios iMac12.2 (which is the closest to my configuration).

After installing El Capitan my USB 2.0 ports work just fine.

However my USB 3.0 ports simply do not work.

 

I read the thread and looked into AppleUSBXHCIPCI.Info.plist . However I do not see any iMac12,2 to edit (possibly iMac12,2 did not have any USB3 ports). Do I have to 'insert an iMac12,2 profile inside the plist in order to detect the USB ports'? 

 

Please find attached my patched DSDT and ioreg.

 

Thanks for your help!!!!

 

files.zip

Link to comment
Share on other sites

@sakoula - in general, if you have Intel USB3 the methods outlined here can be adapted to get USB3 working. but since you have NEC USB3, there may not be Apple kext/driver support for that chip set in El Capitan.  what driver were you using previously?

Link to comment
Share on other sites

@sakoula - in general, if you have Intel USB3 the methods outlined here can be adapted to get USB3 working. but since you have NEC USB3, there may not be Apple kext/driver support for that chip set in El Capitan. what driver were you using previously?

Do keep in mind... At least for me, the NEC chipset IS detected by AppleUSBXHCIPCI The ports do not work (or rather they do, but are so slow as to be unusable), but it is correctly detected. This is why I believe that there probably IS a solution we just haven't found yet.

Link to comment
Share on other sites

@LordKamina - well yes thats something. what does it match in AppleUSBXHCIPCI - class match?

and what happens if you define the ports via an injector? i was able to get my FL 1009 USB3 working by injecting the port properties.

Link to comment
Share on other sites

So far, nothing I've done has helped much. I'll post IORegs and such later. Basically... Open AppleUSBXHCIPCI in a plist editor, take a look at the first five or so entries in the IOPersonalities... You'll notice there's a couple for the FrescoLogic chips, a couple for Intel chips (those all matching by IOPCIPrimaryMatch) but there's also one labeled APPLEUSBXHCIPCI proper, that matches PCI class. That's what matches my chip.

Link to comment
Share on other sites

Not really making progress here... D:

 

Here's my current IOReg, I've tried injecting my properties and stuff everywhere I can think of but still no dice. The hardware is definitely being detected, as you will see in the IOReg. It just won't actually _mount_ the partitions because it's reading at speeds probably below even USB1.1.

 

 

Anasas.ioreg.zip

  • Like 1
Link to comment
Share on other sites

Do keep in mind... At least for me, the NEC chipset IS detected by AppleUSBXHCIPCI The ports do not work (or rather they do, but are so slow as to be unusable), but it is correctly detected. This is why I believe that there probably IS a solution we just haven't found yet.

 

I'm in the same boat. My VIA805 USB controller also gets detected. El Capitan knows that these are USB ports but they don't work "fast". It takes like 10 minutes to mount a flash drive. However even then its ridiculously slow.

 

So in general there are reports that Renesas, NEC and VIA controllers are detected. Even El Capitan creates ports for them automatically as seen in Verbose Mode and in System Information. The speed is painfully slow which makes it unusable. 

 

Anybody shed some light as to why they get detected in the first place? or why they are painfully slow?

Link to comment
Share on other sites

They get detected for the reason I outlined above. For whatever reason, Apple DID include a generic USB3 component to their kext. It matches PCI class-code (i.e. Will match anything that's usb3 and not caught first by the other kexts)

GhostRaider can you post an IOReg to see how your VIA looks?

Link to comment
Share on other sites

They get detected for the reason I outlined above. For whatever reason, Apple DID include a generic USB3 component to their kext. It matches PCI class-code (i.e. Will match anything that's usb3 and not caught first by the other kexts)

GhostRaider can you post an IOReg to see how your VIA looks?

 

Sure. Basically the 4 back USB 3.0 ports controlled by VIA are identified as follows. Everything else in XHC@14 is intel. That works natively with this motherboard so no modifications or patches needed for those ports.

 

Port 1

AppleUSB20HubPort@00110000 (2.0 device)

AppleUSB30XHCIPort@00200000 (3.0 device)

 

Port 2

AppleUSB20HubPort@00120000 (2.0 device)

AppleUSB30XHCIPort@00300000 (3.0 device)

 

Port 3

AppleUSB20HubPort@00130000 (2.0 device)

AppleUSB30XHCIPort@00400000 (3.0 device)

 

Port 4

AppleUSB20HubPort@00140000 (2.0 device)

AppleUSB30XHCIPort@00500000 (3.0 device)

 

USB Detection is there. All ports have their addresses and are ready to work. However there are speed issues for some unknown reason. I'm not understanding what OS X is doing behind the scenes here. 

MSI H81-E34.zip

Link to comment
Share on other sites

Any info on fixing this on 7 series chipsets? I'm currently running El Capitan on my Gigabyte GA-Z77N-WIFI and all of my usb ports work. During benchmark tests, my usb 3.0 ports test where I expected them to, so I'm not sure if I even need to worry about these fixes.

 

The only thing that I found strange was my thumb drives don't show an eject icon when connected to a usb 2.0 port, but otherwise, things seem ok.

 

Is it safe to ignore these fixes, or am I missing something?

Link to comment
Share on other sites

Upgraded to 10.11.1

This fixed a problem with NVidia web drivers, but nothing about USB.

 

On my Asus X99 Deluxe, out of 15 USB ports (10 USB3/2 on the back + 3 USB3/2 on the front + 2 USB2 on the back), only 2 ports are working (USB3/2 on the back).

 

Here is what I understand of my specs (more details upper on this thread on a previous post):

Intel USB controller ___________________• USB 2 port   -> not working
                           \  \  \  \___• USB 2 port   -> not working
                            \  \  \_____• USB 3/2 port -> not working
                             \  \_______• USB 3/2 port -> not working
                              \_________• USB 3/2 port -> not working
ASMedia controller _____________________• USB 3/2 port -> fully working
                   \ \             \____• USB 3/2 port -> fully working
                    \ \__ ASM107x hub __• USB 3/2 port -> not working
                     \    \  \  \_______• USB 3/2 port -> not working
                      \    \  \_________• USB 3/2 port -> not working
​                       \    \___________• USB 3/2 port -> not working
                        \_ ASM107x hub _• USB 3/2 port -> not working
                           \  \  \______• USB 3/2 port -> not working
                            \  \________• USB 3/2 port -> not working
                             \__________• USB 3/2 port -> not working

Here is what IOReg shows:

post-1350934-0-29965700-1445632917_thumb.png and post-1350934-0-05564500-1445632922_thumb.png

 

Interestingly, the EH01 and EH02 ports created in the DSDT are working, since the built-in Bluetooth BCM20702A0 module is working and shows under EH02. However, I have no clue where all those EH02 AppleUSB20HubPorts are linked to, but certainly not on any USB port on the back or the front of the computer. Those are, I think the Intel USB2 ports, and the 2 USB2 ports on the back of the MB should be in those, but those 2 ports are not working at all.

The XHCI is the vanilla definition in the DSDT, and it is truncated at 15 ports (the limitation) as the DSDT has more SSP (up to SSP6). However, they do not work.

Interestingly enough, the XHC under the RP07 device is defined in the SSDT (I did what Clover USB Fix was doing), and the 4 ports under that are linked to the 2 only working USB3/2 ports, 2 for the USB2 and 2 for the USB3. I can see that the keyboard and the mouse (plugged on those 2 ports) are there.

I tried to inject ports here, without success. Probably because of that ASM107x hub thing… Those XHC ports are the same as the ones as the ones listed under XHCI.

 

[EDIT] I just compared the IOReg with the one from Yosemite, and it is strange, as the BCM20702A0 is not at the same place! It is not under EHC2 as it is in El Capitan, but under XHCI?? Strangely too, I plugged a thumbdrive on one of the 2 USB2 ports behind, and it shows under XHCI as well… I am totally confused by this whole thing…

post-1350934-0-34354100-1445679307_thumb.png

 

I am no expert in DSDT and SSDT, and I feel that the solution is right here, under my eyes, but I don't have the knowledge to see it.

Is anyone else experiencing the same problems on X99 systems? If your system works, could you share your setup?

 

[EDIT 2] Here is what I get on Windows using Asus PC Diagnostic:

post-1350934-0-02564700-1445716955_thumb.jpg

Link to comment
Share on other sites

Something I just noticed... here's some output from my Console, it's obvious that something is missing; I'm sure there HAS to be a way to get it fixed.

10/25/15 17:22:23.000 kernel[0]: USBMSC Identifier (non-unique): 20140608015635 0x480 0xd011 0x607, 2
10/25/15 17:23:46.000 kernel[0]: IOUSBMassStorageDriver::AbortCurrentSCSITask - fConsecutiveResetCount = 1
10/25/15 17:23:46.000 kernel[0]: 014187.101743 EXCD@00000000: AppleUSBHostController::setPowerStateGated: going to state 1 returned 0xe00002e9
10/25/15 17:24:41.000 kernel[0]: 014241.583955 External USB 3.0@00300000: AppleUSBDevice::waitForInterfacesGated: timeout waiting for _interfacesMatched
10/25/15 17:24:41.000 kernel[0]: 014241.584021 External USB 3.0@00300000: AppleUSBDevice::waitForInterfacesGated: timeout waiting for _interfacesMatched
10/25/15 17:24:41.000 kernel[0]: USBMSC Identifier (non-unique): 20140608015635 0x480 0xd011 0x607, 2
10/25/15 17:24:47.245 system_profiler[1172]: SPUSBDevice: IOServiceGetMatchingService did not return anything for location 0x00300000
10/25/15 17:25:06.000 kernel[0]: 014267.201359 IOUSBHostDevice@00300000: IOUSBHostDevice::getDescriptorGated: type 0x03 index 2 length 34 completed with 0xe00002ed and bytesTransferred 0
10/25/15 17:25:08.000 kernel[0]: 014268.504606 IOUSBHostDevice@00300000: IOUSBHostDevice::getDescriptorGated: type 0x03 index 1 length 2 completed with 0xe00002ed and bytesTransferred 0
10/25/15 17:25:08.000 kernel[0]: 014268.711539 IOUSBHostDevice@00300000: IOUSBHostDevice::getDescriptorGated: type 0x03 index 3 length 2 completed with 0xe00002ed and bytesTransferred 0
10/25/15 17:25:08.000 kernel[0]: 014268.723890 IOUSBHostDevice@00300000: IOUSBHostDevice::getDescriptorGated: type 0x0f index 0 length 5 completed with 0xe00002ed and bytesTransferred 0
10/25/15 17:25:08.000 kernel[0]: 014268.723917 IOUSBHostDevice@00300000: IOUSBHostDevice::start: capability descriptors are missing or invalid
10/25/15 17:25:08.000 kernel[0]: 014268.726737 AppleUSBLegacyRoot@: AppleUSBLegacyRoot::usbServiceCallGated: failed to attach or start legacy service

After about a half hour (or perhaps more) of napping I turned the monitor back on and saw that my HD IS mounted. Just, again, unusable because it takes forever to list files. It's evidently an issue with speed negotiating or something like that.

 

Link to comment
Share on other sites

Can't seem to get it work on my Rampage IV Gene with 3930K.

 

Everything works fine (USB 2.0 including), except for my two USB 3.0 ports. Anyone maybe more information or (SSDT) files for my model? 

Link to comment
Share on other sites

Hmmm Seems kext not loaded

Boot flags are: kext-dev-mode=1 rootless=0 slide=0 npci=0x2000

What's wrong?

 

Filter 'usb' system.log
Oct 26 15:20:55 localhost kernel[0]: 000001.531522 AppleUSBLegacyRoot@: AppleUSBLegacyRoot::init: enabling legacy matching
Oct 26 15:20:55 localhost com.apple.usbmuxd[82]: log filter changed from 4 to 6
Oct 26 15:21:03 localhost com.apple.usbmuxd[82]: usbmuxd-364 on Aug  4 2015 at 14:36:18, running 64 bit
Oct 26 15:21:27 Starfire com.apple.kextd[47]: kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext "/System/Library/Extensions/DummyUSBEHCIPCI.kext"
Oct 26 15:21:27 Starfire com.apple.kextd[47]: /System/Library/Extensions/DummyUSBEHCIPCI.kext - no compatible dependency found for com.apple.driver.usb.AppleUSBEHCI.
Oct 26 15:21:27 Starfire com.apple.kextd[47]: /System/Library/Extensions/DummyUSBEHCIPCI.kext - no compatible dependency found for com.apple.iokit.IOUSBHostFamily.
Oct 26 15:21:27 Starfire com.apple.kextd[47]: Can't load /System/Library/Extensions/DummyUSBEHCIPCI.kext - failed to resolve dependencies.
Oct 26 15:21:27 Starfire com.apple.kextd[47]: Load com.apple.driver.usb.AppleUSBEHCIPCI failed; removing personalities from kernel.
Link to comment
Share on other sites

 

Hmmm Seems kext not loaded

Boot flags are: kext-dev-mode=1 rootless=0 slide=0 npci=0x2000

What's wrong?

Filter 'usb' system.log
Oct 26 15:20:55 localhost kernel[0]: 000001.531522 AppleUSBLegacyRoot@: AppleUSBLegacyRoot::init: enabling legacy matching
Oct 26 15:20:55 localhost com.apple.usbmuxd[82]: log filter changed from 4 to 6
Oct 26 15:21:03 localhost com.apple.usbmuxd[82]: usbmuxd-364 on Aug  4 2015 at 14:36:18, running 64 bit
Oct 26 15:21:27 Starfire com.apple.kextd[47]: kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext "/System/Library/Extensions/DummyUSBEHCIPCI.kext"
Oct 26 15:21:27 Starfire com.apple.kextd[47]: /System/Library/Extensions/DummyUSBEHCIPCI.kext - no compatible dependency found for com.apple.driver.usb.AppleUSBEHCI.
Oct 26 15:21:27 Starfire com.apple.kextd[47]: /System/Library/Extensions/DummyUSBEHCIPCI.kext - no compatible dependency found for com.apple.iokit.IOUSBHostFamily.
Oct 26 15:21:27 Starfire com.apple.kextd[47]: Can't load /System/Library/Extensions/DummyUSBEHCIPCI.kext - failed to resolve dependencies.
Oct 26 15:21:27 Starfire com.apple.kextd[47]: Load com.apple.driver.usb.AppleUSBEHCIPCI failed; removing personalities from kernel.

 

Check the OSBundleLibraries, kext from first page is from DP1 I think (you'll have to update the entries).

Link to comment
Share on other sites

Where i can find locationID for USB Hub?

And what about web cam, which in EHC2 -> RHUB -> PRT1 -> PRT3. I should inject it into hub?

 

Update

Used locationID 437256192 for EHC2 HUB.

Got working USB 2.0 (include web cam).

 

Also injected XHC, not yet tested

post-1158461-0-35152000-1445935088_thumb.png

Edited by TheTourist
Link to comment
Share on other sites

Where i can find locationID for USB Hub?

And what about web cam, which in EHC2 -> RHUB -> PRT1 -> PRT3. I should inject it into hub?

 

Update

Used locationID 437256192 for EHC2 HUB.

Got working USB 2.0 (include web cam).

 

Also injected XHC, not yet tested

The locationID can be seen in ioreg (property of the hub driver).

 

It is based on the address of the controller and the port# the hub is connected to. Since EHC2 is at address 0x1a000000, a hub at port #1 would be 0x1a100000.

  • Like 1
Link to comment
Share on other sites

Hi @ all

 

I need some help for the last problem on my hackbook.

 

I have USB 3.0 Intel which works oob on El Capitan 10.11.1 but its destroy sleep.

 

syslog says: Wake reason: XHC EHC2

 

Is there any way for DSDT or Clover to fix this problem?

 

If i disable XHCI in BIOS sleep works fine but no USB 3.0

 

I hope someone can help me :)

 

I have Lenovo G500.

 

 

 

 

 

 

 

 

 

 

 

 

Link to comment
Share on other sites

×
×
  • Create New...