Jump to content

GenericUSBXHCI USB 3.0 driver for OS X with source


928 posts in this topic

Recommended Posts

  • 2 weeks later...

So i bought a Seagate Desktop 4 TerraByte USB3....and it does not work correctly. Mounts, unmounts, but when writing it stops or becomes super slow?

 

Anyone has a clue what is going on and is it fixable perhaps?

 

I tried on 2 different computers, same symptoms.

 

Edit: on usb2 it functions normal.

 

Edit2: I put the 4 TB Seagate drive another drive enclosure (other brand), problem solved. In my case: Seagate Expansion Desktop does not work @usb3 on OS X.

Link to comment
Share on other sites

You said you tried it on two different computers. Are those two Hackintoshes?

 

I ask because I wouldn't blame ANY USB 3.0 hardware when running directly on Motherboard USB 3.0 chipsets. I've been head butting for months until I finally gave up and bought a $30 PCIe USB 3.0 card that works with OS X for Mac Pros and now everything is perfect, but before that, everything was messed up here and there.

Link to comment
Share on other sites

@ila225

 

I tried on a Mac Pro and a Hackintosh. But after moving the internal 4 tb seagate disk to another external case it plain works.

 

So there must be something with the seagate controller. The box does not say MAC compatible. I did not read it in the shop....I just thought it would just work.

 

Anyway, I can use it now :-) , just made a 3,37 tb backup to it and it took 9 hours.

Link to comment
Share on other sites

Thank you so much! I signed up here just to let you know :D


I can report I got it working on my MacBookPro with OSX 10.9.4 (and working on my Win 7 partition as well)  with the following set-up.

MacBookPro 17" 8.3 Early 2011, OSX 10.9.4 (and Win 7)
GMYLE® ExpressCard 34mm to USB 3.0 Adapter (Dual Port) - with ASMedia1042 Host controller



Being new to Mac I found some basic intructions here:

http://www.spaceman.ca/blog/?p=288

I had to follow every step carefully to make it work as well as make the two edits you wrote in the readme thanks! It didnt work without them:
--
"On ASM1042, UAS is disabled by default due to random hardware failures.  To reenable, add the property
<key>DisableUAS</key>
<false/>
to GenericUSBXHCI.kext/Contents/Info.plist.

On OS 10.9, when installing GenericUSBXHCI, you need to edit the file
/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist
and make sure GenericUSBXHCI is allowed up to the version you install.
"
--
Test: Connected USB3 drives show up as USB 3.0 Superspeed in System Report and has an speed of around 1000 Mbps. 5 times faster than with the USB 2 ports on my MacBookPro.

Btw, on my Win7 partion the speed through the USB3/e34 port is only slightly faster than the normal USB2 ports! I am using the latest (I believe) driver ASM104x_v1.16.12.0.

Thanks again!


I got the express card here:
http://www.amazon.com/GMYLE%C2%AE-ExpressCard-34mm-Adapter-Dual/dp/B0045BLP1S

Link to comment
Share on other sites

  • 2 weeks later...

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

Maybe already say that...

This version works for me in Yosemite very well, and I'm on a 7 series chipset without using any Kernel flags for the GenericUSBXHCI.kext: going to sleep, with my USB Stick attached and mounted...and the wake-up  for my ports works properly (no error or message by OSX), and my Usb stick is mounted as expected!   this is cool.

 

My DSDT notify when the System going to sleep in this way:

 

Method (_L0D, 0, NotSerialized)  

        {
            Notify (\_SB.PCI0.EHC1, 0x02)
            Notify (\_SB.PCI0.XHC, 0x02)
            Notify (\_SB.PWRB, 0x02)
            Notify (\_SB.LID0, 0x02)
        }
 
You can see EHC1 and XHC for USB 2.0 and USB 3.0 ports, manually added!
 
Micky
  • Like 1
Link to comment
Share on other sites

Maybe already say that...

This version works for me in Yosemite very well, and I'm on a 7 series chipset without using any Kernel flags for the GenericUSBXHCI.kext: going to sleep, with my USB Stick attached and mounted...and the wake-up  for my ports works properly (no error or message by OSX), and my Usb stick is mounted as expected!   this is cool.

 

My DSDT notify when the System going to sleep in this way:

 

Method (_L0D, 0, NotSerialized)  

        {

            Notify (\_SB.PCI0.EHC1, 0x02)

            Notify (\_SB.PCI0.XHC, 0x02)

            Notify (\_SB.PWRB, 0x02)

            Notify (\_SB.LID0, 0x02)

        }

 

You can see EHC1 and XHC for USB 2.0 and USB 3.0 ports, manually added!

 

Micky

Can you post your DSDT? I'd like to understand what objects return 0x0D from _PRW (so I can understand from which objects GPE event _L0D is triggered).

 

Thanks in advance.

  • Like 1
Link to comment
Share on other sites

Can you post your DSDT? I'd like to understand what objects return 0x0D from _PRW (so I can understand from which objects GPE event _L0D is triggered).

 

Thanks in advance.

Sure, it's just been patched a few hours ago and not yet finished ..but it works fine (also included your battery patch that works really well :) )

 

Micky

DSDT.aml.zip

  • Like 1
Link to comment
Share on other sites

OSX 10.7.5
XCode 4.4.1+CLI4.5.2
Sources from sf.net today

In file included from /Users/slice/Projects/genericusbxhci/Completer.cpp:10:
/Users/slice/Projects/genericusbxhci/GenericUSBXHCI.h:314: error: 'IOUSB3HubDescriptor' has not been declared
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

So, for compilation there must be 10.8 at least or include 10.8 headers into the project.

  • Like 1
Link to comment
Share on other sites

Zenith432 please patch for new version Yosemite GM C and Beta 4.

 

I think there is no required changes because I'm using that kext on Beta 4 and everything seems to work just fine.

Link to comment
Share on other sites

I can confirm that the kext Victor kindly provided (# 564) worked for my newly built Hackintosh with the following spec. :thumbsup_anim:

 

m/b: ASUS Sabertooth X79

CPU: Intel i7-4930K 3.4 Ghz 6 core

RAM: Corsair Vengeance DDR3 1866 64GB

Graphics: EVGA GTX760 SC 2048MB

 

OSX version: 10.9.5

 

All USB 3.0 ports are working.

The only glitch is that USB 3.0 Hub will be recognized as USB 2.0.

But I can live without USB Hub since the ASUS m/b has 4 USB 3.0 ports all together.

 

Before installing  the Victor's kext,  USB 3 ports were not functioning properly, but I did not notice it till I managed to fry two HDDs (2.5 inch and 3.5 inch). The 2.5 inch HDD became so hot, I burned my finger when I touched it. :(

Both HDD were connected to the back panel USB ports via external HDD connectors designed for USB 3.0.

 

Being a new Hackintosh builder, I was so naive to think that every hardware would work after the installation.

It was a rather expensive lesson, but now I know the importance of checking system report before actually start using the Hackintosh. :rolleyes:

Edited by cleofide
Link to comment
Share on other sites

My USB 3.0 ports started acting up with the 10.9.5 App Store update. Either the rear header ports are recognized or the MB headers for the front USB 3.0 ports. On one boot, the Verbatim 2TB external HDD drive is recognized (rear ports) and the USB 3.0 card reader (front ports) is not. Reboot and it's the other way around.

 

Any ideas?

 

MB is a GA-Z77X-UP5 TH.

Link to comment
Share on other sites

My USB 3.0 ports started acting up with the 10.9.5 App Store update. Either the rear header ports are recognized or the MB headers for the front USB 3.0 ports. On one boot, the Verbatim 2TB external HDD drive is recognized (rear ports) and the USB 3.0 card reader (front ports) is not. Reboot and it's the other way around.

 

Any ideas?

 

MB is a GA-Z77X-UP5 TH.

 

 

Did you try a bios update ? and latest kext updates ?

 

Mod bios for your MOBO is here:

http://www.jzelectronic.de/jz2/Downloads/z77xup5thf12j-mod.exe

 

;)

Link to comment
Share on other sites

Anyone interested in my apple developer signed kext that works without kext-dev-mode=1 ?

 

If so i will attach it. No offence to Zenith of course. Just trying to be helpful...

 

Edit: For Yosemite GM candidate it is of course...

yes I would like to try this, but didn't you post one like that earlier in the thread?

 

does this need to be in S/L/E? it seems to load fine from the clover 10.10 kext folder

 

I am having the trouble that the kext seems to load fine and it shows up in system profiler but the USB3 port does not work at all, not even on usb2 speeds.

 

when the kext loads during verbose boot i see the error that Bus 14 is already taken. Is this the problem? however the kext still loads and in system profiler it says it is on bus 0x0f so i guess it just moved to bus 15. could this be why it isn't working?

 

can anyone tell me what I should try to change when the kext loads but still doesn't work?

 

asus aspire 5750 on yosemite

Link to comment
Share on other sites

Anyone interested in my apple developer signed kext that works without kext-dev-mode=1 ?

 

If so i will attach it. No offence to Zenith of course. Just trying to be helpful...

 

Edit: For Yosemite GM candidate it is of course...

Please upload the kext I would like to try it.

Thx

 

@Zenith432 and other developers

With latest kext (fist page of this thread) for Yosemite I have some issues.

 

1) If I connect USB 3.0 disk with OS X loaded not mount it (no icon on Desktop). If I reboot with the disk connected mounted correctly.

 

2) When disk is connected to USB 3.0 sleep not work (monitor shutdown; PC is active). I can't wake it. All go in crash! Need to remove power cord and wait some minutes.

 

Here the xdcdump report without disk plugged:

 

./xhcdump endpoints 1

Found a device of class GenericUSBXHCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEX3@1C,3/IOPP/pci1033,194@0/GenericUSBXHCI

 

 

ioreg -lxrn GenericUSBXHCI

+-o GenericUSBXHCI  <class GenericUSBXHCI, id 0x100000213, registered, matched,$

  | {

  |   "IOClass" = "GenericUSBXHCI"

  |   "CFBundleIdentifier" = "net.osx86.kexts.GenericUSBXHCI"

  |   "IOProviderClass" = "IOPCIDevice"

  |   "Card Type" = "Built-in"

  |   "IOPCIClassMatch" = "0x0c033000"

  |   "ASMediaEDLTAFix" = Yes

  |   "IOUserClientClass" = "IOUSBControllerUserClient"

  |   "IOProbeScore" = 0x1

  |   "IOPowerManagement" = {"ChildrenPowerState"=0x3,"DevicePowerState"=0x3,"C$

  |   "IOPCIPauseCompatible" = Yes

  |   "IOMatchCategory" = "IODefaultMatchCategory"

  |   "IOPCITunnelCompatible" = Yes

  |   "Errata" = 0x0

  |   "UpdatedSleepPropertiesExists" = Yes

  |   "ISTKeepAway" = 0x1

  |   "ResetOnResume" = No

  | }

  | 

  +-o XHCI Root Hub SS Simulation@0  <class IOUSBRootHubDevice, id 0x10000022a,$

  | | {

  | |   "sessionID" = 0x37d8a73a

  | |   "Low Power Displayed" = No

  | |   "AAPL,current-extra-in-sleep" = 0x18e70

  | |   "idProduct" = 0x8007

  | |   "bNumConfigurations" = 0x1

  | |   "iManufacturer" = 0x2

  | |   "bcdDevice" = 0x300

  | |   "Bus Power Available" = 0x1c2

  | |   "bMaxPacketSize0" = 0x9

  | |   "USB Product Name" = "XHCI Root Hub SS Simulation"

  | |   "iProduct" = 0x1

  | |   "iSerialNumber" = 0x0

  | |   "USB Address" = 0x80

  | |   "IOUserClientClass" = "IOUSBDeviceUserClientV2"

  | |   "bDeviceSubClass" = 0x0

  | |   "bDeviceClass" = 0x9

  | |   "bcdUSB" = 0x300

  | |   "locationID" = 0x1d000000

  | |   "AAPL,current-extra" = 0x18e70

  | |   "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamil$

  | |   "AAPL,current-available" = 0x9c4

  | |   "bDeviceProtocol" = 0x3

  | |   "AAPL,max-port-current-in-sleep" = 0x9c4

  | |   "Ports" = 0x2

  | |   "USB Vendor Name" = "ACME Inc."

  | |   "Device Speed" = 0x3

  | |   "idVendor" = 0x5ac

  | |   "Requested Power" = 0x0

  | |   "IOGeneralInterest" = "IOCommand is not serializable"

  | |   "AAPL,standard-port-current-in-sleep" = 0x384

  | | }

  | | 

  | +-o AppleUSBHub  <class AppleUSBHub, id 0x10000022d, registered, matched, a$

  | |   {

  | |     "IOProbeScore" = 0xc350

  | |     "CFBundleIdentifier" = "com.apple.driver.AppleUSBHub"

  | |     "IOProviderClass" = "IOUSBDevice"

  | |     "IOClass" = "AppleUSBHub"

  | |     "bDeviceSubClass" = 0x0

  | |     "IOMatchCategory" = "IODefaultMatchCategory"

  | |     "Errata" = 0x0

  | |     "Interrupt Pending" = Yes

  | |     "IOPowerManagement" = {"DevicePowerState"=0x3,"CurrentPowerState"=0x3$

  | |     "IOUserClientClass" = "AppleUSBHSHubUserClient"

  | |     "bDeviceClass" = 0x9

  | |   }

  | |   

  | +-o IOUSBInterface@0  <class IOUSBInterface, id 0x10000022f, !registered, !$

  |     {

  |       "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFam$

  |       "bcdDevice" = 0x300

  |       "IOUserClientClass" = "IOUSBInterfaceUserClientV3"

  |       "idProduct" = 0x8007

  |       "bInterfaceSubClass" = 0x0

  |       "bConfigurationValue" = 0x1

  |       "locationID" = 0x1d000000

  |       "idVendor" = 0x5ac

  |       "iInterface" = 0x0

  |       "bAlternateSetting" = 0x0

  |       "bInterfaceProtocol" = 0x0

  |       "bInterfaceNumber" = 0x0

  |       "bInterfaceClass" = 0x9

  |       "bNumEndpoints" = 0x1

  |     }

  |     

  +-o XHCI Root Hub USB 2.0 Simulation@0  <class IOUSBRootHubDevice, id 0x10000$

    | {

    |   "sessionID" = 0x38020cc4

    |   "Low Power Displayed" = No

    |   "AAPL,current-extra-in-sleep" = 0x18e70

    |   "idProduct" = 0x8007

    |   "bNumConfigurations" = 0x1

    |   "iManufacturer" = 0x2

    |   "bcdDevice" = 0x300

    |   "Bus Power Available" = 0xfa

    |   "bMaxPacketSize0" = 0x9

    |   "USB Product Name" = "XHCI Root Hub USB 2.0 Simulation"

    |   "iProduct" = 0x1

    |   "iSerialNumber" = 0x0

    |   "USB Address" = 0x81

    |   "IOUserClientClass" = "IOUSBDeviceUserClientV2"

    |   "bDeviceSubClass" = 0x0

    |   "bDeviceClass" = 0x9

    |   "bcdUSB" = 0x200

    |   "locationID" = 0x1c000000

    |   "AAPL,current-extra" = 0x18e70

    |   "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamil$

    |   "AAPL,current-available" = 0x9c4

    |   "bDeviceProtocol" = 0x1

    |   "AAPL,max-port-current-in-sleep" = 0x9c4

    |   "Ports" = 0x2

    |   "USB Vendor Name" = "ACME Inc."

    |   "Device Speed" = 0x2

    |   "idVendor" = 0x5ac

    |   "Requested Power" = 0x0

    |   "IOGeneralInterest" = "IOCommand is not serializable"

    |   "AAPL,standard-port-current-in-sleep" = 0x1f4

    | }

    | 

    +-o AppleUSBHub  <class AppleUSBHub, id 0x10000023c, registered, matched, a$

    |   {

    |     "IOClass" = "AppleUSBHub"

    |     "CFBundleIdentifier" = "com.apple.driver.AppleUSBHub"

    |     "IOProviderClass" = "IOUSBDevice"

    |     "High Speed" = 0x1

    |     "IOPowerManagement" = {"DevicePowerState"=0x3,"CurrentPowerState"=0x3$

    |     "IOUserClientClass" = "AppleUSBHSHubUserClient"

    |     "IOProbeScore" = 0xc350

    |     "IOMatchCategory" = "IODefaultMatchCategory"

    |     "Errata" = 0x0

    |     "Interrupt Pending" = Yes

    |     "bDeviceSubClass" = 0x0

    |     "bDeviceClass" = 0x9

    |   }

    |   

    +-o IOUSBInterface@0  <class IOUSBInterface, id 0x10000023e, !registered, !$

        {

          "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFam$

          "bcdDevice" = 0x300

          "IOUserClientClass" = "IOUSBInterfaceUserClientV3"

          "idProduct" = 0x8007

          "bInterfaceSubClass" = 0x0

          "bConfigurationValue" = 0x1

          "locationID" = 0x1c000000

          "idVendor" = 0x5ac

          "iInterface" = 0x0

          "bAlternateSetting" = 0x0

          "bInterfaceProtocol" = 0x0

          "bInterfaceNumber" = 0x0

          "bInterfaceClass" = 0x9

          "bNumEndpoints" = 0x1

        }

Link to comment
Share on other sites

×
×
  • Create New...