Popular Post wegface Posted October 2, 2015 Popular Post Share Posted October 2, 2015 (edited) With 10.11 comes an all new USB stack, which makes life for hackintosh somewhat difficult. This guide will show how to fully fix usb 2/3 without touching SLE. Important to note is that only the Intel USB3 Controller ports will work, 3rd party USB3 controllers are not suppoted like the ASMedia or NEC ones. Tools needed: IOJones and Maciasl. http://sourceforge.net/projects/maciasl/ http://sourceforge.net/projects/iojones/ usbviewer (to achieve mapping under windows) 1.First we need a working yosemite install so we can correctly map our USB ports (important). Open IOJones with no (unnecessary for this process) USB devices connected. Connect a USB device and Under EHC1 or XHC1 some green entries will appear. Make a note of the port it added to: like HS01 or SSP1. Remove the device and the entries will turn red. Repeat this process for every USB port on the system. HS = USB 2.0, SSP = USB 3.0. Take a photo of your ports (or draw one) and mark each port to its correct name. For USB 3.0 ports, first connect a USB 2.0 device and then a usb 3.0 to get both port names (USB 3 ports count as two). You end up with a map like so: 2. Now open Maciasl and load your DSDT. Look under XHC1 and EHC1 you need to note the ADR of each port like this: For usb 2.0 (HS) one will be - 01 00 00 00 , two will be 02 00 00 00 etc Usb 3.0 (SSP) they start at 10 so one will be: 10 00 00 00, two will be 11 00 00 00 etc. Now we need to rename the 3 devices to prevent apple kexts from loading a personality for them, change EHC1 to EH01 or EHC2 to EH02 and XHC1 to XHC. Here is simple dsdt patch to achieve this: # Rename USB devices for OSX 10.11 GM support (remember to use injector with this)into device label EHC1 set_label begin EH01 end;into device label EHC2 set_label begin EH02 end;into device label XHC1 set_label begin XHC end;into_all all code_regex EHC1 replaceall_matched begin EH01 end;into_all all code_regex EHC2 replaceall_matched begin EH02 end;into_all all code_regex XHC1 replaceall_matched begin XHC end; 3. Now we make an injector kext for our new personalities, here is an example injector for 8/9 series chipset. USB_Series8_Injector.zip USB_Series9_Injector.zip This injector has 3 personalities, iMac14,2-EH01 EH02 and XHC, rename them to match your smbios and your dsdt. (if needed) In each personality, is also a property called 'model' you need to specify the smbios there too like iMac14,2. In the XHC you will see MergeProperties, which where the dreaded port count is specified, and ports. They may look blank but they are not, in Xcode- (or a plist editor) right click and show raw keys. Port-count is misleading, as its not actually the count but instead it is the highest port ADR, so if SSP6 is your highest one and its ADR is 15 00 00 00 then port-count will be 15 00 00 00. Under ports, we need to make an entry for each port we mapped earlier, with correct name, and ADR. Under each entry is also UsbConnector, 3 for means a normal usb socket, 255 means internal connector, set these to correct value. If you end up with a total of more than 15 you need to make decision on which ports you need as 15 is our max limit- remembering that 1 USB 3.0 = 2 ports. When everything in the injector matches your map, save the injector and put it to clover kext folder. DSDT to clover/ACPI/patched. Reboot and you should have all your full speed ports. All credits for this guide go to PJALM. Edited for some silly mistakes on my part. (also added rename dsdt patch) (added new injectors, and removed original one) (Added redistribution notice) Edit: According to arix98, the mapping stage can also be achieved in windows, with an app called USBviewer. This can be downloaded free from here: usbviewer This could make life easier for people who have no working yosemite install. (thanks to arix98). Attention: Please do not redistribute these injectors modified or otherwise without saying where they came from. If people continue to just take our work and claim as their own it disrespects us developers. You are free to modify and post them elsewhere, give to friends, link where ever, just please give some sort of link so the users can get back here to where they originated that's all we ask. Thanks. UPDATE: Do not use the 9 series injector for 10.11.1 onwards, as it has native 9 series support. Edited October 24, 2015 by wegface 40 Link to comment Share on other sites More sharing options...
Quadie Posted October 2, 2015 Share Posted October 2, 2015 This should be intresting to try later. Thanks Weggy and PJ! 1 Link to comment Share on other sites More sharing options...
wegface Posted October 2, 2015 Author Share Posted October 2, 2015 To note: For series 7 and below, the procedure still applies, but is slightly different. I will update this post with details asap. 2 Link to comment Share on other sites More sharing options...
Saysko Posted October 2, 2015 Share Posted October 2, 2015 oui cela minterresse car jai une p8z77 v deluxe car les port arriere ne fonctionne pas Link to comment Share on other sites More sharing options...
TheEmoEmu Posted October 2, 2015 Share Posted October 2, 2015 Hi, I am trying this on my laptop but when I plug in a USB device in to port 1 (for example) it comes up as "a"(for example), and then if I unplug it and then plug it back in, in the same port, it comes up as "c" (for example). Is there something I'm missing here? It uses the Lynx Point-LP shipset which I believe is a lower powered variant of an 8 series chipset. Link to comment Share on other sites More sharing options...
jperkins909 Posted October 2, 2015 Share Posted October 2, 2015 Thanks this works for me using clover dsdt patch posted below with usb injector kext also below on z97 using iMac14,1 profile. Now I have IOUSBHostFamily back to original and don't have to worry about losing USB3 speeds after updates. I did add the AppleUSBXHCILPTH entry under IOKitPersonalities to have matching IOPCIPrimaryMatch <string>DSDT.aml</string> <key>Patches</key> <array> <dict> <key>Comment</key> <string>Rename XHC to XH01 (1 of 2)</string> <key>Find</key> <data> AhBBcA== </data> <key>Replace</key> <data> AllBcA== </data> </dict> <dict> <key>Comment</key> <string>EHC2 [to] EH02</string> <key>Find</key> <data> RUhDMg== </data> <key>Replace</key> <data> RUgwMg== </data> </dict> <dict> <key>Comment</key> <string>Rename XHC to XH01 (2 of 2)</string> <key>Find</key> <data> WEhDXw== </data> <key>Replace</key> <data> WEgwMQ== </data> </dict> <dict> <key>Comment</key> <string>EHC1 [to] EH01</string> <key>Find</key> <data> RUhDMQ== </data> <key>Replace</key> <data> RUgwMQ== </data> </dict> </array> USB_Injector.kext.zip 2 Link to comment Share on other sites More sharing options...
joe75 Posted October 2, 2015 Share Posted October 2, 2015 Works!! 1 Link to comment Share on other sites More sharing options...
Hannibal Posted October 2, 2015 Share Posted October 2, 2015 Will this work on my Asus motherboard? Asus z87-a. Link to comment Share on other sites More sharing options...
jperkins909 Posted October 2, 2015 Share Posted October 2, 2015 Why rename XHC to XH01? XHC is not in the apple kexts XHC1 is. I did that to enable port restriction (it matches the renamed IONameMatch now) and have an easy to edit config for use in the future if I needed to rename XHC1. I suppose I could rename IONameMatch to XHC and remove that entry to keep port restriction, but why. Link to comment Share on other sites More sharing options...
wegface Posted October 2, 2015 Author Share Posted October 2, 2015 Will this work on my Asus motherboard? Asus z87-a. Yes, should do. Link to comment Share on other sites More sharing options...
Gogeta5026 Posted October 2, 2015 Share Posted October 2, 2015 Thank You very much for this... After reading about this for the past week and NOBODY explaining this simpler... I used your USB_Injector.kext.zip with no modifications and got 2 of my USB3 working. It's just after reading so many of these things my mind is a total mess and so confused. I was wondering if anybody can help me get the bottom 2 working? What should be added to the kext in order to get this work 100%? The picture attached is my motherboard, ASUS GRYPHON Z87. The 2 USB3 is what is working. The bottom 2 I need help with. Any help would be great! Link to comment Share on other sites More sharing options...
theconnactic Posted October 3, 2015 Share Posted October 3, 2015 Hello, Weg and PJALM! As I said in another topic, before Weg directed me to this one: under Yosemite, of course, all of my USB3 ports work at full speed, and under El Capitan, they all work with USB2 maximum speed. So I thought this guide would be perfect for me, but... What to do if my vanilla DSDT already shows XHC instead of XHC1 etc., and all the SSP addresses are 0? Please take a look: System DSDT.zip This is an ASUS Gryphon Z97 (an otherwise really nice board), with 6 USB3 blue ports (2 front from mid-board, four at the back panel) and 4 USB2 black ports (all at the back panel) plus more 4 USB2 ports at mid-board that I simply don't use because of limitations of my case. Please take also a look at my IOJones output (different from expected: it doesn't differentiate between SSP and HS): Looking for directions, since I don't know how to deal with these particularities. All the best! 1 Link to comment Share on other sites More sharing options...
magnifico Posted October 3, 2015 Share Posted October 3, 2015 @Weg @PJ If i use only injector kext ...without rename usb device in DSDT ...what appenead ? Link to comment Share on other sites More sharing options...
calibre™ Posted October 3, 2015 Share Posted October 3, 2015 @Weg @PJ If i use only injector kext ...without rename usb device in DSDT ...what appenead ? It does nothing Link to comment Share on other sites More sharing options...
theconnactic Posted October 3, 2015 Share Posted October 3, 2015 @Weg @PJ If i use only injector kext ...without rename usb device in DSDT ...what appenead ? I have the answer for you, Magnifico: I just tested the 9-Series injector as is, without any alterations (since I simply cannot follow the guide): it worked, and now I have my ports back. Thank you, PJALM and Weg, and perhaps you should add this piece of info to your guide: if your devices already have the appropriate names (XHC instead of XHC1, etc), you should try and use the injector as is. All the best! It does nothing It did for me. 1 Link to comment Share on other sites More sharing options...
magnifico Posted October 3, 2015 Share Posted October 3, 2015 I have the answer for you, Magnifico: I just tested the 9-Series injector as is, without any alterations (since I simply cannot follow the guide): it worked, and now I have my ports back. Thank you, PJALM and Weg, and perhaps you should add this piece of info to your guide: if your devices already have the appropriate names (XHC instead of XHC1, etc), you should try and use the injector as is. All the best! It did for me. Ok..so i can use only injector without modified DSDT..because i dont understand never ...about DST PS: Now you see all USB3 HISpeed in system ? 1 Link to comment Share on other sites More sharing options...
PippoX0 Posted October 3, 2015 Share Posted October 3, 2015 I wanna give a try Thanks Link to comment Share on other sites More sharing options...
calibre™ Posted October 3, 2015 Share Posted October 3, 2015 I have the answer for you, Magnifico: I just tested the 9-Series injector as is, without any alterations (since I simply cannot follow the guide): it worked, and now I have my ports back. Thank you, PJALM and Weg, and perhaps you should add this piece of info to your guide: if your devices already have the appropriate names (XHC instead of XHC1, etc), you should try and use the injector as is. All the best! It did for me. Ofcorz coz the name matches whats in yout dsdt 1 Link to comment Share on other sites More sharing options...
theconnactic Posted October 3, 2015 Share Posted October 3, 2015 Ok..so i can use only injector without modified DSDT..because i dont understand never ...about DST PS: Now you see all USB3 HISpeed in system ? I don't know if you can: I guess it depends on the board. Mine - Z97 Gryphon - seems to be one of the lucky ones. You should try and see. P.S.: Yes! And now my portable Samsung M3 has RW speeds over 80mb/s again (tested with BlackMagic). P.P.S.: Mind you, I use a vanilla ("virgin") DSDT: no patches since I moved from a Gigabyte H77 to my current Asus Z97. P.P.P.S.: 1 Link to comment Share on other sites More sharing options...
magnifico Posted October 3, 2015 Share Posted October 3, 2015 I don't know if you can: I guess it depends on the board. Mine - Z97 Gryphon - seems to be one of the lucky ones. You should try and see. P.S.: Yes! And now my portable Samsung M3 has RW speeds over 80mb/s again (tested with BlackMagic). P.P.S.: Mind you, I use a vanilla ("virgin") DSDT: no patches since I moved from a Gigabyte H77 to my current Asus Z97. Have you add kext in folder kext ( clover ) or in SLE? Can you attached picture about usb system profile? Link to comment Share on other sites More sharing options...
theconnactic Posted October 3, 2015 Share Posted October 3, 2015 See above, and no, I use Clover (in my case legacy Clover EFI) and put the kext in /Clover/kexts/10.11. Good luck! Link to comment Share on other sites More sharing options...
theconnactic Posted October 3, 2015 Share Posted October 3, 2015 Tested all USB3 ports. I can confirm all are working as they should. I don't care about the USB2 ones, so I won't lose any time testing them. I suppose that at least one of the four USB2 ports won't work, since 15 ports is the limit, each USB3 counts as two ports, and I have six working USB3 ports (6*2=12 ports used by USB3 only). Am I right? Link to comment Share on other sites More sharing options...
theconnactic Posted October 3, 2015 Share Posted October 3, 2015 Yes, PJALM. You can see some USB2 devices in the system profile screen shot I posted (one of them a 7-port USB hub with my UMX610 and my BT dongle connected). And about the second question, because I never cared to patch a DSDT for the system since I bought this new board. Everything worked fine without a custom DSDT on Yosemite and Mavericks (10.9.5), and now it also works fine with El Capitan thanks to your injector. P.S.: I posted my vanilla DSDT in an earlier post: you can download it and take a look with you think it would be useful for you. P.P.S.: I use a fairly "vanila" config.plist for Clover, in this case "vanilla" means I only modified things for my SMBIOS, audio, trim and SIP, and left there all the gibberish Clover installs by default without caring to study what flag does what. Perhaps that have somewhat an influence in the outcome. If you want, I can post it too. Link to comment Share on other sites More sharing options...
theconnactic Posted October 3, 2015 Share Posted October 3, 2015 Understood, and thank you very much for the injector and this topic. (also to Weg for posting it). All the best! Link to comment Share on other sites More sharing options...
steve3d Posted October 3, 2015 Share Posted October 3, 2015 My hacintosh has these strage usb setup, and I'm using the Z97-D3H motherboard, how can I calculate those data in the kext's info.plist? Using the first post's kext will cause some of my port didn't work. Thanks in advance. Link to comment Share on other sites More sharing options...
Recommended Posts