Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
What i did not understand is, which PRT should go into the EH01/02 node, and which should go to the EH01/02-hub node in the Info.plist.
should HUBN and RHUB under EH01/2 go to the EH01/02-hub node, like the one in the Info.plist of HP-ProBook-4x30s?

Keep in mind the idea behind port injectors... they are overrides of DSDT. So.. we don't so much worry about what DSDT says (because it is already wrong), unless we are looking for reasonable guesses.

Your DSDT seems pretty messed up... so I'd start with the assumption that you have two ports directly under EH01, and PRT1 is a hub (your DSDT currently declares only PRT6 under it). Because that's the pattern I see with a lot of different computers (and usually port 2 is not used.)
 
When testing my USB3 Gigabit LAN adapter I ran into an unexpected problem.
(Zero Lemon USB3 Hub / RTL8153 Gigabit ethernet)

Plugging it in after reboot works as expected:

Realtek USB.png

However re-plugging it later however gives an error in the system.log:

Code:
001391.583022 IOUSBHostInterface@: IOUSBHostDevice::start: compliance violation: failed to enable remote wake
001391.684314 IOUSBHostInterface@: IOUSBHostDevice::start: compliance violation: failed to enable remote wake
001391.703432 AppleUSB30Hub@14900000: AppleUSB30Hub::start: failed to set hub depth 0 (0xe0005000)

After this, the ethernet device no longer shows up, however the other external USB hub ports work fine.
Removing and reinserting do not give any result, neither does inserting it into any other USB port.

Any ideas on how to approach this problem?
 
When testing my USB3 Gigabit LAN adapter I ran into an unexpected problem.
(Zero Lemon USB3 Hub / RTL8153 Gigabit ethernet)

Plugging it in after reboot works as expected:

View attachment 157122

However re-plugging it later however gives an error in the system.log:

Code:
001391.583022 IOUSBHostInterface@: IOUSBHostDevice::start: compliance violation: failed to enable remote wake
001391.684314 IOUSBHostInterface@: IOUSBHostDevice::start: compliance violation: failed to enable remote wake
001391.703432 AppleUSB30Hub@14900000: AppleUSB30Hub::start: failed to set hub depth 0 (0xe0005000)

After this, the ethernet device no longer shows up, however the other external USB hub ports work fine.
Removing and reinserting do not give any result, neither does inserting it into any other USB port.

Any ideas on how to approach this problem?

Does this device come with its own drivers, or does it use native drivers?

What is the result with the device on a real Mac?
 
Does this device come with its own drivers, or does it use native drivers?
Native drivers

What is the result with the device on a real Mac?

No idea. It worked on Yosemite just fine before. I have a Macbook Pro coming soon, so I can test it on there when it comes along.
 
Native drivers



No idea. It worked on Yosemite just fine before. I have a Macbook Pro coming soon, so I can test it on there when it comes along.

It could be something Apple broke in 10.11. You'll find out when you test on the real Mac.
 
Has anyone made the USB3 work on the Probook 4530s with a DSDT edit? Given how many of these machines are hackintoshed, it would seem that someone would have found something more than crickets. Save for a misleading Chinese blog, it appears that the GenericUSB kext is not the way to go.
 
Has anyone made the USB3 work on the Probook 4530s with a DSDT edit? Given how many of these machines are hackintoshed, it would seem that someone would have found something more than crickets. Save for a misleading Chinese blog, it appears that the GenericUSB kext is not the way to go.

No solution for NEC/Renasas USB. I will add this to post #1 so people stop asking...
 
It could be something Apple broke in 10.11. You'll find out when you test on the real Mac.

It wouldn't be too surprising if its because of an Apple change, after all the entire USB stack was rewritten in 10.11.
 
Rehabman,
I know that the guide explains everything. but as my first language is not English, I have difficulty understanding some items like:


_OSI and Windows version checks
I already applied the patch system_OSYS_win8.txt
how to determine if I really need the suggested patch SSDT-HACK.dsl?

XWAK, XSEL, and ESEL
what determines whether I need to XWAK patch?

I even created a patch for it
Code:
into method label XWAK parent_label XHC code_regex ([\s\S]*) replace_matched begin 
Return (Zero)\n
                %1\n
end;
but it made no difference

USB2 port routing(multiplex) and FakePCIID_XHCIMux
how to determine if I need to use FakePCIID_XHCIMux??

thank you.
 
Rehabman,
I know that the guide explains everything. but as my first language is not English, I have difficulty understanding some items like:


_OSI and Windows version checks
I already applied the patch system_OSYS_win8.txt
how to determine if I really need the suggested patch SSDT-HACK.dsl?

The two solutions are mutually exclusive. _OSI->XOSI+SSDT is a way to avoid having a patched DSDT in ACPI/patched. If you're already simulating "Windows 2012" (Windows8) for "Darwin" (OS X) via OS Check Fix patch, no need for the XOSI trick.

Most laptops will end up having a patched DSDT because of the complexity of the patches required. But desktops tend to have simpler patches and can be done via other methods.

Note: Advanced users can do all patches on-the-fly on laptops too. But it gets tricky. I've done it for my u430, ProBook 4530s, ProBook 4540s (and my BRIX desktop, DH67GD desktop). Eventually, I might write an article on it for advanced users only...

XWAK, XSEL, and ESEL
what determines whether I need to XWAK patch?

Most often it is non-working USB after wake.

I even created a patch for it
Code:
into method label XWAK parent_label XHC code_regex ([\s\S]*) replace_matched begin 
Return (Zero)\n
                %1\n
end;
but it made no difference

Easier patch...
Code:
into method label XWAK replace_content begin //nothing end;

USB2 port routing(multiplex) and FakePCIID_XHCIMux
how to determine if I need to use FakePCIID_XHCIMux??

FakePCIID_XHCIMux routes USB2 on XHCI to EHCI. It can be useful in these scenarios:
- your DSDT assumes this configuration
- you you have a device that behaves better when it is connected to EHCI/EHCI drivers
- you have more ports on XHCI than are allowed by the 15 port limit
 
Status
Not open for further replies.
Back
Top