Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

Hello Slice, i saw dev like Rehabman distribute their generic config with "disabled:" prefixes to let user to choose what they need later. Its perfectly fine anyway, but can lead confusing for some (new) users. I wonder if Clover Configurator applied those changes someday, we can do more fun with bytes patching which lot easier to manage.

 

About dupicating config, like i mentioned before, without the patch below, all my patches in other config "ex: test.plist" was ignored by Clover if i do direct switch from boot GUI by typing other config filename from it. Its a bug / just me, can you confirm it?

 

** I also add en/disable EFI strings inject under PCI menu in boot GUI. Maybe someone found it useful while doing trial & error with EFI strings injection.

--- /Users/yod/Downloads/Settings.c 2015-12-03 14:41:52.000000000
+++ /Users/yod/Desktop/patch/Settings.c 2015-12-03 14:40:25.000000000
@@ -4750,12 +4750,25 @@
      AppleGuid.Data1 = SwapBytes32 (AppleGuid.Data1);
      AppleGuid.Data2 = SwapBytes16 (AppleGuid.Data2);
      AppleGuid.Data3 = SwapBytes16 (AppleGuid.Data3);
      DBG ("Platform Uuid: %g, InjectSystemID: %a\n", &AppleGuid, gSettings.InjectSystemID ? "Yes" : "No");
      }
*/
+    // KernelAndKextPatches
+    if (!StrLen(gSettings.ConfigName)) {
+      //DBG("\n\n***********************************************n\n");
+      //DBG("\nConfigName: %s\n", gSettings.ConfigName);
+      //DBG("==================================================\n\n");
+      DictPointer = GetProperty (Dict, "KernelAndKextPatches");
+      if (DictPointer != NULL) {
+        FillinKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)&gSettings) + OFFSET_OF(SETTINGS_DATA, KernelAndKextPatches)), DictPointer);
+      }
+    } else {
+      //DBG("\n ConfigName: %s n", gSettings.ConfigName);
+    }
+
     SaveSettings();
   }
//DBG ("config.plist read and return %r\n", Status);
   return EFI_SUCCESS;
}
--- /Users/yod/Downloads/menu.c 2015-12-03 14:10:02.000000000
+++ /Users/yod/Desktop/patch/menu.c 2015-12-03 14:23:39.000000000
@@ -368,13 +368,16 @@
   InputItems[InputItemsCount].ItemType = Decimal;  //71
   InputItems[InputItemsCount++].SValue = PoolPrint(L"%04d", gSettings.DoubleClickTime);
   InputItems[InputItemsCount].ItemType = BoolValue; //72
   InputItems[InputItemsCount].BValue   = gSettings.PointerMirror;
   InputItems[InputItemsCount++].SValue = gSettings.PointerMirror?L"[+]":L"[ ]";
   //reserve for mouse and continue
- 
+  InputItems[InputItemsCount].ItemType = BoolValue; //73
+  InputItems[InputItemsCount].BValue   = gSettings.StringInjector;
+  InputItems[InputItemsCount++].SValue = gSettings.StringInjector?L"[+]":L"[ ]";
+
   InputItemsCount = 74;
   InputItems[InputItemsCount].ItemType = BoolValue; //74
   InputItems[InputItemsCount].BValue   = gSettings.USBFixOwnership;
   InputItems[InputItemsCount++].SValue = gSettings.USBFixOwnership?L"[+]":L"[ ]";

   InputItems[InputItemsCount].ItemType = Hex;  //75
@@ -791,13 +794,18 @@
//    DBG("DoubleClickTime=%d ms\n", gSettings.DoubleClickTime);
   }
   i++; //72
   if (InputItems[i].Valid) {
     gSettings.PointerMirror = InputItems[i].BValue;
   }
- 
+
+  i++; //73
+  if (InputItems[i].Valid) {
+    gSettings.StringInjector = InputItems[i].BValue;
+  }
+

   i = 74;
   if (InputItems[i].Valid) {
     gSettings.USBFixOwnership = InputItems[i].BValue;
   }
   i++; //75
@@ -888,25 +896,29 @@
             DBG("Main settings%d from menu: %r\n", i, Status);
           }
         }
       } else {
         Status = LoadUserSettings(SelfRootDir, InputItems[i].SValue, &dict);
         if (!EFI_ERROR(Status)) {
-          GetUserSettings(SelfRootDir, dict);       
+          if (gSettings.ConfigName) FreePool(gSettings.ConfigName);
+          gSettings.ConfigName  = PoolPrint(L"");
+          GetUserSettings(SelfRootDir, dict);
           if (gConfigDict[2]) FreeTag(gConfigDict[2]);
           gConfigDict[2] = dict;
-          if (gSettings.ConfigName) FreePool(gSettings.ConfigName);
+          //if (gSettings.ConfigName) FreePool(gSettings.ConfigName);
           gSettings.ConfigName = EfiStrDuplicate(InputItems[i].SValue);
         }
+
         DBG("Main settings3 from menu: %r\n", Status);
       }

       FillInputs(FALSE);
       NeedSave = FALSE;
     }
   }
+
   i++; //91
   if (InputItems[i].Valid) {
     gSettings.KernelAndKextPatches.KPLapicPanic = InputItems[i].BValue;
     gBootArgsChanged = TRUE;
   }
   i++; //92
@@ -3729,13 +3741,22 @@
   InputBootArgs->Entry.Tag = TAG_INPUT;
   InputBootArgs->Entry.Row = 0xFFFF;
   InputBootArgs->Item = &InputItems[93];
   InputBootArgs->Entry.AtClick = ActionEnter;
   InputBootArgs->Entry.AtRightClick = ActionDetails;
   AddMenuEntry(SubScreen, (REFIT_MENU_ENTRY*)InputBootArgs);
- 
+
+  InputBootArgs = AllocateZeroPool(sizeof(REFIT_INPUT_DIALOG));
+  InputBootArgs->Entry.Title = PoolPrint(L"Inject EFI Strings:");
+  InputBootArgs->Entry.Tag = TAG_INPUT;
+  InputBootArgs->Entry.Row = 0xFFFF;
+  InputBootArgs->Item = &InputItems[73];
+  InputBootArgs->Entry.AtClick = ActionEnter;
+  InputBootArgs->Entry.AtRightClick = ActionDetails;
+  AddMenuEntry(SubScreen, (REFIT_MENU_ENTRY*)InputBootArgs);
+
   InputBootArgs = AllocateZeroPool(sizeof(REFIT_INPUT_DIALOG));
   InputBootArgs->Entry.Title = PoolPrint(L"FakeID LAN:");
   InputBootArgs->Entry.Tag = TAG_INPUT;
   InputBootArgs->Entry.Row = StrLen(InputItems[97].SValue); //cursor
   InputBootArgs->Item = &InputItems[97];
   InputBootArgs->Entry.AtClick = ActionSelect;
Link to comment
Share on other sites

I have a 1TB WDBlack Caviar format as EXFAT MBR plug as usb hdd enclosure,there is only one folder named Download in it.When I power on it and reboot,clover waste a lot time to load usb hdd data to reach boot menu,there is not such problem when power off it.How to fix it? 

I turn 1TB WD Black Caviar to SATA device,seems clover slowly scan entry problem solved.

Link to comment
Share on other sites

Can someone plz give me some input to my last post on page 446? I don't like to interupt you in your development stuff, therefore, would you recomment to open a new topic about my installation issues?

All your questions are answered. Move forward.

Link to comment
Share on other sites

hi guys,, can you help me to solve my problem,,  i got stuck and hang at clover bootloader , only blank screen and underscore at top left on my scree, but if i use usb clover i can get to clover and show clover boot menu. please help me guys,,


OSx 10.11 MBR Partition,, Clover 3320,,

Link to comment
Share on other sites

Doesn't work for me. Boot log, ioreg of ehc* and dsdt attached. 

it is for good testers, who can say why it is not working.

10:158  0:000   RCBA access disabled; trying to enable
10:158  0:000  Initial value of FD register 0x1F17EC1F
10:158  0:000   recheck value after patch 0x1F17EC1F

Link to comment
Share on other sites

hi 

in my bdmesg

5:985  0:003  USB Controller [8086:8CA6] :: PciRoot(0x0)\Pci(0x1D,0x0)
5:987  0:001   RCBA access disabled; trying to enable
5:988  0:001  stringlength = 2072

I use clover 3329

What does "RCBA"?
And how to implement it?

Link to comment
Share on other sites

Hey guys.

 

Quick question for you: is FakeSMC.kext not required to boot anymore? Cause I sure don't have it anywhere in EFI and I can boot just fine. And no, it's no in L/E or S/L/E, since I don't keep it there.

 

I'm not complaining that it works without it. :)) I'm just curious if you might know anything about this. For as far as I remember, it was always required.

 

bdmesg also doesn't show it as being included.

 

post-1303722-0-63039600-1449402958_thumb.png

 

Is it cached anywhere...?

 

I'm on Clover 3330, if that makes any difference.

Link to comment
Share on other sites

Well, I previously removed kextcache, just for this test. And it booted right up.

 

But yes, without caches also boots up just fine here.

Should be easy to embed a kext in the bootloader, tried in Enoch, but the problem initially was the size limit of the boot file (no place for FakeSMC, even if compressed with lzvn/lzss) then to thin the binary (solved trying a smaller kext), idea abandoned... But for Clover I think that there is no problem to load kexts in this way:

 

FakeSMC_Bin.h.zip

FakeSMC_Info.h.zip

HWSensor3 rev.19

 

As I said, data may also be compressed, then decompressed on the fly.. (the above are not)

 

I have not heard of a commit for this, so probably be sure that you have deleted both prelinkedkernel and kernelcache, because Yosemite and El Capitan have both (one is a copy of the other placed there by kextcache):

 

#define k_kernelcacheFilePath \

"/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache"

 

#define kPrelinkedKernelsPath "/System/Library/PrelinkedKernels"

#define k_prelinkedkernelFilePath kPrelinkedKernelsPath "/prelinkedkernel"

 

source: http://www.opensource.apple.com/source/kext_tools/kext_tools-384.30.2/kextcache_main.c

 

also old path will be abandoned soon:

/* Make sure target volume wants a copy of the prelinked kernel in

* /System/Library/PrelinkedKernels/prelinkedkernel

* This is a temporary hack, using the Yosemite added support for lzvn

* compression to mean "wants /System/Library/PrelinkedKernels".

*

* We will update the path key / value in bootcaches.plist in Yosemite + 1

*/

... because Apple forgot what was said for El Capitan at Yosemite time (about "temporary hack"), ok, bootcache.plist is updated (but old path already in use yet, apparently). they will do ..no sense to have both

Link to comment
Share on other sites

Should be easy to embed a kext in the bootloader, tried in Enoch, but the problem initially was the size limit of the boot file (no place for FakeSMC, even if compressed with lzvn/lzss) then to thin the binary (solved trying a smaller kext), idea abandoned... But for Clover I think that there is no problem to load kexts in this way:

 

attachicon.gifFakeSMC_Bin.h.zip

attachicon.gifFakeSMC_Info.h.zip

HWSensor3 rev.19

 

As I said, data may also be compressed, then decompressed on the fly.. (the above are not)

 

I have not heard of a commit for this, so probably be sure that you have deleted both prelinkedkernel and kernelcache, because Yosemite and El Capitan have both (one is a copy of the other placed there by kextcache):

 

#define k_kernelcacheFilePath \

"/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache"

 

#define kPrelinkedKernelsPath "/System/Library/PrelinkedKernels"

#define k_prelinkedkernelFilePath kPrelinkedKernelsPath "/prelinkedkernel"

 

source: http://www.opensource.apple.com/source/kext_tools/kext_tools-384.30.2/kextcache_main.c

 

also old path will be abandoned soon:

/* Make sure target volume wants a copy of the prelinked kernel in

* /System/Library/PrelinkedKernels/prelinkedkernel

* This is a temporary hack, using the Yosemite added support for lzvn

* compression to mean "wants /System/Library/PrelinkedKernels".

*

* We will update the path key / value in bootcaches.plist in Yosemite + 1

*/

... because Apple forgot what was said for El Capitan at Yosemite time (about "temporary hack"), ok, bootcache.plist is updated (but old path already in use yet, apparently). they will do ..no sense to have both

 

Well I guess I'm doing something wrong, or not doing something. Cause it still boots up just fine. :)) Not that I wish it not to boot. But just saying...

 

Anyway, can you try this on your computer, just to confirm? Or you're not using Clover anymore?

Link to comment
Share on other sites

Anyway, can you try this on your computer, just to confirm? Or you're not using Clover anymore?

I have both Enoch and Clover:

0:100  0:000  Now is 6.12.2015,  1:19:21 (GMT+2047)
0:100  0:000  Starting Clover rev 3320 on INSYDE Corp. EFI

...going to try..

Link to comment
Share on other sites

I have both Enoch and Clover:

0:100  0:000  Now is 6.12.2015,  1:19:21 (GMT+2047)
0:100  0:000  Starting Clover rev 3320 on INSYDE Corp. EFI
...going to try..
I can provide you with the installer for 3330 if you want. :) In case you don't already have it. And so we can have at least some consistency in this test. :)

So just let me know if you need it.

Link to comment
Share on other sites

Hey guys.

 

Quick question for you: is FakeSMC.kext not required to boot anymore? Cause I sure don't have it anywhere in EFI and I can boot just fine. And no, it's no in L/E or S/L/E, since I don't keep it there.

 

I'm not complaining that it works without it. :)) I'm just curious if you might know anything about this. For as far as I remember, it was always required.

 

bdmesg also doesn't show it as being included.

 

attachicon.gifScreen Shot 2015-12-06 at 1.52.48 PM.png

 

Is it cached anywhere...?

 

I'm on Clover 3330, if that makes any difference.

I have a strange idea that your kext RealtekALC is really FakeSMC :)

Link to comment
Share on other sites

×
×
  • Create New...