Contribute
Register

How to build your own iMac Pro [Successful Build/Extended Guide]

Status
Not open for further replies.
X299 Usb Kext is my Kext for all USB Ports which I use. It also includes the X299 Deluxe and all ports for iMac/iMac Pro and MacPro 6,1 SMBios. It’s not necessary most of the time but normally you have to implement USBX what I don’t need since I just created the Kext with all ports defined and with the file in your EFI
AppleBusPowerController will load correctly, what it does not all the time without the Kext! I know the usb controller was natively implemented in AppleUSBXHCISPT3 but this doesn’t mean that MacOS knows which connector type the port is on its own for example is and this can bring problems.

I don’t need any USB port limit patch at all and yes this way sleep works on my rig.

But I still have to mess around with hot plug via thunderbolt. After Sleep I have to reboot my System since my UAD Apollo will not be recognised anymore since it can’t just connect without hotplug feature.

Thank you for sharing, DSM2! This is extremly helpful.

I have the same board as you, with iMac Pro 1,1 profile based on KGP's awesome guide.

Is it possible to figure out how to set up the X299 USB kext? For some reason my Broadcom USB swap (as suggested by other people in this thread) does not show up after I inject this kext, but everything else works perfect.

Since the Broadcom bluetooth is internal (using UsbConnect 255), it doesn't show up in IOReg, but does when I remove the X299 USB kext. This seems like a super awesome way to do USB power distribution and cleaner than SSDTs!

For example before injecting the kext the Broadcom lives on HS13 on port 0d 00 00 00 and is internal so its 255 type of UsbConnector.

How should I set this up, should I inject the kext first then edit the .plist inside the kext? I have disabled USB port limit patch.
(but in this case the Broadcom USB BT would not show up unless I remove it and reboot).

How would I edit this with the info above?
Code:
                    <key>HS11</key>
                    <dict>
                        <key>UsbConnector</key>
                        <integer>0</integer>
                        <key>port</key>
                        <data>CwAAAA==</data>
                    </dict>

Thank you
 
Last edited:
The PEGP device doesn't appear in the DSDT, it's a standard device attached to BR1A where the TB is attached. IT's attached to SL01 device.
What the DSDT do is disabled both SL01 and PEGP ...
I see. So any ideas on what I can edit? It's strange - I wonder if it's possible that I have a different revision of the x299 Prime Deluxe board maybe?
 
can you send me a clean ioreg , without any patch ? thank you
Here is my ioreg without Clover DSDT Patches or any SSDT.
 

Attachments

  • EG’s iMac Pro.ioreg
    34.9 MB · Views: 197
@JH1

Try this modified kext.

Code wise I added this:
Code:
    <key>HS13</key>
                    <dict>
                        <key>UsbConnector</key>
                        <integer>0</integer>
                        <key>port</key>
                        <data>DQAAAA==</data>

By the way:

This method is created by a german guy called @brumbaer from the German hackintosh-forum.
It's the cleanest and best method I found so far in all the hackintosh years since 2012 in my personal opinion!
So all credits for this method goes to him, I just created the kext for my builds.
 

Attachments

  • X299USB.kext.zip
    2.4 KB · Views: 87
@JH1

Try this modified kext.

Code wise I added this:
Code:
    <key>HS13</key>
                    <dict>
                        <key>UsbConnector</key>
                        <integer>0</integer>
                        <key>port</key>
                        <data>DQAAAA==</data>

By the way:

This method is created by a german guy called @brumbaer from the German hackintosh-forum.
It's the cleanest and best method I found so far in all the hackintosh years since 2012 in my personal opinion!
So all credits for this method goes to him, I just created the kext for my builds.

That's great thanks...

Would you have a guide on how to edit this config.plist and verify that all is good?
Wanted to see if I could adapt this for the ASRock board.

The file you attached earlier is I'm guessing for the Designare only right?

Edit: Never mind, I figured it out...
So here for example I have HS14, found at port showing in IOReg [0e 00 00 00]
This become; DgAAAA==
that gives:
Code:
                   <key>HS14</key>
                   <dict>
                       <key>UsbConnector</key>
                       <integer>0</integer>
                       <key>port</key>
                       <data>DgAAAA==</data>
                   </dict>

did I get this right?
 
Last edited by a moderator:
That's great thanks...

Would you have a guide on how to edit this config.plist and verify that all is good?
Wanted to see if I could adapt this for the ASRock board.

The file you attached earlier is I'm guessing for the Designare only right?

Edit: Never mind, I figured it out...
So here for example I have HS14, found at port showing in IOReg [0e 00 00 00]
This become; DgAAAA==
that gives:
Code:
                   <key>HS14</key>
                   <dict>
                       <key>UsbConnector</key>
                       <integer>0</integer>
                       <key>port</key>
                       <data>DgAAAA==</data>
                   </dict>

did I get this right?

Just use the port showing in Ioreg, after you save the edited plist it will become something like DgAAAA or so.

Just use my kext as the template since the necessary part is already there and just add or remove HS Ports/SS Ports which are unused.

But don't load the kext into your EFI.
First verify all ports and make some notes which Port is Originally which one (USB 2 Port will be defined as 0 - USB 3 Port as 3 and Bluetooth WIFI will do its job with 0 or 255)


My kext features the Asus Prime X299 Deluxe and of course the Designare
but there is maybe still some work needed since I dont use the USB 3 Port on the top of the Motherboard.
So there are still some ports not implemented possibly.
Would you mind sending me the kext for the AsRock as soon as you are done with it ?
Would implement that in my kext as well.

KGP did a guide/translation for this method originally coming from Brumbaer:

https://www.tonymacx86.com/threads/macos-high-sierra-10-13-xhc-usb-kext-creation-guideline.242999/
 
Last edited:
@JH1

Try this modified kext.

Code wise I added this:
Code:
    <key>HS13</key>
                    <dict>
                        <key>UsbConnector</key>
                        <integer>0</integer>
                        <key>port</key>
                        <data>DQAAAA==</data>

By the way:

This method is created by a german guy called @brumbaer from the German hackintosh-forum.
It's the cleanest and best method I found so far in all the hackintosh years since 2012 in my personal opinion!
So all credits for this method goes to him, I just created the kext for my builds.

M8 you're a genius! :headbang:
(and the other user who came up with the method).

What I did was:

1. Download your latest kext and keep HS13 intact.
2. Enable USB Limit Patch in config.plist
3. Reboot
4. Use IOReg 2.1 to find ports
5. Use XCode to edit ports ie 14 00 00 00 and add any needed in your .kext (info.plist inside).
For UsbConnector: 0 = USB 2.0, 3 = USB 3.0, 255 = Internal
6. Make sure ports are max of 15 (because Apple has this limit and anything over even with the patch might cause issues)
7. Delete any ports you don't need to keep 15 max.
8. Disable USB Limit Patch in config.plist
9. Reboot

Everything now works perfect. Including front 2 ports. :geek:

Just a question, does this provide proper power distribution like RehabMan's guide (which seems doable but very hard for me to do for some reason).
 
Last edited:
@JH1 :
Yes this method provides proper power distribution.
Yes, actually you can use 0/3/or go with 255 as Internal.
Its up to you as long as you dont set an usb 3 device to 0 and wonder why it won't work like it should.
Most of the time I set 0 on a Wifi/Bluetooth Card 255 would be actually correct.
Sorry dont now RehabMan's Guide and never was interested in it.
 
Last edited:
  • Like
Reactions: JH1
Status
Not open for further replies.
Back
Top