thez3 Posted October 19, 2016 Share Posted October 19, 2016 I repeat: Your USB3 controller is not Intel. FakePCIID_XHCIMux is for Intel only. X79, unlike Intel 7-series, DOES NOT have an Intel XHCI controller. Ok... so, how can I make the USB (even 2.0 works?) GenericUSBHCI only make two ports works for keyboard and mouse. In DSDT has only USBE and EUSB "tags". Any ideas? Thank you. PS: I always made osx86 boot and work in various computers and notebooks, my Acer 8920G has from Snow Leopard and today has macOS Sierra working. This desktop (lenovo d30) is the only one I'm having problems with USB. I think El Captain and Sierra uses the same engine for USB now, I appreciate any idea or how can I see the lenovo d30 motherboard or usb controller (ubuntu maybe?) Thank you again, Link to comment Share on other sites More sharing options...
RehabMan Posted October 19, 2016 Share Posted October 19, 2016 Ok... so, how can I make the USB (even 2.0 works?) GenericUSBHCI only make two ports works for keyboard and mouse. In DSDT has only USBE and EUSB "tags". Rename them to EH01/EH02. Use USBInjectAll.kext. Eventually, create a custom SSDT (for USBInjectAll.kext) that injects only the ports that are connected. For USB3, you will need GenericUSBXHCI.kext if installing a compatible USB3 controller is not an option (FL1100-based chipset supported OOB). GenericUSBXHCI.kext is likely to be unreliable. 1 Link to comment Share on other sites More sharing options...
thez3 Posted October 19, 2016 Share Posted October 19, 2016 Rename them to EH01/EH02. Use USBInjectAll.kext. Eventually, create a custom SSDT (for USBInjectAll.kext) that injects only the ports that are connected. For USB3, you will need GenericUSBXHCI.kext if installing a compatible USB3 controller is not an option (FL1100-based chipset supported OOB). GenericUSBXHCI.kext is likely to be unreliable. Ok, I have a SSDT working for this PC. It's the SSDT-0.aml in the EFI/CLOVER/ACPI/patched 1- But I only find tutorial/guide to rename EHC1 to EH01, how rename USBE to this? 2 - For the SSDT USBInjectAll.kext, I put in SSDT-0.aml (can I split in another file like SSDT-UIA.aml?, btw?) Here is the SSDT for USBInjectAll that I was using: // Override for USBInjectAll.kext Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_8xxx", Package() { //"port-count", Buffer() { 0x15, 0, 0, 0 }, "ports", Package() { "HS01", Package() { "UsbConnector", 3, "port", Buffer() { 0x01, 0, 0, 0 }, }, "HS02", Package() { "UsbConnector", 3, "port", Buffer() { 0x02, 0, 0, 0 }, }, "HS05", Package() // touch screen { "UsbConnector", 255, "port", Buffer() { 0x05, 0, 0, 0 }, }, "HS06", Package() { "UsbConnector", 255, "port", Buffer() { 0x06, 0, 0, 0 }, }, "HS07", Package() { "UsbConnector", 255, "port", Buffer() { 0x07, 0, 0, 0 }, }, "HS09", Package() { "UsbConnector", 0, "port", Buffer() { 0x09, 0, 0, 0 }, }, "SS01", Package() { "UsbConnector", 3, "port", Buffer() { 0x10, 0, 0, 0 }, }, "SS02", Package() { "UsbConnector", 3, "port", Buffer() { 0x11, 0, 0, 0 }, }, }, }, }) Thank you for the reply! Link to comment Share on other sites More sharing options...
RehabMan Posted October 19, 2016 Share Posted October 19, 2016 1- But I only find tutorial/guide to rename EHC1 to EH01, how rename USBE to this? You can use Find/Replace in MaciASL or config.plist/ACPI/DSDT/Patches. Here is the SSDT for USBInjectAll that I was using: Complete nonsense. As 8086_8xxx would be for Intel 8/9-series XHC. As already discussed, you have no Intel XHC in X79. Your SSDT will focus on EH01/EH02/HUB1/HUB2 configuration. Refer to SSDT-UIAC-ALL.dsl in the USBInjectAll github. Link to comment Share on other sites More sharing options...
thez3 Posted October 19, 2016 Share Posted October 19, 2016 You can use Find/Replace in MaciASL or config.plist/ACPI/DSDT/Patches. Complete nonsense. As 8086_8xxx would be for Intel 8/9-series XHC. As already discussed, you have no Intel XHC in X79. Your SSDT will focus on EH01/EH02/HUB1/HUB2 configuration. Refer to SSDT-UIAC-ALL.dsl in the USBInjectAll github. Ok, I understand now. But just a last question, my DSDT doesn't compiles "properly", only the SSDT. The USBE and EUSB are in DSDT. How can I find the replace data/string (for find and replace) in Clover/ACPI/DSDT/Patches for replace EUSB with EH01? Need to see the HEX of DSDT? Because, I know that for EHC1 to EH01 it's <45484331> to <45483031>, right? Thank you. Ok, I understand now. But just a last question, my DSDT doesn't compiles "properly", only the SSDT. The USBE and EUSB are in DSDT. How can I find the replace data/string (for find and replace) in Clover/ACPI/DSDT/Patches for replace EUSB with EH01? Need to see the HEX of DSDT? Because, I know that for EHC1 to EH01 it's <45484331> to <45483031>, right? Thank you. Just found out here, going to test Link to comment Share on other sites More sharing options...
RehabMan Posted October 19, 2016 Share Posted October 19, 2016 Ok, I understand now. But just a last question, my DSDT doesn't compiles "properly", only the SSDT. Probably you failed to disassemble properly (always use SSDTs as context: iasl -da -dl DSDT.aml SSDT*.aml) How can I find the replace data/string (for find and replace) in Clover/ACPI/DSDT/Patches for replace EUSB with EH01? Need to see the HEX of DSDT? Basic stuff... in Terminal: echo -n EUSB|xxd echo -n USBE|xxd Link to comment Share on other sites More sharing options...
thez3 Posted October 19, 2016 Share Posted October 19, 2016 Probably you failed to disassemble properly (always use SSDTs as context: iasl -da -dl DSDT.aml SSDT*.aml) Basic stuff... in Terminal: echo -n EUSB|xxd echo -n USBE|xxd Hi, I did the iasl -da -dl DSDT.aml SSDT*.aml with latest iasl. I compiled using ACPI 4.0 with MaciASL, but I didn't touch the embedded iasl from the MaciASL, it's better I update it too? By the way, I can now replace EUSB to EH01 and USBE to EH01, but either EUSB or USBE has the "HUBN" child. If I replace HUBN to HUB1, the both children will be replaced Today have: EUSB |--- HUBN |-- PRT10 |-- PR30 |-- PR31 |-- PR32 |-- PR33 |-- PR34 |-- PR35 |-- PR36 |-- PR37 ... USBE |-- HUBN |--PR10 |-- PR30 |-- PR31 |-- PR32 |-- PR33 |-- PR34 |-- PR35 There's any problem to, with the rename, stays like this? EH01 |--- HUB1 |-- PRT10 |-- PR30 |-- PR31 |-- PR32 |-- PR33 |-- PR34 |-- PR35 |-- PR36 |-- PR37 ... EH02 |-- HUB1 |--PR10 |-- PR30 |-- PR31 |-- PR32 |-- PR33 |-- PR34 |-- PR35 Thank you! Link to comment Share on other sites More sharing options...
RehabMan Posted October 19, 2016 Share Posted October 19, 2016 Hi, I did the iasl -da -dl DSDT.aml SSDT*.aml with latest iasl. I compiled using ACPI 4.0 with MaciASL, but I didn't touch the embedded iasl from the MaciASL, it's better I update it too? Use ACPI 6.1 (iasl and MaciASL). By the way, I can now replace EUSB to EH01 and USBE to EH01, but either EUSB or USBE has the "HUBN" child. If I replace HUBN to HUB1, the both children will be replaced Use USBInjectAll.kext. Link to comment Share on other sites More sharing options...
thez3 Posted October 19, 2016 Share Posted October 19, 2016 Use ACPI 6.1 (iasl and MaciASL). Use USBInjectAll.kext. But I need to change HUBN to HUB1? Link to comment Share on other sites More sharing options...
RehabMan Posted October 19, 2016 Share Posted October 19, 2016 But I need to change HUBN to HUB1? The only ACPI change required is EH01/EH02. Link to comment Share on other sites More sharing options...
thez3 Posted October 19, 2016 Share Posted October 19, 2016 The only ACPI change required is EH01/EH02. Ok, so I just make: - have the SSDT.aml in efi/clover/acpi/patches (without the DSDT.aml, because even with iasl (acpi 6.0) it won't compile) - change from USBE to EH01 and EUSB to EH02 in efi/clover/acpi/dsdt/patches - put the USBInjectAll.kext in efi/clover/kexts/10.11 or do I need to put SSDT-UIAC-ALL.aml (compiled) with changes? * Because only shows PR11-PR21 and I have only PR30-PR35, just for have sure. Thank you. Link to comment Share on other sites More sharing options...
Riley Freeman Posted October 19, 2016 Share Posted October 19, 2016 How do I get XHCIMux to stop routing USB2 devices to EH01 when connected to a USB3 port? On my laptop if I connect my iPad to one of the USB3 ports, it's routed to EH01 and doesn't get the extra current required. It also gets no extra current if connected to a USB2 port. If I remove XHCIMux then the iPad gets the extra current (1600 when connected to a USB3 port, 500 when connected to a USB2 one) but everything gets routed to XHC, even USB2 devices in USB2 ports. Link to comment Share on other sites More sharing options...
RehabMan Posted October 19, 2016 Share Posted October 19, 2016 Ok, so I just make: - have the SSDT.aml in efi/clover/acpi/patches (without the DSDT.aml, because even with iasl (acpi 6.0) it won't compile) - change from USBE to EH01 and EUSB to EH02 in efi/clover/acpi/dsdt/patches - put the USBInjectAll.kext in efi/clover/kexts/10.11 or do I need to put SSDT-UIAC-ALL.aml (compiled) with changes? * Because only shows PR11-PR21 and I have only PR30-PR35, just for have sure. Thank you. You should verify in ioreg that the ports are being injected by USBInjectAll.kext as expected. How do I get XHCIMux to stop routing USB2 devices to EH01 when connected to a USB3 port? You can inject RM,pr2-force to change the routing (by setting a bit to 1, the port is kept on XHC). Link to comment Share on other sites More sharing options...
Riley Freeman Posted October 20, 2016 Share Posted October 20, 2016 You can inject RM,pr2-force to change the routing (by setting a bit to 1, the port is kept on XHC). I assume I can edit the value in the info.plist to do this but how do I work out what to enter? I've been trying to see if I can get things working with a port injector kext in place of XHCIMux but it's not looking good. Anything plugged into the USB2 ports still gets routed to XHC. Basically, I'm trying to figure out how to get extra current working properly post-Yosemite. On this laptop and my X79 with a FL1100 card. With the laptop, it seems that without any edits XHCIMux is stopping USB2 ports from providing extra current. Maybe that's the problem more than the routing. Link to comment Share on other sites More sharing options...
thez3 Posted October 20, 2016 Share Posted October 20, 2016 Hello, @RehabMan. I tried everything you told. I still can't compile the DSDT (even with iasl 6.0), only the SSDT. What I can tell you is that: - with GenericUSBHCI.kext, I can boot the system and have keyboard and mouse (only this two, but I need the bluetooth that don't recognize). - without the GenericUSBHCI.kext, I can't boot, the El Captain will stop before [ PCI Configuration ] message with a kernel panic at AppleIOUSBHostFamily. There is any configuration for Clover? Inject USB? Fix_USB? All this is false. What do you need so I can boot without the GenericUSB kext? Thank you. Link to comment Share on other sites More sharing options...
RehabMan Posted October 20, 2016 Share Posted October 20, 2016 Hello, @RehabMan. I tried everything you told. I still can't compile the DSDT (even with iasl 6.0), only the SSDT. I said use ACPI 6.1. You can find my guide if you search for it. What I can tell you is that: - with GenericUSBHCI.kext, I can boot the system and have keyboard and mouse (only this two, but I need the bluetooth that don't recognize). GenericUSBXHCI.kext will, of course, be needed for any unsupported USB3 controller you may have. My recommendation (again), is to disable the unsupported XHCI controller and install a supported XHCI controller, such as one based on FL1100. Link to comment Share on other sites More sharing options...
thez3 Posted October 20, 2016 Share Posted October 20, 2016 I said use ACPI 6.1. You can find my guide if you search for it. GenericUSBXHCI.kext will, of course, be needed for any unsupported USB3 controller you may have. My recommendation (again), is to disable the unsupported XHCI controller and install a supported XHCI controller, such as one based on FL1100. But how can I disable the unsupported XHCI and put a new one? Btw, I don't want (don't need) USB 3.0 working, just USB 2.0, that I don't have. I can't boot and even with correctly SSDT + USBInjectAll + EUSB->EH01 + USBE -> EH02 rename patches, I still get IOUSBHostFamily error. But, if I put GenericUSBXHCI.kext I can boot normally, but without any port with bluetooth/etc working. PS: Yosemite was fine, the problem I know it's the new USB in El Captain/Sierra, but how can I pass through the IOUSBHostFamily error at boot to check the IOReg and if the USBInjectAll is working? Link to comment Share on other sites More sharing options...
Riley Freeman Posted October 20, 2016 Share Posted October 20, 2016 While doing some more digging around with my FL1100 card I finally figured out how to get El Capitan to display the speed and current info for devices attached to it (Sierra fixed this already). The fix is to inject a bus number for the card. Presumably there's none because it's a pci-e expansion card. Via DSDT you can just add the property like so after the usual AAPL,current etc entries: "AAPL,xhci-clock-id", One, "USBBusNumber", 0x10, I used 0x10 as this is what I found in an old MP6,1 IOReg. Once this is done, El Capitan will show the speed and current info. It even shows some extra current for my iPad (but not as much as in Yosemite). I'm still not convinced the card is being seen as built-in (which is/was the usual way to enable extra current) as in Sierra I still only get 500mA and Extra Current remains at 0. This is why I assume it will only work (fully) if the system thinks the ports are built-in. How exactly to do this in El Capitan and beyond I'm not sure. Previously just adding a clock-id value was enough but that stopped working with the new USB system. AAPL,device-internal and AAPL,xhci-clock-id don't seem to do it. Update: I found a newer MP6,1 Darwindumper report on applelife. This was from El Capitan so I was able to see the new properties. The following entries were missing in my Sierra IOReg and I think the first one might be the modern equivalent to clock-id: kUSBSleepSupported kUSBWakePortCurrentLimit kUSBSleepPortCurrentLimit I injected them with a usb injector and according to System Profiler the iPad is now getting 1600mA extra current. Link to comment Share on other sites More sharing options...
RehabMan Posted October 20, 2016 Share Posted October 20, 2016 But how can I disable the unsupported XHCI and put a new one? Disable in BIOS. Install supported PCIe USB3 card. Link to comment Share on other sites More sharing options...
thez3 Posted October 20, 2016 Share Posted October 20, 2016 Disable in BIOS. Install supported PCIe USB3 card. Ok, first, I could compile DSDT. SSDT has a parse_op error that I can fix with the _PSS fix. In BIOS I have: EHCI Hand-off (enabled) XHCI Hand-off (enabled) I can also disable each USB port individually (at BIOS) For boot, without the IOUSBHostFamilly problem, 1 - Should I disable in BIOS or has some "magic" for disable in DSDT using the USBE / EUSB tags? 2 - Just rename (in DSDT or clover patches) USBE to EH01, and EUSB to EH02) 3 - Need to apply the OS Windows 8 Fix in DSDT (or use the clover patch + SSDT _OSI)? 4 - Need to turn on only the DropOEM for SSDT, in clover, and DSDT in clover has this option too? Thank you Link to comment Share on other sites More sharing options...
RehabMan Posted October 20, 2016 Share Posted October 20, 2016 Ok, first, I could compile DSDT. SSDT has a parse_op error that I can fix with the _PSS fix. Not enough information. Compiler errors refer to line numbers in the source file for a good reason. In BIOS I have: EHCI Hand-off (enabled) XHCI Hand-off (enabled) I can also disable each USB port individually (at BIOS) Look for an option to disable the unsupported XHCI controller. Your responsibility to find it, if it exists. For boot, without the IOUSBHostFamilly problem, 1 - Should I disable in BIOS or has some "magic" for disable in DSDT using the USBE / EUSB tags? 2 - Just rename (in DSDT or clover patches) USBE to EH01, and EUSB to EH02) 3 - Need to apply the OS Windows 8 Fix in DSDT (or use the clover patch + SSDT _OSI)? 4 - Need to turn on only the DropOEM for SSDT, in clover, and DSDT in clover has this option too? EUSB/USBE/EH01/EH02 are related to EHCI, not XHCI, therefore unrelated to your panic with the XHCI controller. Link to comment Share on other sites More sharing options...
jamiethemorris Posted October 31, 2016 Share Posted October 31, 2016 anyone getting IOUSBFamily kernel panics? it's happened 2x after opening chrome. Also happens when rebooting from Windows sometimes. Really confused as to why. I'm wondering if it's related to the USB kext patch/USBInjectAll thing. If it is the kext patch I guess that's what I get for doing things the lazy way... Link to comment Share on other sites More sharing options...
scary_outfit Posted November 23, 2016 Share Posted November 23, 2016 Hi. Im having trouble implementing the fixes in this thread for a MacPro3.1...yes, i know its old! ;-) My usb ports on the mac unit (front-back) or on the apple cinema display all work. however, i am having issue with my Bluetooth coming from a Broadcom BCM94360CD on a Mini-PCIE inside the MacPro. i understand this issue may be coming from the USB issue, so i'd like to figure out if this is the issue. ive tried to install the fakepciid and xhcimux, but couldnt boot up anymore after disabling SIP. so i removed those. here are a couple of extracts from the system report. any ideas? thanks Link to comment Share on other sites More sharing options...
scary_outfit Posted November 24, 2016 Share Posted November 24, 2016 SOLVED! after all the searching, it turns out my USB were correclty working but OSX was defaulting the USB host controller to a secondary one. i could see the Cambridge S Radio controller in the BT area but my Broadcom one was being ignored. i tried to switch adapters using Bluetooth Explorer App, but it wouldnt let me switch. i finally used terminal to force the switch: sudo nvram bluetoothHostControllerSwitchBehavior=always rebooted and Voila! all working again.;-) Link to comment Share on other sites More sharing options...
Allan Posted November 24, 2016 Share Posted November 24, 2016 @scary_outfit, you already posted this here: http://www.insanelymac.com/forum/topic/302410-patch-enabling-handoff-for-non-apple-bt4-devices/?p=2324069 It's not necessary duplicated posts. Keep the Forum clean please. Thanks Link to comment Share on other sites More sharing options...
Recommended Posts