Jump to content
93 posts in this topic

Recommended Posts

Hi folks,

I see it as appropriate, when we talk here about the USB problems that arise when installing El Capitan on intel/AMD Hackintosh, or my approach to use Yosemite kext drivers to fix the USB problems.

 

the first attempt V1, was for me the proof that it is the right way, the packet V2 has ultimately convinced me that it works. I do not need to patch any DSDT and all USB drives/ Ports operate as they have previously worked with Yosemite.

 


  • Like 5

The main problem I was having is it kept refusing to replace certain kexts saying resource is busy. I was using Lion though. I can use my old intel hackintosh but it's a pain because I only have one case lol (until I get my tax refund). I'll let you know if it works on my amd 6300.

The main problem I was having is it kept refusing to replace certain kexts saying resource is busy. I was using Lion though. I can use my old intel hackintosh but it's a pain because I only have one case lol (until I get my tax refund). I'll let you know if it works on my amd 6300.

 

 

FYI, duh, it was fixed when I restarted Lion and used MyHack (not sure if I can mention that here). It's an older version though.

 

Also figured out the quote issue (obviously been awhile since I posted on a forum).

  • 2 weeks later...

Dear Spakk,

 

thank you very much for your work. 

 

I've broken my system so many times trying to fix the usb ports, that I would like to be sure I'm doing it this time right.

 

My specs: Asus Sabertooth Z97, i7 4690K , 32 GB Ram, El Captain 10.11.3

 

Is this correct?

 

Step 1. Delete

 

IOUSBFamily.kext,

IOUSBMAssStorageDriver.kext,

IOUSBMassStorageClass.kext

or rename all drivers in to *bak.

 

from /System/Library/Extensions/

 

Step 2. Install drivers ( kexts ) from the package. 

 

 

All of them from package v2 ? There are pretty many in it.

 

 

Does it mean I just have to copy them over to /System/Library/Extensions/ or use app like KextWizard?

 

Step 3. Fix permissions and renew kernel.

 

Just type below into terminal?

 

sudo chown root: admin /

sudo kextcache system-prelinked kernel

sudo kextcache system caches 

  • Like 1

There's been quite a few topics and discussions on the matter. Rehabman has a substantial and most excellent guide for USB ports fixing under ElCapitan.

 

I, for one, stick to the USBinjector kext that I adjust according to my IOReg/DSDT. It's extremely simple and brings all USB ports to life within a matter of minutes:

1) Checkup DSDT code for devices EHC1, EHC2, XHCx

2) Rename USB2.0 controllers from EHC1/EHC2 to EH01/EH02 in the DSDT

3) Make a good/thorough note of all ports as listed under EH01/EH02, knowing that multiple ports may all be listed under a hub called PR01 or similar

4) Tune your USBInjector kexts so that:

  • it shows the correct port-count under each controller
  • each port or hub is set with its correct number
  • each port or hub is set to UsbConnector type 0 or 3 (0 is for USB2.0 type, 3 is for USB3.0 type)

5) Place USBInjector kext in /E/E, repair permissions and rebuild cache

6) Reboot and all USB ports should be functional

 

It makes for a much better solution than rolling back kexts from an earlier OS X version.

 

Example with Dell Latitude E6440:

  • Original unpatched DSDT shows 2 x USB2.0 controllers: EHC1 and EHC2
  • ECH1 controller has hub PR01, under which 8 ports are listed: PR11 to PR18
  • ECH2 controller has hub PR01, under which 6 ports are listed: PR11 to PR16
  • Devices ECH1 and EHC2 get renamed respectively to EH01 and EH02 in the DSDT
  • SMBIOS MacBookPro11,1 being used, Info.plist file of USBInjector kext is configured with:
  1. USB2.0 controllers MacBookPro11,1-EH01 and MacBookPro11,1-EH02

  2. Under MacBookPro11,1-EH01, port-count set to 1 and port (i.e. hub) PR01 is set to USBConnector = 3 and port = 1

  3. Under MacBookPro11,1-EH02, port-count set to 1 and port (i.e. hub) PR01 is set to USBConnector = 3 and port = 1

post-851564-0-52505300-1454372091_thumb.jpg
 
  • Like 4

There's been quite a few topics and discussions on the matter. Rehabman has a substantial guide for USB ports fixing under ElCapitan.

 

I, for one, stick to the USBinjector kext that I adjust according to my IOReg/DSDT. It's extremely simple and brings all USB ports to life within a matter of minutes:

1) Checkup DSDT code for devices EHC1, EHC2, XHCx

2) Rename USB2.0 controllers from EHC1/EHC2 to EH01/EH02

3) Make a good/thorough note of all ports as listed under EH01/EH02, knowing that multiple ports may all be listed under a hub called PR01 or similar

4) Tune your USBInjector kexts so that:

  • it shows the correct port-count under each controller
  • each port is set with its correct number
  • each port is set to USBconnector type 2 or 3 (2 is for USB2.0 type, 3 is for USB3.0 type)

5) Place USBInjector kext in /E/E, repair permissions and rebuild cache

6) Reboot and all USB ports should be functional

 

Sounds fun, but after step 2:

 

I could never boot again to my system and had to reinstall the system and all programs, what is a problem, as I use the hack as my main work machine:(

 

Not to mention that steps like "checking dsdt code" sound like magic for me. I will learn more, but doubt if I will gain enough knowledge to follow this procedure.

Post your IOREg and DSDT, I'll look into it.

 

It's easy enough to save the revised DSDT under a name such as "DSDT_new.aml" and manually call that revised DSDT at boot time. If it kills the installation, you just reboot without any option and revert to the previous working DSDT. Then Bob's your uncle... It really is how anyone should test DSDT in a safe manner.

  • Like 2

Post your IOREg and DSDT, I'll look into it.

 

It's easy enough to save the revised DSDT under a name such as "DSDT_new.aml" and manually call that revised DSDT at boot time. If it kills the installation, you just reboot without any option and revert to the previous working DSDT. Then Bob's your uncle... It really is how anyone should test DSDT in a safe manner.

 

Thank you. How do I make a copy of my DSDT? I've tried using dsdt editor, but when I choose "extract dsdt" nothing shows up:( 

( I'm using clover to boot if it matters and I boot from my harddrive, not usb flashdrive  )

You may have a patched DSDT in CLOVER/ACPI/patched folder of your EFI partition. Not a good sign if DSDTEditor cannot extract the DSDT (or show the loaded patched one) but you may try with Chameleon Wizard. You can extract the DSDT through the DSDT tab. Failing that, you can also try MacIASL. Clover also normally has the facility to extract all raw tables by pressing F4 at startup.

 

If none of those work, then there is an underlying issue. If you still have Windows, you can use Aida64 (can't remember the exact edition) to extract all your BIOS tables, including the DSDT.

  • Like 1

So, your your default USB2.0 (built-in) ports arrangements are as follows:

post-851564-0-83000400-1454417341_thumb.jpg

 

In the DSDT this is reflected by:

  • EHC1 controller @001D0000, 1 x hub PR01, 8 x ports numbered PR11 to PR18
  • EHC2 controller @001A0000, 1 x hub PR01, 6 x ports numbered PR11 to PR16

 

So those 2 x devices must be renamed to EH01 and EH02 in the DSDT. Then, you create your USBInjector kext where the plist contains:

1) an entry for controller MacPro3,1-EH01 with:

  • port-count = 1
  • port PR01 with UsbConnector = 0 and port (number) = 1

2) an entry for controller MacPro3,1-EH02 with:

  • port-count = 1
  • port PR01 with UsbConnector = 0 and port (number) = 1

 

You can grab my posted kext and edit the Info.plist file with a downloaded copy of PlistEditPro if you want (a TextEditor won't easily do due to XML format).

  • Like 1

So, your your default USB2.0 (built-in) ports arrangements are as follows:

attachicon.gifUSB2.0ports_IOReg.jpg

 

In the DSDT this is reflected by:

  • EHC1 controller @001D0000, 1 x hub PR01, 8 x ports numbered PR11 to PR18  -- > EDIT - This would be USB 2.0 ports ?
  • EHC2 controller @001A0000, 1 x hub PR01, 6 x ports numbered PR11 to PR16 -- > EDIT  - This would be USB 3.0 ports ?

 

Please let me take is step by step to understand well.

 

This 14 ports of USB2.0 type, which you have found are: ( I marked red from my specs for my motherboard )

 

Intel® Z97 chipset : 

6 x USB 3.0/2.0 port(s) (2 at back panel, blue, 4 at mid-board)

 

ASMedia® USB 3.0 controller : 

2 x USB 3.0/2.0 port(s) (2 at back panel, blue)

 

Intel® Z97 chipset : 

8 x USB 2.0/1.1 port(s) (4 at back panel, black, 4 at mid-board) 

 

If that is correct, I should change:

 

So those 2 x devices must be renamed to EH01 and EH02 in the DSDT.

 

Can I change it via MaciASL ? 

Hi arstherapia, have you tries the haswell.dmg from rampagedev? Rampagedev has created a matching SSDT.aml for your motherboard, moreover, still a SSDT-1.aml with USB Patch for 10.11 for Clover bootloader. click here

 

or download the attachment

Haswell.dmg.zip

Please let me take is step by step to understand well.

 

This 14 ports of USB2.0 type, which you have found are: ( I marked red from my specs for my motherboard )

 

Intel® Z97 chipset : 

6 x USB 3.0/2.0 port(s) (2 at back panel, blue, 4 at mid-board)

 

ASMedia® USB 3.0 controller : 

2 x USB 3.0/2.0 port(s) (2 at back panel, blue)

 

Intel® Z97 chipset : 

8 x USB 2.0/1.1 port(s) (4 at back panel, black, 4 at mid-board) 

 

If that is correct, I should change:

 

 

Can I change it via MaciASL ? 

Your ASMedia add-on card is a totally separate thing; I presume it's a PCIe card and, as such, I expect it to operate through its own driver. So let's forget about it here.

 

The changes I've mentioned apply ONLY to the on-board ports. that's why I wrote "USB2.0 (built-in) ports"... I have not looked at USB3.0 ports. Let's look at USB2.0 ports 1st.  In terms of controllers fitted to your motherboard:

  1. EHC1 is USB2.0 EHCI controller #1
  2. EHC2 is USB2.0 EHCI controller #2

 

For your info, USB controllers can be of the following types/standards:

  • EHCI for USB2.0 controllers,
  • XHCI for USB3.0 controllers
  • UHCI for USB1.x controllers
  • OHCI for USB1.1 controllers

Hence the name of associated devices in computers' DSDT and of Apple USB drivers in El Capitan (AppleUSBUHCIxxx / AppleUSBOHCIxxx / AppelUSBEHCIxxx / AppleUSBXHCIxxx as PlugIns of /S/L/E/IOUSBHostFamily kext).

 

With your additional info, we now know that you have 6 x combo USB3.0/USB2.0 capable ports and 8 x combo USB2.0/USB1.1 capable ports. Nevertheless, it's the UHCI controller(s) that'll manage USB1.0/1.1 devices, the ECHI controller(s) that'll manage USB2.0 devices and XCHI controller(s) that'll manage USB3.0 devices.

 

You'll find more info on the matter at the following links:

https://en.wikipedia.org/wiki/Host_controller_interface_(USB,_Firewire)

http://forum.osxlatitude.com/index.php?/topic/8730-asuspro-b53a-el-capitan-10113/&do=findComment&comment=56896

 

Yes, modify your DSDT with MacIASL (make sure to keep a backup of course!).

  • Like 1

Hi arstherapia, have you tries the haswell.dmg from rampagedev? Rampagedev has created a matching SSDT.aml for your motherboard, moreover, still a SSDT-1.aml with USB Patch for 10.11 for Clover bootloader. click here

 

or download the attachment

{censored}. I've done this and cannot access my computer now. It hangs on ... please press del or f2 to enter bios setting... but even that is not responding... {censored} {censored} {censored}.

I managed to get to clover boot via pendrive and when booting from my hdd in safe mode, it hangs on:

 

usb sound assertion in buildroot/Library/Caches/com.apple/xbs/...


After unplugging the usb soundcard, it hangs on iobluetooth. From what I've read, this has smth to do with graphics, so I tried to:

 

a) inject nvidia drivers via clover boot options - no luck

B) start in safe mode - no luck either.

 

wtf?


I think I've tried pretty everything. Booting in verbose mode, in safe mode, injecting nvidia, changing smbios options to MacPro 3,1... still it's a no go.

Hold on, I'll have a go at patching your DSDT and preparing your USBInjector kext.

 

I take it you did not save your patched DSDT under a different name that you called from the Clover config menu, right? Try and do that. If you had no DSDT before, make no reference to DSDT in the Clover menu entry.

  • Like 1

Thank you, Herve, my last hope is in you:)

That's strange, even if I delete the reference to DSDT in clover menu, set smbios to the one I used to succeed in booting - MacPro 3,1 and inject the nvidia drivers, I still cannot boot to my os - apple logo, bar progressing to the end and no-go further...

 

It happened many times before after installing clover bootloader via clover configurator or clover install. I always had to reinstall the system and all of programs, that is really a lot. I hope this time I will be more successfull with your help...

 

Thanks once again.

 

EDIT: I've tried to boot with -x -v -f GraphicsEnabler=NO nv_disable=1 , but still no success. Hangs on IOBluetoothHostController... 

Thank you so much! 

Just tell me please, how can I place this if I cannot boot into desktop...


I've managed to copy the files, however, it's still won't boot. Must have something wrong with clover bootoader, maybe the config.plist is wrong? I've also change it to different right before the crash... 

Avoid changing too many things, that's the best way to reach chaos. I don't really use Clover but, in case it uses "DSDT.aml" by default if such a file exists, you may try to force Clover to use a non-existing file, i.e. bypass the patched DSDT. You can try to refer to something like DSDT=None or DSDT=JoeBloggs to that effect.

 

Anyway, we're getting far too off-topic. Get your system back on line, then try the files I posted.

Enoch r2795. Works great for El Capitan. That's the only bootloader I use these days.

  • Needs DSDT + boot plist + SMBIOS plist in /Extra
  • Kexts for injection (no caching) go to /Extra/Extensions from where they're loaded at boot time if option KernelBooter_kexts is set to Yes
  • Kexts for caching go to /Library/Extensions (or /S/L/E)

Which Haswell CPU you have? i7-4690K does not exist. i5 does though... You'll probably also need option KernelPm set to Yes too.

  • Like 1
×
×
  • Create New...