Contribute
Register

How to extend the iMac Pro to X99 [Successful Build/Extended Guide]

Status
Not open for further replies.
Hey, I had one question about graphics card switching. I was planning to try this guide out this weekend. My question is related to alternating between NVIDIA and AMD GPUs. I read by one of the posters in this thread that Vega 64 worked out of the box. If I were to install NVIDIA web driver would disabling it in the settings menu then swapping out graphics cards do the trick? Or would I have to remove other kexts or modify config.plist?

I would avoid switching the cards! If you have a Vega 64, use the latter for testing this guide. It is natively supported by OS X, although Apple's natively implemented driver is far working working flawless either...

If you start switching between the vega 64 and any Nvidia graphics card + related web driver, you might end up with a totally unbootable system, which you certainly want to avoid!

Please complete your profile concerning your hardware configuration! Thanks!
 
Hey man, thanks for the suggestion earlier on removing the drivers manually in terminal, i ended up plugging it in as an external drive to my MBP and deleting them that way, but i still have the same problem i had before, it's as if the broken drivers are still there.

EDIT: Ok so after checking in terminal they are still there so i guess please can you tell me how to delete kext files in terminal as all of the online methods have not worked. (Every time i try it says read-only filesystem)

EDIT: I managed to work it out the code you need is: sudo rm -rf /The full file path of the kext file and i found that i wouldnt let me do it through the recovery terminal so i plugged it into my macbook pro and had no issues!
 
Last edited:
Hey man, thanks for the suggestion earlier on removing the drivers manually in terminal, i ended up plugging it in as an external drive to my MBP and deleting them that way, but i still have the same problem i had before, it's as if the broken drivers are still there

if you removed all related
Hey man, thanks for the suggestion earlier on removing the drivers manually in terminal, i ended up plugging it in as an external drive to my MBP and deleting them that way, but i still have the same problem i had before, it's as if the broken drivers are still there.

EDIT: Ok so after checking in terminal they are still there so i guess please can you tell me how to delete kext files in terminal as all of the online methods have not worked. (Every time i try it says read-only filesystem)

EDIT: I managed to work it out the code you need is: sudo rm -rf *The full file path of the kext file* and i found that i wouldnt let me do it through the recovery terminal so i plugged it into my macbook pro and had no issues!

Exactly! Sudo rm -rf, but be careful with the *, wich means ALL FILES, not only those of the web driver!!!!!! -r * deletes also all subdirectories !!!
 
if you removed all related


Exactly! Sudo rm -rf, but be careful with the *, wich means ALL FILES, not only those of the web driver!!!!!! -r * deletes also all subdirectories !!!

Yeah, luckily i didn't do that, i am currently trying to do the agpdfix method as the first method did not work for me. But it is saying SIP is enabled wheni manually disabled it.
 
Yeah, luckily i didn't do that, i am currently trying to do the agpdfix method as the first method did not work for me. But it is saying SIP is enabled wheni manually disabled it.

Please edit your post #603 !!! If somebody follows your advice, he removes the entire content of /S/L/E and /L/E/ !!!!!!! The latter would be a disaster and would demand a clean install by default!

And what do you mean by manually disabled SIP????

In the config.plist of my distributed EFI-Folder, CsrActiveConfig is set to "0x67", which means SIP disabled!

For the web driver installation you should primarily change CsrActiveConfig to "0x0" (which means SIP enabled) and reboot your system !

Is that so difficult to understand??
 
Last edited:
Please edit your post #603 !!! If somebody follows your advice, he removes the entire content of /S/L/E and /L/E/ !!!!!!! The latter would be a disaster and would demand a clean install by default!

You have SIP enabled although you booted with CsrActiveConfig "0x0" ??? Again not really believable....

Hey man, i just changed it sorry about that, i shouldn't have used the "*" like that, but the problem still persists with agpdfix, so i tried the other methods but they also have failed, any suggestions?, i have a gtx 970 reference card
 
Hey man, i just changed it sorry about that, i shouldn't have used the "*" like that, but the problem still persists with agpdfix, so i tried the other methods but they also have failed, any suggestions?, i have a gtx 970 reference card

Again:

what do you mean by manually disabled SIP????

In the config.plist of my distributed EFI-Folder, CsrActiveConfig is set to "0x67", which means SIP disabled!

For the web driver installation, you should change CsrActiveConfig to "0x0" (which means SIP enabled) and reboot your system primarily to the web driver installation!

Is that so difficult to understand??
 
Again:

what do you mean by manually disabled SIP????

In the config.plist of my distributed EFI-Folder, CsrActiveConfig is set to "0x67", which means SIP disabled!

For the web driver installation, you should change CsrActiveConfig to "0x0" (which means SIP enabled) and reboot your system primarily to the web driver installation!

Is that so difficult to understand??

I'm really sorry, I didn't read it properly, and I do understand!!
 
What do I wrong? Does some one know?
Stuck directly after pressing boot from USB Installer, see Image

Clean Install 10.13
Mobo: Asus X-99 Aii + i7-6850k + 32GB RAM (QVL Matched)
Graphics: GTX 1080 / UHD Display @ DisplayPort 1.2
USB 3.1 Stick (C&A Type Tested)

I had carefully studied the guide 10 times... EFI CLOVER KEXT everything!

I can´t find my failure!
 
Looks good to me now, @kgp!

I updated the external NVMe icon patch for 10.13 (by simply shrinking it by one byte, so it no longer contains the struct offset that is part of the trailing instruction, hopefully also making it a bit more resilient against future updates). However, that alone didn't fix it. There's a bug in Clover where, in some situations (namely: when one of the built-in patches somehow matches the target kext, like it does with the NVMe one), user provided patches are just skipped. I hacked together a fix for that as well.

Updated Kext patch:
Code:
Name*            Find* [HEX]           Replace* [HEX]        Comment                      MatchOS
IONVMeFamily     4885c074 07808b       4885c090 90808b       External NVME Icon Patch     10.13.x

Patch applied to the Clover source:
Code:
Index: rEFIt_UEFI/Platform/kext_patcher.c
===================================================================
--- rEFIt_UEFI/Platform/kext_patcher.c    (revision 4238)
+++ rEFIt_UEFI/Platform/kext_patcher.c    (working copy)
@@ -1017,19 +1017,19 @@
    // SandyBridge-E AppleIntelCPUPowerManagement Patch implemented by syscl
    //
    SNBE_AICPUPatch(Driver, DriverSize, InfoPlist, InfoPlistSize, Entry);
-  } else {
-    //
-    //others
-    //
-    for (i = 0; i < Entry->KernelAndKextPatches->NrKexts; i++) {
-      CHAR8 *Name = Entry->KernelAndKextPatches->KextPatches[i].Name;
-      BOOLEAN   isBundle = (AsciiStrStr(Name, ".") != NULL);
-      if ((Entry->KernelAndKextPatches->KextPatches[i].DataLen > 0) &&
-          isBundle?(AsciiStrCmp(gKextBundleIdentifier, Name) == 0):(AsciiStrStr(InfoPlist, Name) != NULL)) {
-      //    (AsciiStrStr(InfoPlist, Entry->KernelAndKextPatches->KextPatches[i].Name) != NULL)) {
-        DBG_RT(Entry, "\n\nPatch kext: %a\n", Entry->KernelAndKextPatches->KextPatches[i].Name);
-        AnyKextPatch(Driver, DriverSize, InfoPlist, InfoPlistSize, i, Entry);
-      }
+  }
+
+  //
+  //others
+  //
+  for (i = 0; i < Entry->KernelAndKextPatches->NrKexts; i++) {
+    CHAR8 *Name = Entry->KernelAndKextPatches->KextPatches[i].Name;
+    BOOLEAN   isBundle = (AsciiStrStr(Name, ".") != NULL);
+    if ((Entry->KernelAndKextPatches->KextPatches[i].DataLen > 0) &&
+        isBundle?(AsciiStrCmp(gKextBundleIdentifier, Name) == 0):(AsciiStrStr(InfoPlist, Name) != NULL)) {
+    //    (AsciiStrStr(InfoPlist, Entry->KernelAndKextPatches->KextPatches[i].Name) != NULL)) {
+      DBG_RT(Entry, "\n\nPatch kext: %a\n", Entry->KernelAndKextPatches->KextPatches[i].Name);
+      AnyKextPatch(Driver, DriverSize, InfoPlist, InfoPlistSize, i, Entry);
    }
   }

I also PMed this patch to Slice, so we'll just have to see if he's going to accept it into the source.

For the impatient of you, I attached a Clover binary with the fix compiled in, in case anyone faces this issue as well and needs a fix NOW before it's merged into Clover. Just replace EFI/BOOT/BOOTX64.efi and EFI/CLOVER/CLOVERX64.efi. :)
 

Attachments

  • CLOVERX64.efi
    698.2 KB · Views: 142
Status
Not open for further replies.
Back
Top