Jump to content

GenericUSBXHCI USB 3.0 driver for OS X with source


928 posts in this topic

Recommended Posts

What change poke ?

I wrote some hacky macros to make it work on all versions 10.7.5 -> 10.10.

Using the version from post #564 my computer would reboot 5 minutes after waking from sleep.

 

I'm going to try poke's version now.

RehabMan's version...

GenericUSBXHCI for OS X from 10.8 -> 10.10:

https://bitbucket.org/RehabMan/os-x-generic-usb3/downloads

I have no idea if Zenith432 is done making changes for Yosemite (probably not). I suspect the reason this is still a 'd' version is that it is still under development. I wish I understood USB3 as well as he does to be able to fix various things, but the fact is I don't (I'd have to spend much time reading the XHC spec, etc).

 

But I understand C++ really well, so it is easy for me to see how to make conditional code for multiple OS X version targets in a single binary.

  • Like 2
Link to comment
Share on other sites

Zenith432 does not have much time to spend on this - neither to review the code changes from 1.2.7 to 1.2.8dXXX (about a year old) - nor to reveng latest AppleUSBXHCI for changes - which is why development is stuck.  It would be nice to have two-three developers who are experts in xhci to take over. :)

I don't mind continuing to reveng AppleUSBXHCI for updates, but having to then also forward-eng the code in GenericUSBXHCI, and adapt it to all possible xhci quirks in the wild is too much.

Enough said.

 

I have no idea if Zenith432 is done making changes for Yosemite (probably not). I suspect the reason this is still a 'd' version is that it is still under development.

  • Like 1
Link to comment
Share on other sites

Zenith432 does not have much time to spend on this - neither to review the code changes from 1.2.7 to 1.2.8dXXX (about a year old) - nor to reveng latest AppleUSBXHCI for changes - which is why development is stuck.  It would be nice to have two-three developers who are experts in xhci to take over. :)

I don't mind continuing to reveng AppleUSBXHCI for updates, but having to then also forward-eng the code in GenericUSBXHCI, and adapt it to all possible xhci quirks in the wild is too much.

Enough said.

Thanks for responding Zenith. Definitely me and others appreciate what you do and it is nice to know your status with respect to GenericUSBXHCI.kext.

 

What is your recommendation for USB3 at this point? Are you using AppleUSBXHCI.kext with patches? Or are you using a build (from sources with changes) of AppleUSBXHCI.kext. I know Apple published the code at one point and there was a custom build with some fixes, but I thought that Apple stopped publishing the code (as if they suddenly decided it shouldn't have been released under the APSL)

 

I'd rather use the native Apple kext in the first place, if it can be done. I'll be working on that a bit for my own hacks, I think...

Link to comment
Share on other sites

I still use GenericUSBXHCI, because I have Renesas and VMware xhci, the binary mods needed for AppleUSBXHCI are complex to maintain, and GenericUSBXHCI still works for the devices I have.

The version I uploaded for Yosemite contains a minor fix (compared to previous OSes) to a binary incompatibility introduced in _v3ExpansionData in the headers.  I haven't examined AppleUSBXHCI v705 (from Yosemite) in detail, so there may be other things that need to be updated.  Since my set up works as is - I'm not in any rush to review that.

AppleUSBXHCI was closed-source up until OS 10.8.2.  After I published GenericUSBXHCI, Apple published the sources for AppleUSBXHCI in OS 10.8.3 and 10.8.4.  Then this thread was published.  After that Apple disappeared the sources for all IOUSBFamily, although it's partly published for OS 10.8.5 (missing files.)

Other than updating for latest changes in Yosemite, the additional code to make GenericUSBXHCI work on other xhci chips needs to be maintained and possibly expanded for more hardware.

Link to comment
Share on other sites

I uploaded a build of 1.2.7 that works on OS 10.10 Public Beta 2 (14A329r).

 

Confirmed and working on my Asrock Z77 Fatal1ty Professional-M on Yosemite from App Store.

 

Before install; only the Intel-series USB 3.0 worked.

After install; ALL USB ports work, so I have Intel AND ASM1042 working!

 

Thank you!

Link to comment
Share on other sites

I wrote some hacky macros to make it work on all versions 10.7.5 -> 10.10.

 

RehabMan's version...

 

I am trying the RehabMan's version. 

USB HDD recognised OK but running BlackMagic disk performance test shows only 38MB/s on Yosemite whereas on Mavricks it's 89MB/s.

That is, the USB3 ports seem to be like USB2.

Anyone measured the performance of their drive on USB3 with this kext ?

Link to comment
Share on other sites

I've been trying to figure out whether there is a 100% working solution for Macbook Pro 2011 and earlier (with Yosemite installed) users to add USB 3.0 port connection into their computers using a hidden ExpressCard and achieve transfer speed more than 100Mb/s. These are the only three tutorials that I have found:

 

http://www.dawning.ca/2014/dear-diary-usb-3-0-on-my-macbook/ - Yosemite used, very low speed achieved

http://petesentme.com/tutorials/how-to-add-usb3-to-macbook-pro - not Yosemite, speed achieved is not known

http://www.spaceman.ca/blog/?p=288 - not Yosemite, speed achieved is not known

 

I hope members of this forum can give me an advise on that.

Link to comment
Share on other sites

I've been trying to figure out whether there is a 100% working solution for Macbook Pro 2011 and earlier (with Yosemite installed) users to add USB 3.0 port connection into their computers using a hidden ExpressCard and achieve transfer speed more than 100Mb/s. These are the only three tutorials that I have found:

 

http://www.dawning.ca/2014/dear-diary-usb-3-0-on-my-macbook/ - Yosemite used, very low speed achieved

http://petesentme.com/tutorials/how-to-add-usb3-to-macbook-pro - not Yosemite, speed achieved is not known

http://www.spaceman.ca/blog/?p=288 - not Yosemite, speed achieved is not known

 

I hope members of this forum can give me an advise on that.

I have à MBP 2011 also and tought also to make it USB 3 compatible.

What I found is that for a 100 % working solution and OOB you have to buy an Expresscard 34 with Fresco 1100 chip like these :

http://www.amazon.com/Express-Adapter-Profile-Laptop-Notebook/dp/B00KOL3FIO/ref=sr_1_5?s=electronics&ie=UTF8&qid=1415110106&sr=1-5&keywords=usb3+expresscard+34+fresco+1100

http://www.amazon.com/ExpressCard-Express-Adapter-Converter-5-0Gbps/dp/B008XUFJIM/ref=sr_1_1?s=electronics&ie=UTF8&qid=1415110180&sr=1-1&keywords=usb3+expresscard+34+fresco+1100

Link to comment
Share on other sites

Just a heads up for those using this kext on Yosemite:

 

If upon restart/shutdown your machine seems to go into a kind of standby mode (display turns off, disk activity stops, etc.) and hangs there for ~20-30 seconds before finally powering down, then disabling GenericUSBXHCI.kext might fix that.

 

Everything else I could think of (DSDT tweaking and so on) failed to address problem. Syslogs gave no insight as all logging ceases after the SHUTDOWN_TIME message. But issue was definitely unique to Yosemite (doesn't occur in Mavericks nor Windows). Finally on a random whim I removed aforesaid kext and the machine powered down normally.

 

Was using latest v1.2.7 tweaked for 10.10. Hardware specs are in signature (USB controller is Intel). Fortunately, for whatever reasons my USB ports (both 3.0 & 2.0) operate perfectly fine OOTB in Yosemite, so GenericUSBXHCI.kext is no longer necessary in my case.

Link to comment
Share on other sites

I have a sort of a minor but strange problem with this. The USB 3.0 ports don't work the first time after boot. If I remove the device and plug it in again then it gets detected and everything works fine after that. This behaviour repeats after the system wakes up from sleep. Although at times I plug in a flash drive and it gets detected as a USB 2.0 device. If I boot with the device plugged in, it works fine though.

 

 

I'm on Yosemite. I tried both - v1.2.7 and RehabMan's fork. I have a old MSI P67 motherboard which uses a NEC/Renesas uPD720200F1 chip.

I tried the -gux_nosleep flag but it didn't help. Also tried gux_log=2 but I couldn't find any relevant log messages. I also updated the firmware for uPD720200 but that didn't help either.

Link to comment
Share on other sites

I got this message in console, i have Nec/renesas laptop usb 3.0 

 

12/11/14 14:22:54,000 kernel[0]: USBF:    1.461    GenericUSBXHCI::CreateRootHubDevice  Bus 14 already taken

 

Usb 3.0 works with device plugged before boot in os. Weird problem. 

 

If i eject the device it doesn't recognize anymore any devices.

Link to comment
Share on other sites

×
×
  • Create New...