Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
Erm, I think you missed that I actually have no "origin" ACPI subdirectories at all. So "dropoem=true" actually is useless.

You do not understand how things work.
DropOem has nothing to do with content in ACPI/origin.
It has to do with ACPI tables in BIOS (ACPI/origin is just a location to where such tables are dumped).

I finally did change the ports directly in USBInjectAll.kext's Info.plist, and got rid of a SSDT-IAUC... It working now, but something seems to be fishy regarding the parsing of SSDT-IAUC in USBInjectAll.kext... Not?

No need. Create correct SSDT-UIAC.aml instead.
Nothing fishy. Your mistake already identified.

Maybe its because I put USBInjectAll.kext into clover extensions?

No.

May I suggest some corrections in your guides, to prevent further noob confusion:

- The limit of 15 is related to the USB3 controller, not the USB2 controller. This was not clear to me. Why not add "usb3" to that parts?

It is actually related to the XHCI controller (which is both a USB2 and USB3 controller).
If you look at the kext that the patch applies to it has XHCI in the name...

- The port extension patch is only temporarily to make lost usb3 available. After limiting the available usb3 ports in USBInjectAll.kext, it should be immediately removed. This isn't clearly expressed in the related parts.

I will review it, but I think it is already pretty clear.

DONE (review complete).

The addition of the port limit patch is clearly covered in "Preparation for port discovery".
And the removal of it is clearly mentioned later as "Once your SSDT is working, you can remove or disable the port limit patch."

- All related kexts should be provided in the one guide

All kexts are linked from the USBInjectAll.kext README.

- You really could add a maximal simple "quick manual" section on top, and referring to "detail section" if it doesn't work. With really simple steps:

1. Rename EHCI and UHCI in ACPI accordingly
2. Put USBInjectAll.kext, FakePCIID.kext and FakePCIID_XHCIMux.kext in kext/Other of clover
3. Add the port-extension-patch to kext patch of clover
4. Reboot and have a look at IOACPIPlane. Put your mouse in each USB2 port and write down the Port Number/Name and location on your computer
5. Do the same with a USB3 device and put it in all USB3 ports, write down port number and location
6. Edit USBInjectAll.kext Info.plist, remove the not used USB3 ports. Then remove the not used USB2 ports.
7. Disable the port-extension-patch
8. Reboot

UHCI is USB1. I haven't done any research on USB1... no hardware with USB1.
FakePCIID_XHCIMux is not recommended in all cases. If you can stay within the 15-port limit on XHC, it is actually better to do without FakePCIID_XHCIMux. Also FakePCIID_XHCIMux does not apply to 100-series/200-series chipsets. In short, the solutions you need depend on your hardware and how you want to configure it.

The guide for creating the SSDT includes all the steps you mention. With images...
There is no need to look at IOACPIPlane.... the port addresses are already correct in SSDT-UIAC-ALL.dsl.

The guide does not recommend editing the Info.plist of USBInjectAll.kext. It uses an SSDT for customization. I will not support those who customize USBInjectAll.kext.

P.S: I really have no clue why you want the people to make the USBInjectAll.kext limiting configuration in an additional SSDT...? Why not simply edit the Info.plist instead, so you could even place it in the clover kexts? The approach via SSDT seems to just complicate things... IMHO.

You have your opinion. I have mine.
As the author of USBInjectAll.kext, it was my intention to customize via ACPI.
If you want just an Info.plist port injector, you can use an AppleUSBMergeNub based injector kext.
 
Each SSDT is numbered in a Clover F4 extract.
The number indicates the order.

FYI: I identified your mistake...

You have in "8086_8xxx":
Code:
                "ports",
                Package (0x28)

0x28 is 40. And 40/2 is 20. eg. 20 ports...
Then what follows is a package without 40 entries (you have 12 ports, 24 entries, not 40)
Hence it is ignored by USBInjectAll.kext as the data is invalid.

As per guide, you should edit the SSDT-UIAC-ALL.dsl, not a compiled AML when eliminating ports.
If you edit the AML, you will need to adjust package sizes as appropriate.
Thanks for your effort here.

Totally forgot that package-thing :oops: Maybe you could add such warning to your great MaciASL tool, if the package number doesn't fit the nodes?
 
Totally forgot that package-thing :oops: Maybe you could add such warning to your great MaciASL tool, if the package number doesn't fit the nodes?

The warning is already there. But you ignored it.
 
LOL hadn't the messages window opened.
 
Hi all !

My system works wonderfully in Yosemite. Everything works! But I would like to try Sierra so I installed it (10.12.4) in my spare SSD. After the installation and basic system setup I started reading in order to fix the USB problems with macOS.

I've collected so many information at this point that I'm not sure what to do next. I'm on a Z77X-UD5H using both Intel HD4000 (main boot device) and a Radeon 6670. I've always used Pjalm's DSDT patches, but for Sierra I made a Special one without multiplexing patch and with discrete graphics injection (Intel HD4000 is injected by Clover 4035).

My main problem concerning USB fixes is that I am not sure what to change in the template to create my customised SSDT for USBInjectAll.kext. I've tried every port with every kind of device and attached all the info, but I'm not really sure about what to do now.

Probably USB related as well there is a sleep problem: the system goes to sleep and inmediately wakes up again (no reboot, just wake up after 2 seconds of sleep).

The actual point I'm in is attached (IOReg output, terminal output, my usb findings and EFI folder).

Hope someone can shine a light in this one! Thanks in advance!
 

Attachments

  • ultrazone.zip
    3.2 MB · Views: 99
Hi all !

My system works wonderfully in Yosemite. Everything works! But I would like to try Sierra so I installed it (10.12.4) in my spare SSD. After the installation and basic system setup I started reading in order to fix the USB problems with macOS.

I've collected so many information at this point that I'm not sure what to do next. I'm on a Z77X-UD5H using both Intel HD4000 (main boot device) and a Radeon 6670. I've always used Pjalm's DSDT patches, but for Sierra I made a Special one without multiplexing patch and with discrete graphics injection (Intel HD4000 is injected by Clover 4035).

My main problem concerning USB fixes is that I am not sure what to change in the template to create my customised SSDT for USBInjectAll.kext. I've tried every port with every kind of device and attached all the info, but I'm not really sure about what to do now.

Probably USB related as well there is a sleep problem: the system goes to sleep and inmediately wakes up again (no reboot, just wake up after 2 seconds of sleep).

The actual point I'm in is attached (IOReg output, terminal output, my usb findings and EFI folder).

Hope someone can shine a light in this one! Thanks in advance!

Install USBInjectAll.kext, FakePCIID.kext, FakePCIID_XHCIMux.kext (as per post #1, "Specific recommendations...").
Then create custom SSDT to configure USBInjectAll.kext.
And you may need _OSI->XOSI + SSDT-XOSI.aml to enable your XHCI controller (varies by BIOS implementation).
Make sure you have correct BIOS settings as per post #1.
 
Install USBInjectAll.kext, FakePCIID.kext, FakePCIID_XHCIMux.kext (as per post #1, "Specific recommendations...").

Done!
Then create custom SSDT to configure USBInjectAll.kext.

I'm in the middle of testing all ports with both USB2 and USB3 devices. I'll post new IOReg and USB findings soon.
And you may need _OSI->XOSI + SSDT-XOSI.aml to enable your XHCI controller (varies by BIOS implementation).

Not sure yet if I need it, but _OSI->XOSI patch was in my config.plist, and now I've compiled and added the SSDT-XOSI.aml.
Make sure you have correct BIOS settings as per post #1.

Confirmed, Smart Auto mode.

Regarding BIOS, I have an option (OS Mode) which has three choices: Other OS, Windows 8 and Windows 8 WHQL. Right now I'm on "Other OS", but is there a better choice here?

I'll upload the new files soon, thanks in advance!
 
Not sure yet if I need it, but _OSI->XOSI patch was in my config.plist, and now I've compiled and added the SSDT-XOSI.aml.

Note that using _OSI->XOSI without SSDT-XOSI.aml is very very wrong.

Regarding BIOS, I have an option (OS Mode) which has three choices: Other OS, Windows 8 and Windows 8 WHQL. Right now I'm on "Other OS", but is there a better choice here?

No idea. Read your BIOS manual/help to find out what the option does.
 
Note that using _OSI->XOSI without SSDT-XOSI.aml is very very wrong.

Now I'm doing all the port testing part with it being loaded (checked via DPCIManager>Boot log). The DSDT patching part is also working well.

No idea. Read your BIOS manual/help to find out what the option does.

Given the fact that the manual says almost nothing about it and that everything was working fine with Yosemite in "Other OS" mode, I'll leave it like it was and finish the testing.

Thanks again!
 
Now I'm doing all the port testing part with it being loaded (checked via DPCIManager>Boot log). The DSDT patching part is also working well.

Given the fact that the manual says almost nothing about it and that everything was working fine with Yosemite in "Other OS" mode, I'll leave it like it was and finish the testing.

Thanks again!

Hi there!

Here you have the results of my testing with all the suggested changes applied and all the ports I've discovered with their locations. I'm so close but still need some help to configure SSDT-UIAC.dsl.

Please let me know if there's something wrong with my actual setup.

Thanks a lot!
 

Attachments

  • ultrazone 2.zip
    3.2 MB · Views: 105
Status
Not open for further replies.
Back
Top