Jump to content

GenericUSBXHCI USB 3.0 driver for OS X with source


928 posts in this topic

Recommended Posts

Someone with Intel xHCI + 3rd-Party xHCI try setting the IOProbeScore in the kext to 100, and see if that lets the Intel controller use AppleUSBXHCI & the 3rd party controller GenericUSBXHCI.

I tried it but my VIA ports didn't work. Intel ports are fine.

 

Also, the new version of GenericUSBXHCI in GitHub killed all of my USB ports. Not sure what happened.

Link to comment
Share on other sites

Also, the new version of GenericUSBXHCI in GitHub killed all of my USB ports. Not sure what happened.

IOProbeScore is set to 1, try to increase over 1000 EDIT only on the repo, look at precompiled kext here:https://github.com/theracermaster/GenericUSBXHCI/releases

Edited by Micky1979
Link to comment
Share on other sites

IOProbeScore is set to 1, try to increase over 1000 EDIT only on the repo, look at precompiled kext here:https://github.com/theracermaster/GenericUSBXHCI/releases

The pre compiled kext also kills all of my USB ports. Somewhat dangerous running OSX without USB. So with the updates given to GenericUSBXHCI both native Intel ports and VIA ports stopped working.

Link to comment
Share on other sites

IOProbeScore is set to 1, try to increase over 1000 EDIT only on the repo, look at precompiled kext here:https://github.com/theracermaster/GenericUSBXHCI/releases

 

 

My X79 Sabertooth has all ASMedia1042 for USB3.  They are working with your updated driver but the Fresco FL1100 PCIe card stops working.  I wonder if I can add a second driver for that one while using the Generic driver?

Link to comment
Share on other sites

The pre compiled kext also kills all of my USB ports. Somewhat dangerous running OSX without USB. So with the updates given to GenericUSBXHCI both native Intel ports and VIA ports stopped working.

 

What's the device ID of your VIA controller? I added eratta for the VL800/801, this could be why your USB broke.

My X79 Sabertooth has all ASMedia1042 for USB3.  They are working with your updated driver but the Fresco FL1100 PCIe card stops working.  I wonder if I can add a second driver for that one while using the Generic driver?

 

Hmm... I probably should disable the kext for FL1100 & Intel chipsets. Unfortunately I'll be extremely busy this next week, so I won't be able to get any major updates in.

  • Like 2
Link to comment
Share on other sites

What's the device ID of your VIA controller? I added eratta for the VL800/801, this could be why your USB broke.

 

Hmm... I probably should disable the kext for FL1100 & Intel chipsets. Unfortunately I'll be extremely busy this next week, so I won't be able to get any major updates in.

 

 

No rush on this.  When your ready let me know I will run any tests you want.  Thanks for the effort.

Link to comment
Share on other sites

What's the device ID of your VIA controller? I added eratta for the VL800/801, this could be why your USB broke.

 

Oh okay, I see. Yeah my motherboard uses the VL805 controller. From the patched AppleUSBXHCI kext, all available VIA controllers are VL800, VL801, VL805 and VL806. 

Link to comment
Share on other sites

Hmm... I probably should disable the kext for FL1100 & Intel chipsets. Unfortunately I'll be extremely busy this next week, so I won't be able to get any major updates in.

I have done this the other way around:

<key>IOPCIPrimaryMatch</key>
<string>0x34831106</string> 
Now only VL805 uses the kext.

 

P.S.: 

The kext is working for me and there are no issues after sleep but:

I have slower reboot and power-off even if no device is connected.

A mounted USB-Pendrive doesn't appear after reboot. From a cold-boot it is mounting fine. 

 

Linux lspci

05:00.0 USB controller [0c03]: VIA Technologies, Inc. VL805 USB 3.0 Host Controller [1106:3483] (rev 01) (prog-if 30 [XHCI])
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:5007]
	Flags: bus master, fast devsel, latency 0, IRQ 25
	Memory at f7c00000 (64-bit, non-prefetchable) [size=4K]
	Capabilities: [80] Power Management version 3
	Capabilities: [90] MSI: Enable+ Count=1/4 Maskable- 64bit+
	Capabilities: [c4] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Kernel driver in use: xhci_hcd
Link to comment
Share on other sites

Since it seems to not be crashing anymore....

 

I just pushed an update to GenericUSBXHCI.kext: https://github.com/RehabMan/OS-X-Generic-USB3

 

Changes:

- it will only attach to XHCI controllers that are not Intel and not Fresco Logic

- added kernel flag -gux_disable (the kext will disable itself to avoid any post-probe panic)

- removed the checking for 10.11 (it wasn't working anyway - :)

 

It "sort of" works on my pre-XHC 1.0 NEC/Renesas equipped Intel DH67GD, but is a bit flakey (sometimes have to insert the device more than once for it to be recognized).

 

I have an FL1100 attached to the USB3 ports on case top panel, so I probably won't use the Renesas ports much.

  • Like 7
Link to comment
Share on other sites

Since it seems to not be crashing anymore....

 

I just pushed an update to GenericUSBXHCI.kext: https://github.com/RehabMan/OS-X-Generic-USB3

 

Changes:

- it will only attach to XHCI controllers that are not Intel and not Fresco Logic

- added kernel flag -gux_disable (the kext will disable itself to avoid any post-probe panic)

- removed the checking for 10.11 (it wasn't working anyway - :)

 

It "sort of" works on my pre-XHC 1.0 NEC/Renesas equipped Intel DH67GD, but is a bit flakey (sometimes have to insert the device more than once for it to be recognized).

 

I have an FL1100 attached to the USB3 ports on case top panel, so I probably won't use the Renesas ports much.

 

Nice work! I think completely blacklisting Fresco Logic controllers might be a bit too much, it might be better to to allow certain older chipsets like FL1000 which are only xHCI 0.96 compliant (won't work with AppleUSBXHCI). NEC/Renesas might need extra errata, but I personally have no idea (I don't have non-Intel xHCI).

Link to comment
Share on other sites

Nice work! I think completely blacklisting Fresco Logic controllers might be a bit too much, it might be better to to allow certain older chipsets like FL1000 which are only xHCI 0.96 compliant (won't work with AppleUSBXHCI). NEC/Renesas might need extra errata, but I personally have no idea (I don't have non-Intel xHCI).

FL1009 is supported with a simple injector kext (or FakeID, or DSDT patch, etc)...

Not sure about FL1000.... maybe it will work the same way?

 

Note that I have a //REVIEW comment at the hardcoded blacklist logic. It would be better to do that through an Info.plist mechanism, but I'll wait for concrete examples to determine requirements.

 

NEC/Renesas used to work pretty well with GenericUSBXCHI.kext in 10.9 (and earlier), but something changed in 10.10 in the OS X base classes that makes it flakey as far as detecting plugged devices (they seem to always work if plugged in prior to rebooting).

Link to comment
Share on other sites

Since it seems to not be crashing anymore....

 

I just pushed an update to GenericUSBXHCI.kext: https://github.com/RehabMan/OS-X-Generic-USB3

 

Changes:

- it will only attach to XHCI controllers that are not Intel and not Fresco Logic

- added kernel flag -gux_disable (the kext will disable itself to avoid any post-probe panic)

- removed the checking for 10.11 (it wasn't working anyway - :)

 

It "sort of" works on my pre-XHC 1.0 NEC/Renesas equipped Intel DH67GD, but is a bit flakey (sometimes have to insert the device more than once for it to be recognized).

 

I have an FL1100 attached to the USB3 ports on case top panel, so I probably won't use the Renesas ports much.

 

 

Nice Work Rehabman!!  I'll test this out tonight. There is one user that brought to my attention and I verified that for the ASMedia1042 when you plugged in a flash drive and then unmount, it would not re-mount and only mount in another port.  Same thing happens to each port until none will mount anymore.

 

I have not tried your update, this was on the last update before yours.

 

Does the hub and mounted device show up in System Preferences?

 

Thanks

Link to comment
Share on other sites

Nice Work Rehabman!!  I'll test this out tonight. There is one user that brought to my attention and I verified that for the ASMedia1042 when you plugged in a flash drive and then unmount, it would not re-mount and only mount in another port.  Same thing happens to each port until none will mount anymore.

 

I have not tried your update, this was on the last update before yours.

No real changes other than what I detailed above. The problem you mention is probably still there.

 

Does the hub and mounted device show up in System Preferences?

No. I think it would require a rewrite to work against Apple's new USB interfaces. Which for controllers, are not really documented... source code not published.

  • Like 1
Link to comment
Share on other sites

NEC/Renesas used to work pretty well with GenericUSBXCHI.kext in 10.9 (and earlier), but something changed in 10.10 in the OS X base classes that makes it flakey as far as detecting plugged devices (they seem to always work if plugged in prior to rebooting).

 

I have this with ASM1042 as well. I tried GenericUSBXHCI to see if it worked ok with 10.11.2 on my Z68 but I'll be sticking with mXHCD for now. I only need storage support here anyway.

Link to comment
Share on other sites

Since it seems to not be crashing anymore....

 

I just pushed an update to GenericUSBXHCI.kext: https://github.com/RehabMan/OS-X-Generic-USB3

 

Changes:

- it will only attach to XHCI controllers that are not Intel and not Fresco Logic

- added kernel flag -gux_disable (the kext will disable itself to avoid any post-probe panic)

- removed the checking for 10.11 (it wasn't working anyway - :)

 

It "sort of" works on my pre-XHC 1.0 NEC/Renesas equipped Intel DH67GD, but is a bit flakey (sometimes have to insert the device more than once for it to be recognized).

 

I have an FL1100 attached to the USB3 ports on case top panel, so I probably won't use the Renesas ports much.

 

Your version has finally enabled my VL805 ports on El Captain. Also, the bluetooth dongle works perfectly and is detected correctly. Great work!

Link to comment
Share on other sites

Bitbucket zip files dead link?  Anyone with a copy I can grab.  I wanted to test on my Sabertooth X79.

 

Edited:

 

I just saw a message at the top "We're changing our IP addresses on 15 December 2015 at 00:00 UTC."

Link to comment
Share on other sites

No. At least not here.

 

 

I tried another PC no issues.  Rebooted the one that got dead link and now the file is available.   It was my end.   I know it should not have fixed the problem about not being able to re-mount but whatever fixes you did also took care of that works 100% on my end.

 

Thank you very much for this!!

Link to comment
Share on other sites

Since it seems to not be crashing anymore....

 

I just pushed an update to GenericUSBXHCI.kext: https://github.com/RehabMan/OS-X-Generic-USB3

 

Changes:

- it will only attach to XHCI controllers that are not Intel and not Fresco Logic

- added kernel flag -gux_disable (the kext will disable itself to avoid any post-probe panic)

- removed the checking for 10.11 (it wasn't working anyway - :)

 

It "sort of" works on my pre-XHC 1.0 NEC/Renesas equipped Intel DH67GD, but is a bit flakey (sometimes have to insert the device more than once for it to be recognized)...

I tried your build with my VL805:

 

The kext is working.

No issues after sleep.

All tested devices where recognized immediately.

Slower reboot and power-off even if no device is connected.

A mounted USB-Pendrive doesn't be recognized after a reboot.

Link to comment
Share on other sites

Haven't tried this yet, but it seems all those connect / reconnect problems might be not 10.11 specific. I also got them with 10.10. In my case for a device (iPhone, iPad) to be recognized I had to either connect it at boot, or connect another device to a different port. Anyways, this was the most glaring problem I had - so if this would be fixed we might have a reliable "native" solution again, instead of having to buy a dedicated (FL1100 based) PCI card.

Link to comment
Share on other sites

Haven't tried this yet, but it seems all those connect / reconnect problems might be not 10.11 specific. I also got them with 10.10. In my case for a device (iPhone, iPad) to be recognized I had to either connect it at boot, or connect another device to a different port. Anyways, this was the most glaring problem I had - so if this would be fixed we might have a reliable "native" solution again, instead of having to buy a dedicated (FL1100 based) PCI card.

The unreliable connection problems were present in 10.10. Nothing new here.

I think completely blacklisting Fresco Logic controllers might be a bit too much, it might be better to to allow certain older chipsets like FL1000 which are only xHCI 0.96 compliant (won't work with AppleUSBXHCI).

New build 1.2.11.

 

Implemented a whitelist/blacklist in Info.plist (DeviceWhitelist/DeviceBlacklist)

 

The whitelist contains full vendor_device specifications and overrides blacklist.

The blacklist can contain vendors or full vendor_device specifications.

 

The whitelist overrides the blacklist.

 

Current whitelist: 1b73_1000 (FL1000)

Current blacklist: 8086, 1b73

 

Hence, all Intel controllers are blacklisted and all Fresco Logic controllers are blacklisted except FL1000.

 

Note: I guessed on the device-id for FL1000.

Link to comment
Share on other sites

 

I remember that
before Zenith432, come with GenericUSBXHCI.kext
I used two kexts the CalDigit, to my old
ASMedia 1042, worked well, someone already tested these
kexts in 10.11?

 

If your ASmedia is 1b211042 is the same as mine, tested in 10.11.2 and works, but don't show bus and device attached in System Info

http://www.insanelymac.com/forum/topic/307756-how-to-fix-asmedia-usb-30-on-el-capitan/?p=2197465

Link to comment
Share on other sites

@Mirone: If you were happy with the CalDigit, I'd stay with those or use the Oyen Digital driver (mXHCD). These drivers are fine for storage devices.

 

GenericUSBXHCI will allow other features like audio and charging but starting with 10.10 (and continuing with 10.11) it has trouble detecting devices if they're powered up or attached after startup.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...