Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
The motherboard usb2.0 port is extended to lcd monitor usb2.0 port. The usb dongle is connected to the monitor.

You might want to try plugging the BT device directly into a motherboard port instead of to the hub.
Also note you didn't inject power properties.
And USB is not configured correctly (see USBInjectAll guide).
 
You might want to try plugging the BT device directly into a motherboard port instead of to the hub.
Also note you didn't inject power properties.
And USB is not configured correctly (see USBInjectAll guide).
Thank you.
Without proceed to the USBInjectAll guide, I can first try plugging usb dongle directly to the motherboard correct?
Can I expect it to work fine this way with what I have already done so far? (Specific Recommendations (7-series, 8-series, 9-series, X99))
Which is more likely the cause of this issue? The lack of power property injection or USBInjectAll is not configured yet? I intended to do this step by step.
I have an off-topic question if you do not mind.
Can the content of origin folder in EFI partition be deleted? Or is it being used? (it is initially empty)
 
Thank you.
Without proceed to the USBInjectAll guide, I can first try plugging usb dongle directly to the motherboard correct?
Can I expect it to work fine this way with what I have already done so far? (Specific Recommendations (7-series, 8-series, 9-series, X99))
Which is more likely the cause of this issue? The lack of power property injection or USBInjectAll is not configured yet? I intended to do this step by step.

I cannot predict the future. Up to you to try the various suggestions.

I have an off-topic question if you do not mind.
Can the content of origin folder in EFI partition be deleted? Or is it being used? (it is initially empty)

Clover does not use ACPI/origin, it is just a dump location for when you press F4.
 
I cannot predict the future. Up to you to try the various suggestions.
I am just trying to correlate what I have understand so far, my expectation from the fix and the real outcome.
Can I say the guide in post#1 solved internal usb2.0 and usb3.0 port.
For external hub to work properly, I will need to follow through the USBInjectAll guide. (I can momentarily not use the external hub)
And usb not responding after sleep/wake is in the inject power properties guide.
The mouse has not failed to wake up the pc. (Does it means it has enough power then?)
It is just that sometimes after wake up (2 out of 10), the mouse does not work. (What about this?)
Slightly off topic, is the usb port on the desktop pc case connected to the motherboard via internal USB header considered as internal or external hub?

In the SSDT-XOSI.dsl file, it is mentioned "To use this SSDT, you must compile it as AML, place in ACPI/patched, add to config.plist/ACPI/SortedOrder". Also, in another guide, it is mentioned "Note: If you're using config.plist/ACPI/SortedOrder, you must insure that the new SSDT is listed in SortedOrder. If SortedOrder is specified, Clover will load only those SSDTs listed in SortedOrder."
Does this means, since I have a patched ssdt.aml generated from ssdtPRGen.sh, I need to add it into the SortedOrder?
What about the patched DSDT.aml to fix XWAK? Does it need to be specified somewhere?

Please correct me where I am wrong. Thank you.
 
Last edited:
For external hub to work properly, I will need to follow through the USBInjectAll guide. (I can momentarily not use the external hub)

Nothing to do for an external hub. It is just a normal USB device... like any other.

And usb not responding after sleep/wake is in the inject power properties guide.
...
It is just that sometimes after wake up (2 out of 10), the mouse does not work. (What about this?)

Already suggested that you plug into a normal port instead of hub.

Slightly off topic, is the usb port on the desktop pc case connected to the motherboard via internal USB header considered as internal or external hub?

It depends on whether the ports on the case are attached to a hub or not.
If directly connected, the resulting ports are external.
If connected with a hub (part of the case), the port(s) that connect the hub are considered internal.

In the SSDT-XOSI.dsl file, it is mentioned "To use this SSDT, you must compile it as AML, place in ACPI/patched, add to config.plist/ACPI/SortedOrder". Also, in another guide, it is mentioned "Note: If you're using config.plist/ACPI/SortedOrder, you must insure that the new SSDT is listed in SortedOrder. If SortedOrder is specified, Clover will load only those SSDTs listed in SortedOrder."
Does this means, since I have a patched ssdt.aml generated from ssdtPRGen.sh, I need to add it into the SortedOrder?

If you're not using SortedOrder (ie. no patched OEM SSDTs), then no need to add SortedOrder... all SSDTs in ACPI/patched will be loaded by Clover. If you're using SortedOrder, then of course all SSDTs you wish to load must be added.

What about the patched DSDT.aml to fix XWAK? Does it need to be specified somewhere?

You will find out if you need to patch XWAK if you experience certain USB problems after wake.
It depends on the issues you're having.
 
Issues trying to match SSDT-UIAC with DSDT (USBInjectAll.kext) High Sierra
  1. I have carefully read RehabMan’s extensive work concerning USB drivers (including USB3) solutions.
[Guide] 10.11+ USB changes and solutions
USBInjectAll.kext
[Guide] creating a custom SSDT for USBInjectAll.kext
  1. USBInject successfully injects USB2 ports (EH01, EH02).
  2. UIA_EXCLUDE [Edit: working great @RehabMan: Thank you for catching the typo (-)uia_exclude]
    Ok to exclude specific ports such as the internal card reader with uia_exclude=HP22
Problems I could not solve
SLEEP
-Lost computer sleep as soon as USBInject.kext is loaded at boot. try to unload it before sleep but once injected USB stays active.

SSDTUIAC - DSDT
-Could not change XHC1 and XHCI to XHC since XHC is already used in DSDT [Edit: ReHabMan answered: renaming is not optional. See next post. I had to do it manually in DSDT]
-Had to use PRTx instead of PRx since it is already used in DSDT

BIOS [Edit: XHCI Auto at Bios is OK with Clover <Devices><USB> Inject=Yes Fix Ownership=Yes]
Before Edit: -Could not boot with XHCI enabled or Auto at Bios
Boot gets stuck at
AppleUSBLegacyRoot0: AppleUSBLegacyRoot::Init:: enabling legacy matching
XHCI is thus disabled and XHCx does not appear in IO Registry
After Edit: XHC1 and FakePCIID_XHCIMux appears successfully.

External USB port appear as internal [Edit : As explained in ReHabMan's guide, "FakePCIID_XHCIMux.kext has the effect of moving all HSxx ports to EHCI (to the internal hub on EH01.PR11)"]
The 2 external USB2/USB3 ports in IO Registry under AppleUSB20InternalIntelHub.
No Clover USB fix or injection used

Any advice would be greatly appreciated as always

—————
Test computer
UX31a Zenbook (MacBookAir5,2 High Sierra)
Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz
Intel Series 7 chipset (Panther Point.)

DSDT (clean) reveals
Device (XHC1) - Method _PRW
Device (EHC1) - Method _PRW
Device (EHC2) - Method _PRW
_SB.PCI0
Device (XHC) RHUB
HSP1HSP4 = Name (UPCP 0xFF, 0x03, Zero, Zero)
SSP1HSP4 = Name (UPCP 0xFF, 0x03, Zero, Zero)
Device (EHC1) RHUB
PRT1PRT6 = Name (UPCP Zero, 0xFF, Zero, Zero)
Device (EHC2) RHUB
PRT1PRT6 = Name (UPCP Zero, 0xFF, Zero, Zero
_SB.PCI0.EHC1.RHUB.PRT1.PRT5
Device (DCAM)

Name already used in DSDT
XHCI, XHC, XHC1, XHCB, PR01, PR02, PR2, PR3
Name not used in DSDT
EH01 EH02 PR1

Clover:
change EHC1 to EH01
change EHC2 to EH02

IO Registery;
EH01@1D
EH01@1d000000
PRT1@1d100000
IOUSBHostDevice@1d100000
AppleUSBHostLegacyClient
AppleUSB20InternalIntelHub@1d100000
HP11@1d110000
USB-PS/2 Optical Mouse@1d110000

SSDT-UIAC constructed

"EH01", Package()
{ "port-count", Buffer() { 6, 0, 0, 0 },
"ports", Package()
{"PRT1", Package()
{ ”UsbConnector", 255,
"port", Buffer() { 1, 0, 0, 0 },

"XHC", Package() // 7-Series Chipset "8086_1e31" //DSDT Device (XHC)
{"port-count", Buffer() { 8, 0, 0, 0 },
"ports", Package()
{ ”HSP1", Package()
{ "UsbConnector", 3,
"port", Buffer() { 1, 0, 0, 0 },
 
Last edited:
-Could not exclude specific ports such as the internal card reader with -uia_exclude=HP22

You spelled uia_exclude incorrectly. It is 'uia_exclude' not '-uia_exclude'.

SLEEP
-Lost computer sleep as soon as USBInject.kext is loaded at boot. try to unload it before sleep but once injected USB stays active.

SSDTUIAC - DSDT
-Could not change XHC1 and XHCI to XHC since XHC is already used in DSDT
-Had to use PRTx instead of PRx since it is already used in DSDT

BIOS
-Could not boot with XHCI enabled or Auto at Bios
Boot gets stuck at
AppleUSBLegacyRoot0: AppleUSBLegacyRoot::Init:: enabling legacy matching
XHCI is thus disabled and XHCx does not appear in IO Registry
Tried with or without the two PCIID.kext

External USB port appear as internal
The 2 external USB2/USB3 ports in IO Registry under AppleUSB20InternalIntelHub.
No Clover USB fix or injection used

Any advice would be greatly appreciated as always

—————
Test computer
UX31a Zenbook (MacBookAir5,2 High Sierra)
Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz
Intel Series 7 chipset (Panther Point.)

DSDT (clean) reveals
Device (XHC1) - Method _PRW
Device (EHC1) - Method _PRW
Device (EHC2) - Method _PRW
_SB.PCI0
Device (XHC) RHUB
HSP1HSP4 = Name (UPCP 0xFF, 0x03, Zero, Zero)
SSP1HSP4 = Name (UPCP 0xFF, 0x03, Zero, Zero)
Device (EHC1) RHUB
PRT1PRT6 = Name (UPCP Zero, 0xFF, Zero, Zero)
Device (EHC2) RHUB
PRT1PRT6 = Name (UPCP Zero, 0xFF, Zero, Zero
_SB.PCI0.EHC1.RHUB.PRT1.PRT5
Device (DCAM)

Name already used in DSDT
XHCI, XHC, XHC1, XHCB, PR01, PR02, PR2, PR3
Name not used in DSDT
EH01 EH02 PR1

Clover:
change EHC1 to EH01
change EHC2 to EH02

IO Registery;
EH01@1D
EH01@1d000000
PRT1@1d100000
IOUSBHostDevice@1d100000
AppleUSBHostLegacyClient
AppleUSB20InternalIntelHub@1d100000
HP11@1d110000
USB-PS/2 Optical Mouse@1d110000

SSDT-UIAC constructed

"EH01", Package()
{ "port-count", Buffer() { 6, 0, 0, 0 },
"ports", Package()
{"PRT1", Package()
{ ”UsbConnector", 255,
"port", Buffer() { 1, 0, 0, 0 },

"XHC", Package() // 7-Series Chipset "8086_1e31" //DSDT Device (XHC)
{"port-count", Buffer() { 8, 0, 0, 0 },
"ports", Package()
{ ”HSP1", Package()
{ "UsbConnector", 3,
"port", Buffer() { 1, 0, 0, 0 },

Renaming to use EH01/EH02/XHC is not optional.

Your profile must have hardware details as per FAQ.

All problem reports require "Problem Reporting" files.
No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
 
Last edited:
The version of XOSI above implements a simulation of "Windows 2009" (Windows 7), which I found to work well with the BRIX. You could emulate any other version of Windows by modifying the code as needed (either commenting or uncommenting the Windows versions listed).
To simulate Windows 7, should I comment everything inside that code and only leave out Windows 2009?
Reason I ask is because I am not sure how Windows 7 is selected when others are not commented.
//"Windows", // generic Windows query
//"Windows 2001", // Windows XP
//"Windows 2001 SP2", // Windows XP SP2
//"Windows 2001.1", // Windows Server 2003
//"Windows 2001.1 SP1", // Windows Server 2003 SP1
//"Windows 2006", // Windows Vista
//"Windows 2006 SP1", // Windows Vista SP1
//"Windows 2006.1", // Windows Server 2008
"Windows 2009", // Windows 7/Windows Server 2008 R2
//"Windows 2012", // Windows 8/Windows Server 2012
//"Windows 2013", // Windows 8.1/Windows Server 2012 R2
//"Windows 2015", // Windows 10/Windows Server TP
 
To simulate Windows 7, should I comment everything inside that code and only leave out Windows 2009?
Reason I ask is because I am not sure how Windows 7 is selected when others are not commented.
//"Windows", // generic Windows query
//"Windows 2001", // Windows XP
//"Windows 2001 SP2", // Windows XP SP2
//"Windows 2001.1", // Windows Server 2003
//"Windows 2001.1 SP1", // Windows Server 2003 SP1
//"Windows 2006", // Windows Vista
//"Windows 2006 SP1", // Windows Vista SP1
//"Windows 2006.1", // Windows Server 2008
"Windows 2009", // Windows 7/Windows Server 2008 R2
//"Windows 2012", // Windows 8/Windows Server 2012
//"Windows 2013", // Windows 8.1/Windows Server 2012 R2
//"Windows 2015", // Windows 10/Windows Server TP

Your question is answered within the comments in the code itself.
Read it carefully.
 
Your question is answered within the comments in the code itself.
Read it carefully.
I am still not getting it.
Lets look from a different angle, what must I do/change in the code to emulate a different Windows ver.
 
Status
Not open for further replies.
Back
Top