Jump to content

GenericUSBXHCI USB 3.0 driver for OS X with source


928 posts in this topic

Recommended Posts

I still don't understand why I'm the only one with this problem, my z68 build freezes on login if I have a drive plugged into my usb3 ports (etron ej168). I have no problem with the ports under windows or Linux, so I don't think it's a hardware issue. The same drives work fine on my vivobook w/mavericks. I tried deleting appleusbxhci because I suspected they were interfering with each other but it made no difference. If I plug the drive in after I have been logged in for a minute or so it doesn't freeze. The worst part is that I can't find anything useful in the console logs. Where should I start for troubleshooting this?

Link to comment
Share on other sites

Any updates?  Any solutions to this issue with sleep?  Anyone??

I've had no luck with any combination of the kernel boot arguments or with or without DisableUAS set to true in the Info.plist. I'd like to know whether there is some known working combination one should try before I waste any time with a debug kext.

 

Typical failure mode:

When a usb3 disk remains attached after resume from suspend, disk writes to the disk lock up after the resume. The syslog shows timeout errors, and after the two very long timeouts, the disk is forceably unmounted.

Dec  3 21:28:50 hostname kernel[0]: IOSCSIPeripheralDeviceType00::setPowerState(0x707023d5417cdc71, 0 -> 4) timed out after 100133 ms
Dec  3 21:31:21 hostname kernel[0]: IOSCSIPeripheralDeviceType00::setPowerState(0x707023d5417cdc71, 4 -> 3) timed out after 100183 ms
Dec  3 21:31:30 hostname kernel[0]: [0xffffff8011636a00](0)/(5) Device not responding
Dec  3 21:31:30 hostname kernel[0]: disk1s4: device/channel is not attached.
Link to comment
Share on other sites

I've had no luck with any combination of the kernel boot arguments or with or without DisableUAS set to true in the Info.plist. I'd like to know whether there is some known working combination one should try before I waste any time with a debug kext.

 

Typical failure mode:

When a usb3 disk remains attached after resume from suspend, disk writes to the disk lock up after the resume. The syslog shows timeout errors, and after the two very long timeouts, the disk is forceably unmounted.

Dec  3 21:28:50 hostname kernel[0]: IOSCSIPeripheralDeviceType00::setPowerState(0x707023d5417cdc71, 0 -> 4) timed out after 100133 ms
Dec  3 21:31:21 hostname kernel[0]: IOSCSIPeripheralDeviceType00::setPowerState(0x707023d5417cdc71, 4 -> 3) timed out after 100183 ms
Dec  3 21:31:30 hostname kernel[0]: [0xffffff8011636a00](0)/(5) Device not responding
Dec  3 21:31:30 hostname kernel[0]: disk1s4: device/channel is not attached.

I'm seeing the same things you are.  Tried almost every combination known to man and nothing works. 

 

I do use jettison app which dismounts the drives before sleep.  The program is suppose to mount the drives after sleep, but no go.

 

Very odd.

Link to comment
Share on other sites

I think what we need is reset on resume (like you get with -gux_nosleep), but without some of the re-enumeration logic that is apparently triggering the volumes to be uncleanly ejected upon resume. The linux driver handles Etron usb3 in just this way.

Is -gux_nosleep supposed to already be working better than this, or is it a work in progress?

I still don't understand why I'm the only one with this problem, my z68 build freezes on login if I have a drive plugged into my usb3 ports (etron ej168). I have no problem with the ports under windows or Linux, so I don't think it's a hardware issue. The same drives work fine on my vivobook w/mavericks. I tried deleting appleusbxhci because I suspected they were interfering with each other but it made no difference. If I plug the drive in after I have been logged in for a minute or so it doesn't freeze. The worst part is that I can't find anything useful in the console logs. Where should I start for troubleshooting this?

There's a bunch of ways you could start to debug this. If you remotely login via ssh does that work OK? If so, you can monitor with ps what process is hanging, and then check with lsof to see what that hung process is up to.

 

I assume resume from suspend doesn't work for you either.

Link to comment
Share on other sites

I think what we need is reset on resume (like you get with -gux_nosleep), but without some of the re-enumeration logic that is apparently triggering the volumes to be uncleanly ejected upon resume. The linux driver handles Etron usb3 in just this way.

Is -gux_nosleep supposed to already be working better than this, or is it a work in progress?

There's a bunch of ways you could start to debug this. If you remotely login via ssh does that work OK? If so, you can monitor with ps what process is hanging, and then check with lsof to see what that hung process is up to.

 

I assume resume from suspend doesn't work for you either.

Thanks, i don't know why I didn't think of ssh. I don't know if resume from suspend works, but I kind of just assumed it wouldn't... To be honest I don't think I've ever put this computer to sleep. I'll test that tomorrow as well and report back.

 

ps is something I've only used a handful of times, what arguments should I use with it?

 

Link to comment
Share on other sites

Alright, I ssh'd into it, plugged in the drive, and logged out... When I logged back in it instantly rebooted. It wasn't doing that before. It also did something weird with my clover setup after that, autoboot isn't working and it defaulted to my clone drive. So that's really strange...

 

Edit: I found the culprit. I logged in holding shift and started my login items one by one. The culprit is NIHardwareAgent.app. It has no issue if the drive is plugged in AFTER the service is started, it's only when it tries to start after the drive is already mounted. Unfortunately, I need this app for my Maschine Controller to work, but at least it's a start. It looks like the app itself hasn't been updated since 2010, but I think it's referencing some kexts that have a recent update available.

 

Edit 2: The update didn't solve anything. I see 2 options: 1. Perhaps using iopciprimarymatch in gusbxhi will help? 2. Figure out a way to start the app as a launchdaemon or launchagent

 

BTW, I tested resume from suspend and it results in a black screen.

Link to comment
Share on other sites

  • 2 weeks later...

Big thanks to you for publishing this driver!

I've been searching for the last three days for a OS X driver for my cheap and cheerful Renesas USB 3.0 ExpressCard (£6.00 from eBay) to run on my cheap and cheerful (eBay) MacBook Pro (Lion 10.7.5). I was struggling like crazy to find anything.

Your driver installed (with Kext Wizard) and following a reboot, I can now run with my super fast 64Gb SanDisk Extreme USB 3.0 stick (SSD comparable speeds).

Can I suggest you tag this topic (and your sourceForge download) with UPD720202 "os x" driver, to help others like me?

Thanks again,

Brian

Link to comment
Share on other sites

 I am at the extent of my patience with my usb3 hd. I will attempt to explain the issue in grand detail without wasting too much of your time. I upgraded from SL to ML (10.8.5). Everything was stable pre ML so I feel like I can safetly rule out a failing hd. The only new device in the mix is a Nvidia 470 which requires more power than my old card. I have the current genericusbxhci.kext loaded and the drive is recognized. I am having persistent issues  writing to the drive. When I drag and drop a file or folder it will start the copy process, write, at most, 128 Mb's and hang for a while then eject the disk without re-initializing. The highest throughput I get during this operation is about 40-50 Mb/s. When I use cp within terminal, I get around 90 Mb/s.Individual files seem to write fine but folders with large file counts and large combined filesizes seem to be where the issue pops up.  Can anyone point me in the right direction with troubleshooting this? I even rsynced(grsync) to see what that would do. It completed the transfer but crashed the program. 

 

I don't see any errors in console. I can't read these xhcdumps with any degree of competancy. Even if it breaks during sleep would be better than this.

 

Here are the relevant devices:

Gigabyte h55m-usb3 (nec usb3 uPD720200 chip)

Seagate backup plus (firmware updated)  

 

Thanks in advance

Link to comment
Share on other sites

I am still having problems using my G-Raid USB 3.0 external on my ASM1042 chipset on an ASUS P9X79 WS.  I opened a ticket a few months back, but have not seen any response past testing with UAS enabled, which unfortunately did not work.

 

Do you have any other recommendations?
 

Anyone else able to use this driver in 10.8.5 (or 10.9?) with an external RAID array?

 

Thanks!

Link to comment
Share on other sites

Hi Guys.

 

after install genericxhci 1.2.7 and add flag "-gux_defer_usb2" in Config.plist. all my USBs works fine, but...

 

for no reasons why, my states and turbo, it is very very low, see:

8aRufMv.png

 

and my SSDT don't load!! look:

d2foEtG.png

Link to comment
Share on other sites

Does the same problem appears without the gux_defer_usb2 boot flag?

 

yes, with or without, i have the same problem.

 

i try use old version GenericXCHI (1.2.6), but nothing.

 

when i use PXHCD and old version IOUSBFamily and IOUSBMassStorageClass, works very fine (states and turbo), but i have only usb 2.0  :(

Link to comment
Share on other sites

Hello!

 

I just bought a generic PCIe card with a NEC/Renesas USB 3.0 controller.

 

I downloaded GenericUSBXHCI.kext and moved it to /Extra/Extensions, changed the version of GenericUSBXHCI to 1.2.7 in AppleKextExcludeList.kext, then ran a full myFix process with myHack.

 

Then I shutted down the computer, installed the PCIe card and started the computer.

 

A WD USB 2.0 external harddrive is working perfectly.

A WD USB 3.0 external harddrive takes ages to mount, then works but in USB 2.0 mode. If I eject and replug it, then it works in USB 3.0. Transfer rate varies from 50 and 80MB/s during the process, though.

 

What have I done wrong? :-)

Link to comment
Share on other sites

I have a Renessas card with uPD720200A chipset

 

I install the universal driver and it detects my card. If I plug a USB2 drive it detects it and mounts it with no problem. But on the System profiler it's not shown.

 

If I plug in a USB3 hard drive (a Toshiba 1Tb usb3 drive) it doesn't mount it. The drive light goes crazy on and off, but it doesn't mount it. 

 

Any hints on how can this be solved?

 

thanks

Link to comment
Share on other sites

Hi Zenith432 and thanks for the hard work. Hi all, I hope one of you could give me an help.

 

I can't get above 12,5 MB/s writing speeds on my Time Machine Volume, and this is a RAID0 volume with 2x USB3.0 disks... :/ 

I must be doing something wrong. 

 

I have a GA-Z68XP-UD5 with 1 x Renesas D720200 chip and 2 x VLI VL810 hubs (latest VLI firmware installed).

Any clues?

4-Port USB 3.0 Hub:
  Product ID: 0x0810
  Vendor ID: 0x2109  (VIA Labs, Inc.)
  Version:  3.88
  Speed: Up to 5 Gb/sec
  Manufacturer: VIA Labs, Inc.
  Location ID: 0x9d200000 / 2
  Current Available (mA): 900
  Current Required (mA): 2
d2 Quadra v3:
  Product ID: 0x104c
  Vendor ID: 0x059f  (LaCie)
  Version: 56.00
  Serial Number: 4D4E313232304633315058454B44
  Speed: Up to 5 Gb/sec
  Manufacturer: LaCie
  Location ID: 0x9d210000 / 4
  Current Available (mA): 900
  Current Required (mA): 0
  Capacity: 2 TB (2 000 396 746 752 bytes)
  Removable Media: Yes
  Detachable Drive: Yes
  BSD Name: disk7
  Partition Map Type: GPT (GUID Partition Table)
  S.M.A.R.T. status: Not Supported
  Volumes:
EFI:
  Capacity: 209,7 MB (209 715 200 bytes)
  BSD Name: disk7s1
  Content: EFI
disk7s2:
  Capacity: 2 TB (2 000 052 772 864 bytes)
  BSD Name: disk7s2
  Content: Apple_RAID
Boot OS X:
  Capacity: 134,2 MB (134 217 728 bytes)
  BSD Name: disk7s3
  Content: Apple_Boot
  Volume UUID: E1494A08-1C52-35C6-87EE-66D4487EDE5A

d2 Quadra v3:
  Product ID: 0x104c
  Vendor ID: 0x059f  (LaCie)
  Version: 56.00
  Serial Number: 4D4E313232304633315231555A44
  Speed: Up to 5 Gb/sec
  Manufacturer: LaCie
  Location ID: 0x9d220000 / 3
  Current Available (mA): 900
  Current Required (mA): 0
  Capacity: 2 TB (2 000 396 746 752 bytes)
  Removable Media: Yes
  Detachable Drive: Yes
  BSD Name: disk6
  Partition Map Type: GPT (GUID Partition Table)
  S.M.A.R.T. status: Not Supported
  Volumes:
EFI:
  Capacity: 209,7 MB (209 715 200 bytes)
  BSD Name: disk6s1
  Content: EFI
disk6s2:
  Capacity: 2 TB (2 000 054 960 128 bytes)
  BSD Name: disk6s2
  Content: Apple_RAID
$ xhcdump caps
Found a device of class GenericUSBXHCI: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPCI2PCIBridge/PXSX@0/GenericUSBXHCI
Darwin 13.0.0
Kext Version 1.2.7
Vendor 0x1033, Device 0x194, Revision 0x4
CapLength  32
HCIVersion 0x96
MaxSlots 32, MaxIntrs 8, Rsvd(1) 0, MaxPorts 4
IST 1 microframes, ERST Max 2, Rsvd(2) 0, SPR N, Max Scratchpad Bufs 0
U1 Device Exit Latency 0, Rsvd(3) 0, U2 Device Exit Latency 0
AC64 Y, BNC Y, CSZ N, PPC Y, PIND N, LHRC N, LTC Y, NSS Y, Rsvd(4) 0x2, MaxPSASize 32
  xHC Extended Cap ID 1, Specific 0
    Legacy CTLSTS 0x40010000
  xHC Extended Cap ID 2, Specific 0x300
    Supported Protocol Name 0x20425355 PortOffset 1 PortCount 2 ProtocolDefined 0
  xHC Extended Cap ID 2, Specific 0x200
    Supported Protocol Name 0x20425355 PortOffset 3 PortCount 2 ProtocolDefined 0
DBOff  0x800
RTSOff 0x600
PageSize 4096
$ kextstat | grep Gen
   46    0 0xffffff7f815b8000 0x1b000    0x1b000    net.osx86.kexts.GenericUSBXHCI (1.2.7) <40 11 7 5 4 3>
Link to comment
Share on other sites

Hi guys!

This driver has worked fine with NEC uPD720200A (on P8Z68 DELUXE GEN3) for months, THANKS ZENITH432!

 

I want to buy an USB 3.0 expresscard (54) for my HP 6720s. I made some researches and there are three different chips in the expresscards I found on the net:

 

- Frescologic FL1100

- NEC uPD720202

- ASMedia ASM1042

 

What do you think is better?

 

Thanks!

Link to comment
Share on other sites

The ASM1042 needs a third-party driver to work and it's only xHCI 0.96 compliant. On the plus side, this allows it to work with older systems. Both of my Asus boards use it and one is running 10.6.8.

 

From what I've seen online, the FL1100 is natively supported from 10.8.2 onwards.

  • Like 1
Link to comment
Share on other sites

The ASM1042 needs a third-party driver to work and it's only xHCI 0.96 compliant. On the plus side, this allows it to work with older systems. Both of my Asus boards use it and one is running 10.6.8.

 

From what I've seen online, the FL1100 is natively supported from 10.8.2 onwards.

 

So I think the FL1100 is the best one. It's also used in the trash bin newest Mac Pro (http://www.ifixit.com/Teardown/Mac+Pro+Late+2013+Teardown/20778)

 

The problem is that the expresscard with FL1100 has 3 usb 3.0 ports. The other ones has 2 ports and a DC power (from amazon: "Built-in DC Jack connector for receiving extra power to meet USB 3.0 +5V/900mA power output standard. Hot-swapping feature allows you to connect/disconnect devices without powering down the system").

 

Do I need that feature?

Link to comment
Share on other sites

The DC power seems to be there for bus-powered devices like USB 3 portable hard disks that require more power. Retina iPads also need this for charging. Presumably you can't get that much power from an expresscard connection.

 

I've no experience with expresscard adapters so maybe someone who has can tell you how the extra power works. You probably will need it unless you're planning to use USB3 devices with their own power source.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...