- Joined
- Aug 4, 2018
- Messages
- 46
- Motherboard
- ASUS Prime X299 Deluxe
- CPU
- i9-7940X
- Graphics
- GTX 1070 + GTX 1080 + RX 580
After looking into DSDT I figured out that NOTHING substituted SL0A. So the key to get this adopted was to remove the removal of PEGP. Now everything looks similar to your screenshot.1.) Are you sure that when you disable SL0A it is substituted by PEGP? please look up DSDT.. maybe it is PXSX?
Okay, got it. Now it makes sense why I had to adopt.2.) The most recent TB-SSDT has been configured for and tested with the Gigabyte Alpine Ridge.. If you use the latter there is no need for any further adaptations of the file, such as subsystem-vendor-ID, subsystem-ID or compatible! Values have been chosen on purpose such.
I found no solution to the annoying issue. It is also why Unlock with Apple Watch never worked since bluetooth and in fact any connected USB device would be disconnected during wakeup. I ended up switching to the Z370 8700k platform for ease of use, and also switched my 1080Ti for a Sapphire Vega 64 Nitro +Hi @TheOfficialGypsy,
did you find a solution for this problem meanwhile?
Testing a lot here but still no luck.
Found your rather old posting...
I see you have a Designarex x299...I've the same mobo but sleep doesn't work properly. How do you have working sleep? Please can you share your EFI and if you changed bios parameters? It would be appreciated...it's the only issue I cannot solve with my conf.
The CP-PR replacements for i9-7960X:
Code:<dict> <key>Comment</key> <string>CP00 -> PR00</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwMA== </data> <key>Replace</key> <data> UFIwMA== </data> </dict> <dict> <key>Comment</key> <string>CP01 -> PR01</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwMQ== </data> <key>Replace</key> <data> UFIwMQ== </data> </dict> <dict> <key>Comment</key> <string>CP02 -> PR02</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwMg== </data> <key>Replace</key> <data> UFIwMg== </data> </dict> <dict> <key>Comment</key> <string>CP03 -> PR03</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwMw== </data> <key>Replace</key> <data> UFIwMw== </data> </dict> <dict> <key>Comment</key> <string>CP04 -> PR04</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwNA== </data> <key>Replace</key> <data> UFIwNA== </data> </dict> <dict> <key>Comment</key> <string>CP05 -> PR05</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwNQ== </data> <key>Replace</key> <data> UFIwNQ== </data> </dict> <dict> <key>Comment</key> <string>CP06 -> PR06</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwNg== </data> <key>Replace</key> <data> UFIwNg== </data> </dict> <dict> <key>Comment</key> <string>CP07 -> PR07</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwNw== </data> <key>Replace</key> <data> UFIwNw== </data> </dict> <dict> <key>Comment</key> <string>CP08 -> PR08</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwOA== </data> <key>Replace</key> <data> UFIwOA== </data> </dict> <dict> <key>Comment</key> <string>CP09 -> PR09</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwOQ== </data> <key>Replace</key> <data> UFIwOQ== </data> </dict> <dict> <key>Comment</key> <string>CP0A -> PR10</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwQQ== </data> <key>Replace</key> <data> UFIxMA== </data> </dict> <dict> <key>Comment</key> <string>CP0B -> PR11</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwQg== </data> <key>Replace</key> <data> UFIxMQ== </data> </dict> <dict> <key>Comment</key> <string>CP0C -> PR12</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwQw== </data> <key>Replace</key> <data> UFIxMg== </data> </dict> <dict> <key>Comment</key> <string>CP0D -> PR13</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwRA== </data> <key>Replace</key> <data> UFIxMw== </data> </dict> <dict> <key>Comment</key> <string>CP0E -> PR14</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwRQ== </data> <key>Replace</key> <data> UFIxNA== </data> </dict> <dict> <key>Comment</key> <string>CP0F -> PR15</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AwRg== </data> <key>Replace</key> <data> UFIxNQ== </data> </dict> <dict> <key>Comment</key> <string>CP10 -> PR16</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxMA== </data> <key>Replace</key> <data> UFIxNg== </data> </dict> <dict> <key>Comment</key> <string>CP11 -> PR17</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxMQ== </data> <key>Replace</key> <data> UFIxNw== </data> </dict> <dict> <key>Comment</key> <string>CP12 -> PR18</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxMg== </data> <key>Replace</key> <data> UFIxOA== </data> </dict> <dict> <key>Comment</key> <string>CP13 -> PR19</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxMw== </data> <key>Replace</key> <data> UFIxOQ== </data> </dict> <dict> <key>Comment</key> <string>CP14 -> PR20</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxNA== </data> <key>Replace</key> <data> UFIyMA== </data> </dict> <dict> <key>Comment</key> <string>CP15 -> PR21</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxNQ== </data> <key>Replace</key> <data> UFIyMQ== </data> </dict> <dict> <key>Comment</key> <string>CP16 -> PR22</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxNg== </data> <key>Replace</key> <data> UFIyMg== </data> </dict> <dict> <key>Comment</key> <string>CP17 -> PR23</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxNw== </data> <key>Replace</key> <data> UFIyMw== </data> </dict> <dict> <key>Comment</key> <string>CP18 -> PR24</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxOA== </data> <key>Replace</key> <data> UFIyNA== </data> </dict> <dict> <key>Comment</key> <string>CP19 -> PR25</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxOQ== </data> <key>Replace</key> <data> UFIyNQ== </data> </dict> <dict> <key>Comment</key> <string>CP1A -> PR26</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxQQ== </data> <key>Replace</key> <data> UFIyNg== </data> </dict> <dict> <key>Comment</key> <string>CP1B -> PR27</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxQg== </data> <key>Replace</key> <data> UFIyNw== </data> </dict> <dict> <key>Comment</key> <string>CP1C -> PR28</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxQw== </data> <key>Replace</key> <data> UFIyOA== </data> </dict> <dict> <key>Comment</key> <string>CP1D -> PR29</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxRA== </data> <key>Replace</key> <data> UFIyOQ== </data> </dict> <dict> <key>Comment</key> <string>CP1E -> PR30</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxRQ== </data> <key>Replace</key> <data> UFIzMA== </data> </dict> <dict> <key>Comment</key> <string>CP1F -> PR31</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AxRg== </data> <key>Replace</key> <data> UFIzMQ== </data> </dict> <dict> <key>Comment</key> <string>CP20 -> PR32</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyMA== </data> <key>Replace</key> <data> UFIzMg== </data> </dict> <dict> <key>Comment</key> <string>CP21 -> PR33</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyMQ== </data> <key>Replace</key> <data> UFIzMw== </data> </dict> <dict> <key>Comment</key> <string>CP22 -> PR34</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyMg== </data> <key>Replace</key> <data> UFIzNA== </data> </dict> <dict> <key>Comment</key> <string>CP23 -> PR35</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyMw== </data> <key>Replace</key> <data> UFIzNQ== </data> </dict> <dict> <key>Comment</key> <string>CP24 -> PR36</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyNA== </data> <key>Replace</key> <data> UFIzNg== </data> </dict> <dict> <key>Comment</key> <string>CP25 -> PR37</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyNQ== </data> <key>Replace</key> <data> UFIzNw== </data> </dict> <dict> <key>Comment</key> <string>CP26 -> PR38</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyNg== </data> <key>Replace</key> <data> UFIzOA== </data> </dict> <dict> <key>Comment</key> <string>CP27 -> PR39</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyNw== </data> <key>Replace</key> <data> UFIzOQ== </data> </dict> <dict> <key>Comment</key> <string>CP28 -> PR40</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyOA== </data> <key>Replace</key> <data> UFI0MA== </data> </dict> <dict> <key>Comment</key> <string>CP29 -> PR41</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyOQ== </data> <key>Replace</key> <data> UFI0MQ== </data> </dict> <dict> <key>Comment</key> <string>CP2A -> PR42</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyQQ== </data> <key>Replace</key> <data> UFI0Mg== </data> </dict> <dict> <key>Comment</key> <string>CP2B -> PR43</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyQg== </data> <key>Replace</key> <data> UFI0Mw== </data> </dict> <dict> <key>Comment</key> <string>CP2C -> PR44</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyQw== </data> <key>Replace</key> <data> UFI0NA== </data> </dict> <dict> <key>Comment</key> <string>CP2D -> PR45</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyRA== </data> <key>Replace</key> <data> UFI0NQ== </data> </dict> <dict> <key>Comment</key> <string>CP2E -> PR46</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyRQ== </data> <key>Replace</key> <data> UFI0Ng== </data> </dict> <dict> <key>Comment</key> <string>CP2F -> PR47</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AyRg== </data> <key>Replace</key> <data> UFI0Nw== </data> </dict> <dict> <key>Comment</key> <string>CP30 -> PR48</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AzMA== </data> <key>Replace</key> <data> UFI0OA== </data> </dict> <dict> <key>Comment</key> <string>CP31 -> PR49</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AzMQ== </data> <key>Replace</key> <data> UFI0OQ== </data> </dict> <dict> <key>Comment</key> <string>CP32 -> PR50</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AzMg== </data> <key>Replace</key> <data> UFI1MA== </data> </dict> <dict> <key>Comment</key> <string>CP33 -> PR51</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AzMw== </data> <key>Replace</key> <data> UFI1MQ== </data> </dict> <dict> <key>Comment</key> <string>CP34 -> PR52</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AzNA== </data> <key>Replace</key> <data> UFI1Mg== </data> </dict> <dict> <key>Comment</key> <string>CP35 -> PR53</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AzNQ== </data> <key>Replace</key> <data> UFI1Mw== </data> </dict> <dict> <key>Comment</key> <string>CP36 -> PR54</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AzNg== </data> <key>Replace</key> <data> UFI1NA== </data> </dict> <dict> <key>Comment</key> <string>CP37 -> PR55</string> <key>Disabled</key> <false/> <key>Find</key> <data> Q1AzNw== </data> <key>Replace</key> <data> UFI1NQ== </data> </dict>
IOreg screenshot: pending from @egroys
Thanks for all your answers.
With my real Mac (MBP) I never had this issue so I can't test it there.
The USB hard drives were from Seagate, also tested pen drives by SanDisk and others. So far all behave the same.
Will have a look into Mountain, thanks.
Thanks for your kext and uploads, @izo1
I will have a look into it.
As I have the ASUS Prime Deluxe mobo I followed kgp's guide and use his SSDTs (the EFI contribution with three SSDTs) as well as USB kext, without USBInjectAll, but with port limit patch.
I deactivated the patch as well as the kext, but the eject problem was still there (not trying the Spotlight workaround though).
As I don't use all my USB ports anyway, I will have a look in stripping down kgp's kext and deactivate some USB 2 functions to stay under the amount of 15 ports and after that deactivate the port limit patch.
This would also make future system updates maybe a bit smoother.
I also tried disabling XMP (found somewhere) -> but made no difference
In one forum someone solved it by disabling BIOS setting 'Internal CPU PLL Overvoltage'.
It looks like it was a Gigabyte mobo (GA-Z77X-UP5 TH). Is this setting also available in the Designare?
This looks as if you have a correctly configured 16 core / 32 thread CPU. Good job!You rock!! Thank you.
How does this look?
After looking into DSDT I figured out that NOTHING substituted SL0A. So the key to get this adopted was to remove the removal of PEGP. Now everything looks similar to your screenshot.
Okay, got it. Now it makes sense why I had to adopt.
After I switched the card to Slot-4, my original adoption that includes PEGP removal worked like a charm.
Attaching SSDT for Slot4 and Slot6 for the ones who are interested.
Now, my Thunderbolt device still doesn't appear when cold-plugged. BUT after moving the card back and forth between Slot4 and Slot6, when I hot-plug or unplug my RAID - I'm getting the system to freeze. Maybe it's a good sign?
Scope (\_SB.PC03.BR3A)
{
Scope (SL09)
{
Name (_STA, Zero) // _STA: Status
}
Scope (PEGP)
{
Name (_STA, Zero) // _STA: Status
}
Device (XGBE)
{
Name (_ADR, Zero) // _ADR: Address
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If (LEqual (Arg2, Zero))
{
Return (Buffer (One)
{
0x03
})
}
Store (Package (0x10)
{
"AAPL,slot-name",
Buffer (0x07)
{
"Slot-6"
},
"built-in",
Buffer (One)
{
0x00
},
"name",
Buffer (0x32)
{
"ASUS XG-C100C Aquantia AQC107 10-Gigabit Ethernet"
},
"model",
Buffer (0x11)
{
"Apple AQC107-AFW"
},
"location",
Buffer (0x02)
{
"1"
},
"subsystem-id",
Buffer (0x04)
{
0x87, 0x01, 0x00, 0x00
},
"device-id",
Buffer (0x04)
{
0xB1, 0x07, 0x00, 0x00
},
"subsystem-vendor-id",
Buffer (0x04)
{
0x6B, 0x10, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
Right, I forgot about plugintype. You do have a step to enable it - I think it needs to be dropped then.
Then the only step it would replace is UUID generation with UUIDgen - I use a Python library to do the same.
I appreciate your thought-out proposal, thanks a lot for looking into this and I'm excited to contribute.
- Editing the existing Clover/config.plist wouldn't be hard to implement, my concern is that modifying system partition will require more QC and support, because the script would be able to brick the computer if something goes wrong during the execution. Even with a perfectly valid script there are ways this can go wrong, e.g. a power outage. Editing or creating the config during initial build would be safer, because you'll still need to use Clover configurator after and that'll validate the changes done by the script. Even if something goes very wrong - worst thing that'll happen is that installation USB will be unbootable. I'm sure ups wouldn't appreciate some users in this thread complaining about bricking their computer
- I agree that indeed changes in source config.plist would need to be synched-up to this project, this creates maintenance overhead. It's much smaller than supporting editing of unique configs users have already put on their EFI Partition, but still existent. Right now I have a template in there that I created manually, and that would need to be changed. A few approaches we can do to eliminate the overhead:
1) Remove the config.plist from your EFI distribution, so that the original source of truth is stored alongside this script. Probably not the best approach.
2) We can modify the script to replace config supplied in your EFI distribution with the one rendered from template (but the overhead will stay)
3) We can implement an option to modify the config supplied using XML replacement, so that Cloverfield is not bundled with a config.plist at all
+ For 2) and 3) we can actually implement a download of the most recent EFI distribution to make it easier to the users.
++ I could also add a feature to drop in appropriate SMC Kext pre-modified with the right number of cores
+++ If this happens to run on the target machine (e.g. under Windows and Linux) - it would be easy enough to auto-detect the CPU and make the script completely automatic.
Question: do you expect people will want to apply CPU replacements after initial build is done? My understanding is that this only has to be done once per build.
Let me know what I'm missing!