RehabMan Posted September 29, 2015 Share Posted September 29, 2015 ... But I still has the sleep problem: instant wake after sleep. reason is EHC, remove _PRW doesn't help. Only disable internal usb bluetooth and camera can solve this. You need to remove all _PRWs that correspond to the same GPE, not just the _PRW on EHCx. Do you think we can do it by SSDT.aml injection ? So it will very easy to generate once you know your ports and it won't be impacted by updates ... a SSDT with only : _ADR for Address _UPC / _PLD for Infos _DSM for Cosmetics for ECH1, EHC2 and XCH1 which match a SMBIOS config ... See the SSDT attached Using an injector is easier, and still survives updates. No reason to make it more complex. IIRC you must first disable the original USB devices in the DSDT, I don't think you can just override them from an SSDT without disabling them first. I have not tried using an SSDT for USB but it should be possible to rename _SB.PCI0.EHC1/etc. to _SB.PCI0.EH01/etc. (using Clover config.plist DSDT binpatch) [you don't want to just rename all instances of EHC1/etc. to EH0/etc. because you want the original names so you can disable them], and then disable the original USB device. A short SSDT example: DefinitionBlock ("GA-Z77X-UD5H.aml", "SSDT", 1, "APPLE", "tinySSDT-USB", 0x00000001) { External (_SB.PCI0, DeviceObj) Scope (\_SB.PCI0) { /* Disabling the EHC1 device */ Scope (EHC1) { Name (_STA, Zero) } /* Adding a new EH01 device */ Device (EH01) { Name (_ADR, 0x001D0000) /* Put methods/whatever here */ } } } I haven't tested this technique with USB devices (I don't need to add new USB devices in my SSDT, I just add a _DSM method), but it has worked with other devices I've tried it with. Credits to Piker-Alpha for this technique. This override technique has limitations: - the _STA as 0 only works if _STA is not defined in the DSDT. An SSDT cannot redefine a symbol already defined in DSDT or an earlier SSDT. - sometimes you can store 0 in _STA for the case that _STA is defined as a name (because then it is a Name(variable), not a method(code). - but if _STA is a method (common), then you can't override it. - you can play similar tricks with _ADR, provided _ADR is not a method. By assigning zero to _ADR in an _INI, you effectively "detach" the ACPI object from the associated PCIe object (because they are matched on address). Keep in mind that changing the _ADR detaches existing code using the old name from the PCI config. So, for example, if existing code tries to manipulate the PCI_config space associated, it will fail. So... as long as you analyze your existing DSDT/SSDT code to see if what you're doing is safe, then it is fine. IMHO, it is much easier to use config.plist/ACPI/DSDT/Patches to implement the rename, or do do it manually with search/replace. I don't even do manual DSDT patches anymore, I just use Clover DSDT binpatches + a tinySSDT (based off work by Piker-Alpha) and it works well enough for me. Clover's config.plist/ACPI/DSDT/Patches works fine for the "little stuff". For highly invasive patches (such as for >8-bit EC fields, common ion battery status), it gets a bit unwieldy. Hey I just ran along this post and can say that my G750Jx Asus Haswell Laptop only behaves like this when on battery only. Disable "USB deep sleep" in BIOS. There is no 15-port limitation if you use a port injector. Not true. Still 15 ports per controller limit. Do you have an example? The port injector does not unlock the 15 limit of XHC but reroute ports from XHC to EHC1 or EHC2. Port injectors perform no "rerouting". That is the job of FakePCIID_XHCIMux.kext+FakePCIID.kext. You forgot to set port-count to the maximum count number of your ports. Note that it is not a count of ports at all, but rather the maximum value expected for a port address. I feel that there is no universal method for fixing USBs on El Captian which is why many are confused. Some say to edit the DSDT, others say make your own injector, and others say use dummy kexts. And then some say use fakepciid to override usb 2.0. I'm not even sure what method is the best. ... First, dummy kexts (injectors with symlinks) are not needed. And each solution builds on the last... In some cases, multiple solutions are needed. On my u430: - renamed EHCx->EH0x - FakePCIID_XHCIMux (actually optional) to route USB2 ports on XHC to EH01 - correct DSDT patches to simulate a Windows version for Darwin (_OSI related) - injectors for each controller (EH01/XHC) and for the hub ports - correct BIOS settings To reach a final solution, you need knowledge on what is going on and what each fix does. Actually I forgot that I was using the FakePCIID Mux kext. That could be the reason why the AS2015 is detected as a USB 2.0 device. I remember before it was found under PXSX > AppleUSB30XHCIPort.... FakePCIID_XHCIMux affects only Intel controllers. Link to comment Share on other sites More sharing options...
AsusFreak Posted September 29, 2015 Share Posted September 29, 2015 Clover's config.plist/ACPI/DSDT/Patches works fine for the "little stuff". So if you're dual booting Yos and El Cap you need a way to apply a different config.plist for each volume? Link to comment Share on other sites More sharing options...
RehabMan Posted September 29, 2015 Share Posted September 29, 2015 So if you're dual booting Yos and El Cap you need a way to apply a different config.plist for each volume? I don't need it, and you probably don't either, but if you're asking if there is a way... the answer is "Yes". Link to comment Share on other sites More sharing options...
GhostRaider Posted September 29, 2015 Share Posted September 29, 2015 First, dummy kexts (injectors with symlinks) are not needed. And each solution builds on the last... In some cases, multiple solutions are needed. On my u430: - renamed EHCx->EH0x - FakePCIID_XHCIMux (actually optional) to route USB2 ports on XHC to EH01 - correct DSDT patches to simulate a Windows version for Darwin (_OSI related) - injectors for each controller (EH01/XHC) and for the hub ports - correct BIOS settings To reach a final solution, you need knowledge on what is going on and what each fix does. FakePCIID_XHCIMux affects only Intel controllers. Does this mean that if my motherboard is using the VIA805 USB 3.0 controller that controls the back 4 USB 3.0 ports, doing this port injector and patching the DSDT will make those ports work? The other ports that the motherboard has, 2 Front USB 3.0 and 6 USB 2.0 ports are controlled by intel and they work natively on El Capitan with no patches. People are saying that I have to wait for a 3rd party kext for the VIA 3.0 ports. Is that correct? The VIA805 ports are detected (or OS X is lying) on OS X under PXSX, in verbose mode it throws "AppleUSBXHCI::createPorts: created port" message with ports 1-5 but that doesn't do anything. The ports receive power (USB drive light flashes forever) but OS X does not mount the USB drives. I'm not understanding why it bothers creating these ports when it doesn't let you use them anyways. Link to comment Share on other sites More sharing options...
RehabMan Posted September 30, 2015 Share Posted September 30, 2015 Does this mean that if my motherboard is using the VIA805 USB 3.0 controller that controls the back 4 USB 3.0 ports, doing this port injector and patching the DSDT will make those ports work? I don't know if the USB drivers in 10.11 support your device. All my XHCI controllers here are Intel. Link to comment Share on other sites More sharing options...
magnifico Posted September 30, 2015 Share Posted September 30, 2015 @ RehabMan I don't understand at all! So, my USB 3 intel don't use at the top of velocity http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/?p=2170908 Link to comment Share on other sites More sharing options...
RehabMan Posted September 30, 2015 Share Posted September 30, 2015 @ RehabMan I don't understand at all! So, my USB 3 intel don't use at the top of velocity http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/?p=2170908 Not possible to know what is going on from "System Information". You have to dig into ioreg. Link to comment Share on other sites More sharing options...
magnifico Posted September 30, 2015 Share Posted September 30, 2015 Not possible to know what is going on from "System Information". You have to dig into ioreg. Can you see ? If dont disturbe iMac di magnifico.zip Link to comment Share on other sites More sharing options...
magnifico Posted September 30, 2015 Share Posted September 30, 2015 I don't get any of those messages in my logs PJ is not only one who sees these messages in the console Link to comment Share on other sites More sharing options...
joe75 Posted September 30, 2015 Share Posted September 30, 2015 he means he's not the only one seeing those messages. all it needs is correct id for the controller in dsdt or the usbxhcipci kext. 1 Link to comment Share on other sites More sharing options...
magnifico Posted September 30, 2015 Share Posted September 30, 2015 he means he's not the only one seeing those messages. all it needs is correct id for the controller in dsdt or the usbxhcipci kext. yeah i mean this Link to comment Share on other sites More sharing options...
RehabMan Posted September 30, 2015 Share Posted September 30, 2015 Can you see ? If dont disturbe The ioreg is corrupt (not created with IORegistryExplorer v2.1). Note I wrote "You have to dig into ioreg" Link to comment Share on other sites More sharing options...
magnifico Posted September 30, 2015 Share Posted September 30, 2015 The ioreg is corrupt (not created with IORegistryExplorer v2.1). Note I wrote "You have to dig into ioreg" Wich version i need? Link to comment Share on other sites More sharing options...
RehabMan Posted September 30, 2015 Share Posted September 30, 2015 Wich version i need? Version of what? Link to comment Share on other sites More sharing options...
magnifico Posted September 30, 2015 Share Posted September 30, 2015 Version of what? IORegistryExplorer Link to comment Share on other sites More sharing options...
RehabMan Posted September 30, 2015 Share Posted September 30, 2015 IORegistryExplorer You can use whatever version you like. But I only use v2.1 here as was clear from my previous post. Link to comment Share on other sites More sharing options...
Pike R. Alpha Posted October 1, 2015 Share Posted October 1, 2015 Ehm. The "port" and "port-count" properties are all blank in /S*/L*/E*/IOUSBHostFamily.kext/C*/P*/AppleUSBEHCIPCI.kext/C*/Info.plist (El Capitan 10.11.1 (15B17c)) so there is no port restriction. 1 Link to comment Share on other sites More sharing options...
RIB Posted October 1, 2015 Share Posted October 1, 2015 Ugh, still no luck with this. USB 1.1 or nothing. Tried re-installing and them remembered that I never could install El Capitan straight on the hackintosh and instead had to install it via a real mac. Such a pain in the arse. Think at this rate I'll just have to suck it up and stick with Yosemite. Link to comment Share on other sites More sharing options...
Mr.Graphic Posted October 1, 2015 Share Posted October 1, 2015 Asrock Z77 Pro4M MB, USB3 ports working full speed El Capitan 10.11. My modell MacPro5,1. Edit IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/Info.plist - IOKitPersonalities Copy/paste "MacPro6,1-XHC1" Dictionary. Rename "MacPro6,1-XHC1-2" → "MacPro5,1-XHC1" Save Replace IOUSBHostFamily.kext S/L/E Run Kext Utility Restart USB3 speed 5Gb/s IOUSBHostFamily.kext.zip Link to comment Share on other sites More sharing options...
fermolino Posted October 1, 2015 Share Posted October 1, 2015 Hi, I've the problem with the usb. So I'm kindly asking you if you can help me to fix this. I'm a noob and I cannot understand the guide at the first page. What I have exactly to do? How can I eliminate the restriction? Thanks! Link to comment Share on other sites More sharing options...
Andrew+ Posted October 1, 2015 Share Posted October 1, 2015 I m having trouble understanding this guide can any1 please give me easier guide to follow or post files needed to be edited. if you need my dsdt i have attach files here thanks in advance DSDT.aml.zip 1 Link to comment Share on other sites More sharing options...
JorgeRod Posted October 1, 2015 Share Posted October 1, 2015 Ehm. The "port" and "port-count" properties are all blank in /S*/L*/E*/IOUSBHostFamily.kext/C*/P*/AppleUSBEHCIPCI.kext/C*/Info.plist (El Capitan 10.11.1 (15B17c)) so there is no port restriction. Does that mean that we would not need any DSDT rename fix? Link to comment Share on other sites More sharing options...
ArcticFox Posted October 1, 2015 Share Posted October 1, 2015 I'm using DSDT and DummyUSBXHCIPCI provided by the chap on the first page for my motherboard H87M-HD3 http://www.insanelymac.com/forum/topic/306777-guide-usb-fix-el-capitan-1011/page-1?do=findComment&comment=2147401 No matter what I do I can't get USB3 working, I have legacy usb disabled in bios and the other XHCI set to auto but my USB3.0 HDD will only run at 2.0 speeds. I've attached IOREG and the DSDT I am using. Can someone please tell me where I am going wrong, thanks. Archive.zip Link to comment Share on other sites More sharing options...
RehabMan Posted October 1, 2015 Share Posted October 1, 2015 Ehm. The "port" and "port-count" properties are all blank in /S*/L*/E*/IOUSBHostFamily.kext/C*/P*/AppleUSBEHCIPCI.kext/C*/Info.plist (El Capitan 10.11.1 (15B17c)) so there is no port restriction. Not blank. Right click, "Show Raw Keys/Values" Why not just use IOJones and be done with it lol, smaller human readable files ftw I prefer IORegistryExplorer v2.1. It is faster, search is better, and the properties are sorted on the RHS. You're entitled to use what you prefer, as am I. 1 Link to comment Share on other sites More sharing options...
Pike R. Alpha Posted October 1, 2015 Share Posted October 1, 2015 Not blank. Right click, "Show Raw Keys/Values" I prefer IORegistryExplorer v2.1. It is faster, search is better, and the properties are sorted on the RHS. You're entitled to use what you prefer, as am I. Thanks. My mistake. Should have known this, but I guess that I was too quick (everything is functional here) when I was trying to help someone. Edit: Removed stupid markup. 1 Link to comment Share on other sites More sharing options...
Recommended Posts