Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi RehabMan and all, I need a bit help here.

I went through the procedure of this guide and I managed to identify which HS/SS port is used from its assigned physical port.

Here’s the layout of the physical ports:
  • 6 USB3.0 ports on the back of my mobo
  • one usb2.0 port + one USB 3.0 port on the front panel, and both of them are connected to one set of usb header on the mobo via one set of cable connector
  • a Bluetooth dongle connected to another set of usb header on the mobo
As the result of the discovery step, there are 9 HS ports and 7 SS ports in use (16 in total). HS/SS01~06 are used for the 6 ports on the back of the mobo, HS/SS08 are used for the USB3.0 port on the front panel, HS14 is used for the front USB2.0, and HS12 is used for Bluetooth dongle.

Due to the 15 port limit, I reckoned I’d have to disable one HS or SS port, so I decided to remove SS01 in my SSDT since that port is always connected to a USB2.0 hub with my mouse and keyboard onto it, and thus I’ll have 15 HS/SS ports in total. To sum up, I removed everything but HS01~06,08,12,14 and SS02~08 in the SSDT.

However, after booting with SSDT, the ports seem to be fine in the IOReg except that the Bluetooth dongle went from HS12 to SS03 and my USB3.0 memory stick couldn’t be recognised by any port.

Obviously I must have done something wrong but I couldn’t figure it out.
I could really use some help. Thanks in advance, much appreciated.
Your port addresses are wrong.
Do not change the value for "port" from the value it is in SSDT-UIAC-ALL.dsl.
It is correct iin SSDT-UIAC-ALL.dsl. Any change would be wrong.
 
Joined
Sep 30, 2018
Messages
12
Motherboard
Gigabyte Z370M-D3H
CPU
i7-8086K
Graphics
RX 580
Mac
iMac, MacBook Air
Mobile Phone
iOS
Your port addresses are wrong.
Do not change the value for "port" from the value it is in SSDT-UIAC-ALL.dsl.
It is correct iin SSDT-UIAC-ALL.dsl. Any change would be wrong.
Thanks @RehabMan, everything works fine after I reverted the value.

Another quick question, I used type 0 and 3 respectively for the USB 2.0 port and the USB 3.0 port on my front panel, and both of them are working fine now. Is it better if I use type 255 for those 2 ports since they are connected to the header on the Mobo?

Thanks again mate.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Thanks @RehabMan, everything works fine after I reverted the value.

Another quick question, I used type 0 and 3 respectively for the USB 2.0 port and the USB 3.0 port on my front panel, and both of them are working fine now. Is it better if I use type 255 for those 2 ports since they are connected to the header on the Mobo?

Thanks again mate.
It really depends on what specifically the internal header is connected to.
Sometimes the board uses an internal hub for such ports, sometimes not.
Sometimes the case itself has an internal hub.
In those situations, the controller ports are connected to an internal device (the hub).
If the controller ports do not go through a hub, ...eg connected directly to external ports, then they get the appropriate UsbConnector depending on the type of external port.

Analyze your ioreg carefully.
 
Joined
Sep 30, 2018
Messages
12
Motherboard
Gigabyte Z370M-D3H
CPU
i7-8086K
Graphics
RX 580
Mac
iMac, MacBook Air
Mobile Phone
iOS
It really depends on what specifically the internal header is connected to.
Sometimes the board uses an internal hub for such ports, sometimes not.
Sometimes the case itself has an internal hub.
In those situations, the controller ports are connected to an internal device (the hub).
If the controller ports do not go through a hub, ...eg connected directly to external ports, then they get the appropriate UsbConnector depending on the type of external port.

Analyze your ioreg carefully.
I see, I'm not gonna pretend I know which case applies to my hack, so long as everything works fine, I am not gonna change anything. Lol
 
Joined
Nov 26, 2012
Messages
1,200
Motherboard
Gigabyte Z370 Aorus Gaming 5
CPU
i7-8700K
Graphics
RX 580
Mac
iMac, MacBook Pro
Mobile Phone
iOS
You have an incorrect "port" address coded for SS07.
You have the same address for SS06 as SS07 (0x16).
SS07 should be 0x17.

The port addresses are correct in SSDT-UIAC-ALL.dsl. Do not change them.
Thank you, that did the trick. This next question is possibly off topic but... I was expecting USB3 devices plugged into USB3 ports to run at speeds in excess of USB2 speeds after setting a correct SSDT. This is what I am getting with every USB3 device with Black Magic speed test, AJA System Test and Amorphous Disk Mark. Any thoughts?
 

Attachments

Joined
May 19, 2014
Messages
47
Motherboard
HP Elitebook 850 G1 - Clover
CPU
i5-4210M
Graphics
HD 4400, 1920x1080
Mac
iMac
Classic Mac
eMac, iMac, LC, Performa, Quadra
Mobile Phone
Android
My Elitebook 850 G1 has been running well from following the Probook guide.

I recently got an AzureWave wifi/Bluetooth card for it, with the BCM4352 chipset, and I cannot get the Bluetooth to show up.

From installing lsusb through 'brew' it seems as though the OS doesn't see Bluetooth device at all. Booting from a Linux live USB, the Bluetooth part of the device does show up under Bus 002 Device 005. (I understand those numbers may be irrelevant to macOS since each OS may enumerate the USB devices differently, but thought I'd mention it just in case it is useful.)

So I followed this guide in an attempt to find an internal USB port that may be hidden from the system due to being outside of the USB device limit. But no matter what options I use, I only end up with XHC and 13 USB ports at the most, which are HS01-HS09 and SS01-SS04, and the ones it shows in use are mapped like this:
HS02: left front USB2
HS03: right side USB2 ports (which are apparently a hub)
HS04: left rear USB2
HS05: IOUSBHostDevice@14500000/AppleUSBHostLegacyClient (This appears to be the fingerprint reader.)
HS07: Webcam
SS02: left front USB3
SS03: right side USB3 (hub)
SS04: left rear USB3
(The SS ports seem to identify as SSP01-04 when not using FakePCIID_XHCIMux.kext)

Something odd to me is that there is no trace of EH01/EH02 in the ioreg, even though I did see EHC/EHC1 mentioned in my DSDT, and the rename patches seem to find things to patch when I look in the logs. I only get the XHC ports.

Is there something in my configuration that is preventing the internal USB port that the Bluetooth is attached to from being seen by the OS?

Problem report attached.
 

Attachments

Last edited:

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I see, I'm not gonna pretend I know which case applies to my hack, so long as everything works fine, I am not gonna change anything. Lol
It is easy to detect internal devices. They are the devices that are connected before you plug anything in.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Thank you, that did the trick. This next question is possibly off topic but... I was expecting USB3 devices plugged into USB3 ports to run at speeds in excess of USB2 speeds after setting a correct SSDT. This is what I am getting with every USB3 device with Black Magic speed test, AJA System Test and Amorphous Disk Mark. Any thoughts?
Depends on the device. Some USB3 devices simply aren't capable of saturating the USB2 bus.
And you didn't attach PR files anyway,...
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
My Elitebook 850 G1 has been running well from following the Probook guide.

I recently got an AzureWave wifi/Bluetooth card for it, with the BCM4352 chipset, and I cannot get the Bluetooth to show up.

From installing lsusb through 'brew' it seems as though the OS doesn't see Bluetooth device at all. Booting from a Linux live USB, the Bluetooth part of the device does show up under Bus 002 Device 005. (I understand those numbers may be irrelevant to macOS since each OS may enumerate the USB devices differently, but thought I'd mention it just in case it is useful.)

So I followed this guide in an attempt to find an internal USB port that may be hidden from the system due to being outside of the USB device limit. But no matter what options I use, I only end up with XHC and 13 USB ports at the most, which are HS01-HS09 and SS01-SS04, and the ones it shows in use are mapped like this:
HS02: left front USB2
HS03: right side USB2 ports (which are apparently a hub)
HS04: left rear USB2
HS05: IOUSBHostDevice@14500000/AppleUSBHostLegacyClient (This appears to be the fingerprint reader.)
HS07: Webcam
SS02: left front USB3
SS03: right side USB3 (hub)
SS04: left rear USB3
(The SS ports seem to identify as SSP01-04 when not using FakePCIID_XHCIMux.kext)

Something odd to me is that there is no trace of EH01/EH02 in the ioreg, even though I did see EHC/EHC1 mentioned in my DSDT, and the rename patches seem to find things to patch when I look in the logs. I only get the XHC ports.

Is there something in my configuration that is preventing the internal USB port that the Bluetooth is attached to from being seen by the OS?

Problem report attached.
Boot with -uia_ignore_rmcf, then attach resulting ioreg.
 
Joined
Sep 22, 2016
Messages
275
Motherboard
Z170X-UD5 TH - Clover
CPU
i7-6700K
Graphics
GTX 970
Mac
Mac mini
Mobile Phone
iOS
In order to create a custom SSDT that contains the correct data for a given computer's USB arrangement, we must first discover all the ports that need to be enabled.
What are USR1, USR2 ports?
 

Top