Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Custom SSDTs for USBInjectAll.kext tend to be specific to each user, mainly because you may choose to use internal headers differently from someone else.

Suggestion: Read post #1 and create your own.

Unfortunately, most of the info is somewhat Greek to me as I'm not terribly computer literate.

What I've done, and is most probably incorrect, is to use the port limit patch, and installed USBInjectALL.kext. And finally I used uia_exclude to remove the ports that weren't used. All my ports work fine. The only thing I notice, and I'm not sure it's related, is that after using Safari for awhile, it slows down to a crawl.
Thanks
 
Unfortunately, most of the info is somewhat Greek to me as I'm not terribly computer literate.

What I've done, and is most probably incorrect, is to use the port limit patch, and installed USBInjectALL.kext. And finally I used uia_exclude to remove the ports that weren't used. All my ports work fine. The only thing I notice, and I'm not sure it's related, is that after using Safari for awhile, it slows down to a crawl.
Thanks

You should read post #1 carefully and follow it exactly.
If you're still in need of the port limit patch (eg. not just for port discovery), then you're doing it wrong.
It is imperative to stay within the 15-port limit.
 
Here's an odd question. My case is a Fractal Design Define R4 and has four front case USB ports, going from left to right: two Blue (USB 3) and two regular USB 2.

In my port assigning, I found the first (leftmost) USB 3 port is HS01, and the one next to it is HS02/SS02. The first USB port only mounted USB2 devices, or mounted USB 3 devices on HS01.

All the other USB 3 ports aligned numerically HSxx with SSxx (HS07 with SS07 etc) and mounted USB2 and USB 3 devices properly (as HS or SS in the IORegistry).

So the only odd one out was SS01 did not show up. In my port definition I deleted SS01 so only had the definition for HS01:
Code:
                    "HS01", Package() // Front USB Left (1)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },

My question is since this USB 3 port only has HS01 assigned to it, should it be set to "UsbConnector", 3 or "UsbConnector", 0 ?
Also since SS01 is deleted I end up with 15 ports total (5 HS/SS and 5 HS). It seems to work OK now- after removing the port limit patch things work accordingly. Is that a correct port count?
 
Last edited:
Sorry If a duplicate question - is it possible to detect USB Type-C port using same technique?
i just finished USB config for my thinkpad x1c 5th gen, with 2 external USB ports and 2 internal (BT, camera) were detected well.
However, there are also 2 Type-C connector for this laptop, for charging/external batter/USB devices. but when i plug usb device (like an android phone) to those connectors, nothing change in IOReg under XHC. is it a normal situation?
Windows will recognize an android phone is plugged (same device, same connector).
thanks.
 
Here's an odd question. My case is a Fractal Design Define R4 and has four front case USB ports, going from left to right: two Blue (USB 3) and two regular USB 2.

In my port assigning, I found the first (leftmost) USB 3 port is HS01, and the one next to it is HS02/SS02. The first USB port only mounted USB2 devices, or mounted USB 3 devices on HS01.

All the other USB 3 ports aligned numerically HSxx with SSxx (HS07 with SS07 etc) and mounted USB2 and USB 3 devices properly (as HS or SS in the IORegistry).

So the only odd one out was SS01 did not show up. In my port definition I deleted SS01 so only had the definition for HS01:
Code:
                    "HS01", Package() // Front USB Left (1)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },

My question is since this USB 3 port only has HS01 assigned to it, should it be set to "UsbConnector", 3 or "UsbConnector", 0 ?
Also since SS01 is deleted I end up with 15 ports total (5 HS/SS and 5 HS). It seems to work OK now- after removing the port limit patch things work accordingly. Is that a correct port count?

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/
 
Sorry If a duplicate question - is it possible to detect USB Type-C port using same technique?
i just finished USB config for my thinkpad x1c 5th gen, with 2 external USB ports and 2 internal (BT, camera) were detected well.
However, there are also 2 Type-C connector for this laptop, for charging/external batter/USB devices. but when i plug usb device (like an android phone) to those connectors, nothing change in IOReg under XHC. is it a normal situation?
Windows will recognize an android phone is plugged (same device, same connector).
thanks.

Depends on whether the USB type C is connected to the XHC controller or a TB3 controller.
 
Depends on whether the USB type C is connected to the XHC controller or a TB3 controller.
Without detail investigation, had thought those type-C should connect to TB3 controller, given they have display output capability in Windows - However, those ports also have USB capability, means TB3 control has its own USB implementation or somehow connect back to XHC?

So the question becomes how to enable type-c ports, at least with USB capability? Sorry if off-topic of this thread.
 
Without detail investigation, had thought those type-C should connect to TB3 controller,

Analyze ioreg or the data in Windows Device Manager to verify.
Never assume anything.
Keep in mind: This guide/thread does not cover TB issues. Such discussions are off-topic here.
 
Here's an odd question. My case is a Fractal Design Define R4 and has four front case USB ports, going from left to right: two Blue (USB 3) and two regular USB 2.

In my port assigning, I found the first (leftmost) USB 3 port is HS01, and the one next to it is HS02/SS02. The first USB port only mounted USB2 devices, or mounted USB 3 devices on HS01.

All the other USB 3 ports aligned numerically HSxx with SSxx (HS07 with SS07 etc) and mounted USB2 and USB 3 devices properly (as HS or SS in the IORegistry).

So the only odd one out was SS01 did not show up. In my port definition I deleted SS01 so only had the definition for HS01:
Code:
                    "HS01", Package() // Front USB Left (1)
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },

My question is since this USB 3 port only has HS01 assigned to it, should it be set to "UsbConnector", 3 or "UsbConnector", 0 ?
Also since SS01 is deleted I end up with 15 ports total (5 HS/SS and 5 HS). It seems to work OK now- after removing the port limit patch things work accordingly. Is that a correct port count?
Files attached
 

Attachments

  • Files.zip
    872.5 KB · Views: 88
Back
Top