Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
My USB keyboard eventually stops working and have other USB problems, this seems like the fix I need. I've spent many hours with these instructions but I still feel lost like I don't know what I'm doing.
  • Choosing correct BIOS options - I've done this everything is set to enable/auto
  • Renaming EHCx->EH0x in DSDT - I think I've done this right using DSDT patches with clover configurator
  • using FakePCIID_XHCIMux to route USB2 devices on XHC to EHCI - I have this kext installed
  • injecting ports with a custom port injector - This is where I'm lost, I try ioreg but no devices show even though USB devices are plugged in and working
  • injecting ports with USBInjectAll.kext - I tried installing this but actual devices still don't show in IOREG under XHC, have since removed this kext
  • patching DSDT to simulate a version of Windows when running OS X - I believe I have this done not sure if really needed
I think my problem is with the "custom port injector" I have no idea how to accomplish that, is it editing an info.plist within a kext? Which kext? Any help appreciated.

Your kextcache output shows USBInjectAll.kext is not installed.

It is not valid to enable the _OSI->XOSI patch without also including SSDT-XOSI.aml in ACPI/patched (any calls to _OSI create ACPI abort).
 
Your kextcache output shows USBInjectAll.kext is not installed.

It is not valid to enable the _OSI->XOSI patch without also including SSDT-XOSI.aml in ACPI/patched (any calls to _OSI create ACPI abort).

I've installed this kext now. When I try to save as AML I get these errors on line 37:

7/6/16, 2:40:44 PM, iASLSuLexC.dsl(37) : error 6126 - Invalid character (0x21), expecting ASL keyword or name
7/6/16, 2:40:44 PM, iASLSuLexC.dsl(37) : error 6126 - Invalid character (0x3D), expecting ASL keyword or name
7/6/16, 2:40:44 PM, iASLSuLexC.dsl(37) : error 6126 - syntax error, unexpected PARSEOP_MATCH, expecting ')'

Line 37 of SSDT-XOSI.dsl is:

Return (Ones != Match(Local0, MEQ, Arg0, MTR, 0, 0))
 
I've installed this kext now. When I try to save as AML I get these errors on line 37:

7/6/16, 2:40:44 PM, iASLSuLexC.dsl(37) : error 6126 - Invalid character (0x21), expecting ASL keyword or name
7/6/16, 2:40:44 PM, iASLSuLexC.dsl(37) : error 6126 - Invalid character (0x3D), expecting ASL keyword or name
7/6/16, 2:40:44 PM, iASLSuLexC.dsl(37) : error 6126 - syntax error, unexpected PARSEOP_MATCH, expecting ')'

Line 37 of SSDT-XOSI.dsl is:

Return (Ones != Match(Local0, MEQ, Arg0, MTR, 0, 0))

Note:
Code:
SPEEDY-OSX:probook.git RehabMan$ echo -n 213d|xxd -r -p|xxd
0000000: 213d                                     !=

You are using the wrong version of MaciASL.
Correct versions are linked from the guide: http://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/

Must use my version of MaciASL and ACPI 6.1 (see MaciASL->Preferences).

No need for SSDT-XOSI.aml if you are not using the _OSI->XOSI patch.
 
Thanks that is fixed now per attached. I think what is left is to make a custom port injector somehow?
 

Attachments

  • Archive.zip
    3.8 MB · Views: 84
Thanks that is fixed now per attached. I think what is left is to make a custom port injector somehow?

Modify SSDT-UIAC-ALL.dsl for the ports that are actually used on your laptop. Use IORegistryExplorer to determine which ports are used. Must plug in a USB2 and USB3 device into each port.

Your device-id is 0x8cb1 so customize "8086_8cb1" in the SSDT.

Note: SSDT-XOSI.aml is not loading as it is not named in SortedOrder.
 
Modify SSDT-UIAC-ALL.dsl for the ports that are actually used on your laptop. Use IORegistryExplorer to determine which ports are used. Must plug in a USB2 and USB3 device into each port.

Your device-id is 0x8cb1 so customize "8086_8cb1" in the SSDT.

Note: SSDT-XOSI.aml is not loading as it is not named in SortedOrder.

Thanks, I just realized I'm in the wrong forum, I have a series 9 desktop not a laptop. I read you are supposed to be able to just install FakePCIID.kext and FakePCIID_XHCIMux.kext to get it working but my USB devices eventually fail unless I replug or reboot.
 
Thanks, I just realized I'm in the wrong forum, I have a series 9 desktop not a laptop. I read you are supposed to be able to just install FakePCIID.kext and FakePCIID_XHCIMux.kext to get it working but my USB devices eventually fail unless I replug or reboot.

As far as USB, desktops are no different from laptops... Same process applies.
 
In my IOREG none of my USB devices show under IOACPIPlane. They show under IOUSB, is that where I am supposed to be looking to identify which ports to keep, by the "PortNum" value?
 
In my IOREG none of my USB devices show under IOACPIPlane. They show under IOUSB, is that where I am supposed to be looking to identify which ports to keep, by the "PortNum" value?

You should be looking at IOService.
 
I can see them in IOService, not sure how to identify the ports. I tried by "Port" such as <01 00 00 00> which is under HP11@1d110000 that one of my USB devices is under. Does that translate to this port under 8086_8xxx?



"8086_8xxx",

Package (0x04)

{

"port-count",

Buffer (0x04)

{

0x15, 0x00, 0x00, 0x00

},


"ports",

Package (0x28)

{

"HS01",

Package (0x04)

{

"UsbConnector",

0x03,

"port",

Buffer (0x04)

{

0x01, 0x00, 0x00, 0x00

}

},


I included this and the 7 other ports I identified and deleted everything else from SSDT-UIAC. However it had no effect, everything appears the same in IOREG and USB still randomly fails.
 

Attachments

  • Archive.zip
    3.8 MB · Views: 83
Status
Not open for further replies.
Back
Top