Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
A good example is the issue where users with 13,2 smbios will face or did you not consider this?
Known problem. And is a different problem. Not addressed by this guide (but relatively simple to edit the Info.plist).
Best to use a different SMBIOS than those that have existing injectors.

Basic guidelines are to use that which matches your actual hardware.If you write a guide at least you should be willing to answer questions, if not preface your guide by stating that users without ''certain level of background/skills'' should not attempt nor ask questions.A user would typically ask questions to try to get a better understanding before submitting problem files since he has no idea what the problem is to begin with.
I answer plenty of questions...
But for those who seem to think I owe them something...

If you think because you wrote the Kext,Guide etc you can't be lost as to what a user is trying to explain to you then keep on that track.Yet majority of hack users just use the Port limit patch, while we know because that's just way easier there is another element, which is quite obvious.
Port limit not recommended for long term use. Use only for port discovery.
Keep in mind that 7-series does not require the port limit patch at all. Only 8 ports possible on 7-series XHC.

Again all this was explained in my post.The second one supposedly is HP 26 but nothing ever came up on that with either USB3/USB2 stick so I left it out.
It probably means you did not plug a USB2 device into that hub.
As written in post #1, you must test every port with *both* a USB2 and USB3 device.

I did it even better, I provided dumps at every step to have a clearer picture.Attached again is all that one should need to get a very clear picture together with Debug whilst UAIC in place.The name reflects what the Dump represents.

For the "nothing plugged in", you can write down some things right away:
HP25, HP26, SSP7, SSP8 are all connected to internal hubs.
At this point you can write down portType=2 for HP25 and HP26.
And UsbConnector=255 for SSP7/SSP8.

And assuming that "USB2 (2Rear_2Front) Plugged in" means that these ports are USB2-only, you can write down: HP15, HP16, HP21, HP22 as portType=0

Now with "USB3 (4Rear_2Front) Plugged in", did you also plug USB2 devices into those same ports? It is required (as written in post #1), otherwise you don't know which HS ports are used for the pins associated with those USB3 ports. The ioreg implies you only plugged USB3 devices into these ports. But... all of those ports ended up being ports on the internal hubs (connected to SSP7/SSP8), which have already been identified, so this particular ioreg contributes nothing to SSDT-UIAC (we already have the data for the hubs). And if you had plugged USB2 devices here, you would discover they are also connected to the hubs already identified on HP25/HP26. So nothing to do for those ports as related to USB2 devices either (you could do it just to confirm your understanding of the topology).

Now for "USB2 Stick into(4Rear_2Front) USB3 Ports", this one shows HP14 and PRT3 used. PRT3 is the due to the built-in injector, and once you eliminate those injects (by patching/editing the Info.plist), you will find PRT3 is the same as HP13 (the port address is the same). It also shows HP23 and HP24 used (so those become portType=0). The data on HP25 doesn't matter as we have already taken care of that hub.

For "USB3 Stick into(2Rear_2Front) USB2 Ports", it shows HP15,HP16,HP21,HP22. Of course, you already tested these ports before with USB2 devices. Since they are USB2-only ports, USB3 devices act like a USB2 device (there are no USB3 pins in the port, so they attach only to the USB2 pins inside the device). So, we have nothing to do as a result of this ioreg as we have already determined those ports are portType=0.

Note: It is much easier if you test all ports with both USB2 and USB3 in a single ioreg, as it is then just a matter of looking at the final picture and making the required SSDT edits.

But I think what you have here (just skimming the above for ports/types):
HP25/HP26 portType=2
SSP7/SSP8 UsbConnector=255
HP15/HP16/HP21/HP22 portType=0
HP14/HP13 portType=0
HP23/HP24 portType=0

That is the data for your SSDT.

And then you need to edit the Info.plist to get rid of the iMac13 entries. Wish there as was a better way, but as of now, there isn't. Other than choosing a different SMBIOS, or living with PRT1 still being there (you could adopt PRTx as your hub port names, essentially merging in with PRT3 if you wanted... there is nothing sacred about the HPxx names I have chosen).
 
Joined
Oct 24, 2010
Messages
117
Motherboard
X58A-UD5
CPU
i7-930
Graphics
HD 4870
Mac
iMac, Mac Pro
Mobile Phone
iOS
Now with "USB3 (4Rear_2Front) Plugged in", did you also plug USB2 devices into those same ports? It is required (as written in post #1), otherwise you don't know which HS ports are used for the pins associated with those USB3 ports. The ioreg implies you only plugged USB3 devices into these ports. But... all of those ports ended up being ports on the internal hubs (connected to SSP7/SSP8), which have already been identified, so this particular ioreg contributes nothing to SSDT-UIAC (we already have the data for the hubs). And if you had plugged USB2 devices here, you would discover they are also connected to the hubs already identified on HP25/HP26. So nothing to do for those ports as related to USB2 devices either (you could do it just to confirm your understanding of the topology).
I did test all ports with both USB2/3 Sticks, So I applied the -uia_ignore_rmcf and redid it twice, same thing, nothing comes up on HP26 so maybe that is due to the particular header on the MB or just the way it is on this board?Since nothing comes up on HP26 and your suggestion is that something suppose to, does that mean there is a error on my end?
USB2 sticks that is inserted into the 4 Back USB3 MB Ports come up on HP22/23 (Top 2) & HP13(PRT3)/HP14.(Bottom 2)
USB2 sticks that is inserted into the 2 Front USB3 Case Ports come up on HP25.All other Port locations are outlined in ''USB LayOut & Port Identification Z77X-UD5H rev.1.txt''
Attached is IOreg with all ports tested just to confirm that nothing comes up on HP26.Not to sure if to send a Debug again since I don't know if to Add HP26 or leave it without.Please advise.Bless
 

Attachments

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I did test all ports with both USB2/3 Sticks, So I applied the -uia_ignore_rmcf and redid it twice, same thing, nothing comes up on HP26 so maybe that is due to the particular header on the MB or just the way it is on this board?Since nothing comes up on HP26 and your suggestion is that something suppose to, does that mean there is a error on my end?
Well, I'm not sitting in your chair, so can't really help directly.
Clearly, there is a hub there as it shows in the first ioreg. It could be that the hub is connected to some internal motherboard headers which you're not testing/not using.

Your decision on what to do with it (you could keep it or exclude it).
 
Joined
Oct 24, 2010
Messages
117
Motherboard
X58A-UD5
CPU
i7-930
Graphics
HD 4870
Mac
iMac, Mac Pro
Mobile Phone
iOS
I know you're not sitting here obviously, but since you implied that I did NOT try a USB2 stick I though that you were actually here o_O I described in detail rather than being vague to try and give a virtual representation thinking that I would get the same.I know there is a Hub at HP26 as ioreg shows but since the ''Guide'' says eliminate what you don't use that's exactly what I did and since nothing came up on HP26 I left it out.
For your Guide you use a Laptop & a NUC which is a minority of hack users and neither of which you'll be going into to switch around headers if even possible so I figure I was correct to assume switching around the connection to the different MB Headers is a waste unless the guide implies doing exactly that well I was mistaken.
My take from the Guide is if I leave HP26 I'll not be following the Guide but still be under the port limit unless I'm checking the ports I have in use wrong and since nothing seems to be using it, it should be removed for proper USB implementation yet your response is, its my decision but that's opposite to what the guide suggests and since you're the one who wrote the Kext, Guide etc I'm still unsure cause I certainly dont want to go to another Guide (e.g..Bluetooth,Power Property injection ) only to be told that I don't have a Proper SSDT-UAIC so go fix my issue before I ask question in those threads.See the irony...
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I know you're not sitting here obviously, but since you implied that I did NOT try a USB2 stick I though that you were actually here o_O I described in detail rather than being vague to try and give a virtual representation thinking that I would get the same.I know there is a Hub at HP26 as ioreg shows but since the ''Guide'' says eliminate what you don't use that's exactly what I did and since nothing came up on HP26 I left it out.
For your Guide you use a Laptop & a NUC which is a minority of hack users and neither of which you'll be going into to switch around headers if even possible so I figure I was correct to assume switching around the connection to the different MB Headers is a waste unless the guide implies doing exactly that well I was mistaken.
My take from the Guide is if I leave HP26 I'll not be following the Guide but still be under the port limit unless I'm checking the ports I have in use wrong and since nothing seems to be using it, it should be removed for proper USB implementation yet your response is, its my decision but that's opposite to what the guide suggests and since you're the one who wrote the Kext, Guide etc I'm still unsure cause I certainly dont want to go to another Guide (e.g..Bluetooth,Power Property injection ) only to be told that I don't have a Proper SSDT-UAIC so go fix my issue before I ask question in those threads.See the irony...
No need to test headers you're not going to use (even the NUC has an internal header). And no need to include ports, even if connected to internal devices, that you're not going to use. For example, on my u430, I exclude the port attached to the internal touchscreen because I don't want the touchscreen to work.

But if you ask me "am I doing this right", it is difficult to answer as I'm not sitting in your chair, not actually doing all the tests, not doing all the observations. So, that comes down to you and your own usage.

Strictly following the guide, you would include HP26 as it has an internal device always connected to it (a hub). From the guide perspective, it does not matter that there were no ports tested that actually used that hub (the guide is concerned with controller port injection only). At that point, you have a device that is present, and a port which you can disable if you don't want to use that internal device. That is,... your decision.

Your hardware has no possibility of bumping into any port limit. The port limit is per controller. Your hardware has no controllers capable of exceeding the 15 port limit.
 
Joined
Oct 26, 2012
Messages
2
Motherboard
Asus P8z77-v Pro
CPU
I7-3770K
Graphics
GT 640
Mac
iMac
Mobile Phone
Android
Hi RehabMan
I don't know if it's the right place but I can't use issue ticket in your Github's repo.

I've a problem with USBInjectAll v0.6.9 on my system (Asus p8z77-v pro) installed in /EFI/Clover/Kexts/10.13/. When I launch macOS High Sierra 10.13.6 from Clover GUI, my system reboot at first startup.

All works fine with v0.6.7

What's the solution, please.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,259
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi RehabMan
I don't know if it's the right place but I can't use issue ticket in your Github's repo.

I've a problem with USBInjectAll v0.6.9 on my system (Asus p8z77-v pro) installed in /EFI/Clover/Kexts/10.13/. When I launch macOS High Sierra 10.13.6 from Clover GUI, my system reboot at first startup.

All works fine with v0.6.7

What's the solution, please.
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/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
Joined
Oct 26, 2012
Messages
2
Motherboard
Asus P8z77-v Pro
CPU
I7-3770K
Graphics
GT 640
Mac
iMac
Mobile Phone
Android
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/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
Thanks for your reply. Sorry for my bad english

I've a desktop system (Asus P8z77-V Pro, Corei7 3770K) on macOS 10.13.6. My USB-SSDT + USBInjectAll 0.6.7 works fine since long time ago. The other day, I try v0.6.9 with issues mentioned in my previous post: reboot after Clover GUI.

I can use the gen_debug.sh tool but I don't understand why.

EDIT: all works fine now with v0.6.9. It seems to be a High Sierra's issue with my HDD
 
Last edited:
Joined
Apr 15, 2013
Messages
78
Motherboard
Gigabyte Z370 Aorus Gaming 5
CPU
i7-8700K
Graphics
RX 580
Mac
MacBook Air, MacBook Pro, Mac Pro
Classic Mac
Centris, Color Classic, LC, Performa, Quadra, SE
Mobile Phone
iOS
Hi RehabMan
Sorry for my bad english
I don't know if it's the right place but my custom SSDT for USB is not always working.

Created it by your guide as I wanted to disable internal wifi and use mine, which works great now.
The only problem is that some ports, especially USB 3.0 on my case not always working.

I will upload the gen_debug and SSDT-UIAC
 

Attachments

Joined
Dec 28, 2017
Messages
16
Motherboard
GA-H270-D3H
CPU
i7-7700
Graphics
Asus Nvidia GTX 660
Mac
iMac
Hi RehabMan
Sorry for my bad english
I don't know if it's the right place but my custom SSDT for USB is not always working.

Created it by your guide as I wanted to disable internal wifi and use mine, which works great now.
The only problem is that some ports, especially USB 3.0 on my case not always working.

I will upload the gen_debug and SSDT-UIAC
Your implementation of SSDT-UIAC is not complete... you should set to 0 (rather than 3) the USB ports that are HS but don't have their counterpart as SS.

In your case port HS9 and HS14 are set as USB3 but there is no SS9 and SS14.
 
Top