Jump to content

GenericUSBXHCI USB 3.0 driver for OS X with source


928 posts in this topic

Recommended Posts

I patched AppleUSBXHCI in Clover configurator and I have no problems.(Kernel and Kext patches)
http://www.insanelymac.com/forum/files/file/150-patched-appleusbxhci/
No extra kext needed anymore
My chipset is NEC/Renesas: D720200
 
This the pactched section in my config.plist file
 

<key>KernelAndKextPatches</key>
    <dict>
        <key>KextsToPatch</key>
        <array>
            <dict>
                <key>Comment</key>
                <string>Patch MSI or pin interrupts 1</string>
                <key>Find</key>
                <data>
                gUkIAABAAA==
                </data>
                <key>Name</key>
                <string>AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                gUkIAAAAAA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Patch MSI or pin interrupts 2</string>
                <key>Find</key>
                <data>
                QcdHCAAAQAA=
                </data>
                <key>Name</key>
                <string>AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                QcdHCAAAAAA=
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Patch MSI or pin interrupts 3</string>
                <key>Find</key>
                <data>
                QcdHCAAAQAA=
                </data>
                <key>Name</key>
                <string>AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                QcdHCAAAAAA=
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Enable PCI power management</string>
                <key>Find</key>
                <data>
                dU1Ii7voAQAA
                </data>
                <key>Name</key>
                <string>AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                601Ii7voAQAA
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Disable Intel & Fresco USB3.0</string>
                <key>Find</key>
                <data>
                9oDUAAAAgHU0
                </data>
                <key>Name</key>
                <string>AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                9oDUAAAAgOs0
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Disable sleep code</string>
                <key>Find</key>
                <data>
                xoDIAAAAAQ==
                </data>
                <key>Name</key>
                <string>AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                xoDIAAAAAA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Disable XHCI 1.0 check</string>
                <key>Find</key>
                <data>
                QbzHAgDgPQABAAA=
                </data>
                <key>Name</key>
                <string>AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                QbzHAgDgPQAAAAA=
                </data>
            </dict>
        </array>
    </dict>
</dict>
</plist>


 Good luck !

Edited by @ROBASEFR
Spoiler BBCode added.
  • Like 3
Link to comment
Share on other sites

I patched AppleUSBXHCI in Clover configurator and I have no problems.(Kernel and Kext patches)

http://www.insanelymac.com/forum/files/file/150-patched-appleusbxhci/

No extra kext needed anymore

My chipset is NEC/Renesas: D720200

 

This the pactched section in my config.plist file

 

 Good luck !

Thx. I had used those patches in the past till Zenith released his Generic USB3 kext which was much more elegant in usage than patching. But as everyone is finding out, that kext does not work with 10.10.

 

The patch you posted above does not work as it has bugs (missing </dict> and missing "Find"string).

 

I fixed those and and cleaned up and now works on the Acer notebook (which also has the nec 720200 chip).

I am on 10.10.3.

 

Attached is a section of my working "Kext-to-patch" for the USB3.0.

 

No issues with CPU performance or power management.

 

If the disk is attached to the usb3 port during sleep, then there's an error on wake (usual "You removed a usb device without first detaching") but reattaches it on wake and all looks OK.

 

Speed is good too (just like the Generic kext that used to work).

 

Only question is whether these patches work on the next update release ?

 

UPDATE:

Attached file updated to include binary patch for Mavericks AND Yosemite (as I dual boot). Having patches for both do no harm. If you only boot one OS then take out the patches for the OS you do not boot.

MacNB-clover-usb3-patch.plist.zip

Edited by MacNB
  • Like 4
Link to comment
Share on other sites

will that patch work with ASM1042 chipset? I recall to see one comment that said it does not. FYI: try rehabmans version of the kext, at least this works - mostly - for me. But has smaller issues, sometimes does not recognize iDevices until replugged, or plugged to another port.

Link to comment
Share on other sites

will that patch work with ASM1042 chipset? I recall to see one comment that said it does not. FYI: try rehabmans version of the kext, at least this works - mostly - for me. But has smaller issues, sometimes does not recognize iDevices until replugged, or plugged to another port.

No the patching does not work for ASM1042 (according to the link above).

I was already using Rehabman's kext and it does not work on my notebook.

It only works if I boot while the USB 3 drive is plugged in. it does not hotplug after booting.

Link to comment
Share on other sites

yeah thats the main issue I also have. Sometimes it works sometimes not. Sometimes it even works for a device when I plug something on _another_ port. Strange but the best solution I could find. To bad nobody maintains this anymore.

Link to comment
Share on other sites

Thx. I had used those patches in the past till Zenith released his Generic USB3 kext which was much more elegant in usage than patching. But as everyone is finding out, that kext does not work with 10.10.

 

The patch you posted above does not work as it has bugs (missing </dict> and missing "Find"string).

 

Only question is whether these patches work on the next update release ?

Sorry for those bugs, happened because I took only the patches for USB fixes among my other "Kernel and Kext patches"

 

Glad you fixed it.

 

Hope no bad surprise in further updates....

Link to comment
Share on other sites

yeah thats the main issue I also have. Sometimes it works sometimes not. Sometimes it even works for a device when I plug something on _another_ port. Strange but the best solution I could find. To bad nobody maintains this anymore.

Best solution is to use native AppleUSBXHCI.kext.

 

I've transitioned all my computers to AppleUSBXHCI.kext from GenericUSBXCHI.kext...

Link to comment
Share on other sites

Sorry, my bad, i didnt explain myself correctly... can someone post the 10.10.3 version of the patched kext?

 

Thanks.

That link ROBASFER provided has a download button for 10.10.2.

Download it, backup the original kext and use your favourite kext installer to install the patched version.

It should work as long as your usb3 chip is NOT ASM1042.

 

If it works, then you should learn how to patch your own 10.10.3 kext. It is not difficult.

Read the link content.

Look for hexfiend app for mac os that helps you patch binaries (it has Find and Replace functions).

That way, you can always patch your own after every update without relying on others.

 

"give a man a fish and feed him for a day, or teach the man to fish and feed him for life"

Sorry for those bugs, happened because I took only the patches for USB fixes among my other "Kernel and Kext patches"

 

Glad you fixed it.

 

Hope no bad surprise in further updates....

No problem.

I suggest that you edit your post and put the corrected version there to avoid others copying and having the same issue.

You can simply cut and paste mine if you like  :P .

Best solution is to use native AppleUSBXHCI.kext.

 

I've transitioned all my computers to AppleUSBXHCI.kext from GenericUSBXCHI.kext...

Thx for confirming this. 

Do you use Clover for patching ?

If so, can you please share your kext-to-patch section relating to XHCI ?

The reason is that, I am not sure what clover does for Find-n-Replace when multiple instances need patching.

E.g. in the version I posted above, I have duplicate find-n-replace for the Interrupt because there are two places where the patches need to be applied. I am not sure if that is necessary.

  • Like 2
Link to comment
Share on other sites

...

Thx for confirming this. 

Do you use Clover for patching ?

If so, can you please share your kext-to-patch section relating to XHCI ?

The reason is that, I am not sure what clover does for Find-n-Replace when multiple instances need patching.

E.g. in the version I posted above, I have duplicate find-n-replace for the Interrupt because there are two places where the patches need to be applied. I am not sure if that is necessary.

For Intel XHCI, I use DSDT patches to solve various problems (instant wake, USB2 defer to EHC, etc).

 

For non-Intel XCHI, such as NEC-Renesas on my desktop, I'm using the Clover patches that are already linked from here. Clover's KextsToPatch does find/replace for multiple instances.

  • Like 2
Link to comment
Share on other sites

For Intel XHCI, I use DSDT patches to solve various problems (instant wake, USB2 defer to EHC, etc).

 

For non-Intel XCHI, such as NEC-Renesas on my desktop, I'm using the Clover patches that are already linked from here. Clover's KextsToPatch does find/replace for multiple instances.

Thx RehabMan.

Now I learned that Clover will find/replace multiple instances and there's no need to add multiple entries in config.plist.

The clover wiki does not mention that.

I will correct my KextsToPatch section to one entry for find-n-replace instead of two.

Link to comment
Share on other sites

Thx RehabMan.

Now I learned that Clover will find/replace multiple instances and there's no need to add multiple entries in config.plist.

The clover wiki does not mention that.

I will correct my KextsToPatch section to one entry for find-n-replace instead of two.

Clover is open source. The answers are always in the source code :-)

Link to comment
Share on other sites

Thx. I had used those patches in the past till Zenith released his Generic USB3 kext which was much more elegant in usage than patching. But as everyone is finding out, that kext does not work with 10.10.

 

The patch you posted above does not work as it has bugs (missing </dict> and missing "Find"string).

 

I fixed those and and cleaned up and now works on the Acer notebook (which also has the nec 720200 chip).

I am on 10.10.3.

 

Attached is a section of my working "Kext-to-patch" for the USB3.0.

 

No issues with CPU performance or power management.

If the disk is attached to the usb3 port during sleep, then there's an error on wake (usual "You removed a usb device without first detaching") but reattaches it on wake and all looks OK.

 

Speed is good too (just like the Generic kext that used to work).

 

Only question is whether these patches work on the next update release ?

Thank you so much for this! I patched using Clover and I now have working USB3 again. I've got the Renesas uPD720200A card in my computer.

Link to comment
Share on other sites

Clover is open source. The answers are always in the source code :-)

:) Thx I will remember that.

Thank you so much for this! I patched using Clover and I now have working USB3 again. I've got the Renesas uPD720200A card in my computer.

You are welcome.

  • Like 1
Link to comment
Share on other sites

That link @ROBASEFR provided has a download button for 10.10.2.

Download it, backup the original kext and use your favourite kext installer to install the patched version.

It should work as long as your usb3 chip is NOT ASM1042.

 

If it works, then you should learn how to patch your own 10.10.3 kext. It is not difficult.

Read the link content.

Look for hexfiend app for mac os that helps you patch binaries (it has Find and Replace functions).

That way, you can always patch your own after every update without relying on others.

 

"give a man a fish and feed him for a day, or teach the man to fish and feed him for life"

No problem.

I suggest that you edit your post and put the corrected version there to avoid others copying and having the same issue.

You can simply cut and paste mine if you like  :P .

Ok, pasted yours ! :yes:

  • Like 1
Link to comment
Share on other sites

Ok, pasted yours ! :yes:

Nice one - thx  :thumbsup_anim:

 

I also updated the file I posted at #754 to include binary patches for Mavericks AND Yosemite (as I dual boot). Having patches for both do no harm. If you only boot one OS then take out the patches for the OS you do not boot.

  • Like 1
Link to comment
Share on other sites

@MacNB

Can you also include for MountainLion please. Thanks 

 

Or probably ML same with Mavericks?

I do not have ML anymore.

See this original post (where all this patching began with ML) and it will give you the details of what the patches are.

Link to comment
Share on other sites

@MacNB

Got it here http://www.insanelymac.com/forum/topic/285157-patched-appleusbxhci-from-os-1082/?p=1946105

Is it possible for you to clean it up re multiple instances please

Thanks! :)

 

 

"give a man a fish and feed him for a day, or teach the man to fish and feed him for life"

 

I give you a fish today but learn how to fish.

In this case it was just easy... cut-n-paste and remove duplicate.

 

I do not have 10.8.5 so cannot test.

​Try it and then debug it if it does not work.

MacNB-clover-usb3-patch-3.plist.zip

Link to comment
Share on other sites

Hi, all!

 

I can not get my USB 3.0 to work. I have H77 chipset and 1xUSB_2.0 (w High Current) + 2xUSB_3.0. First I used a two patches from RehabMan laptop repository. But USB_3.0 worked only in 2.0 mode, and no USB 2.0 port at all. Now I have GenericUSBXHCI.kext, but all ports work as USB 2.0.

 

Can anyone help me to get USB 3.0.

Link to comment
Share on other sites

×
×
  • Create New...