Jump to content

Clover problems report & features request


ErmaC
953 posts in this topic

Recommended Posts

Hi everyone,

I have a minor problem, but persistent, with Clovers v5, starting from 5108 to 5116. I cannot change themes, even in config.plist it is the right theme. I tried everything, even I deleted all themes folders, except the one I want. But this is not the biggest culprit. If I chose theme in Boot Section in Clover Configurator, I get a black screen with no apple logo or progressbar, If I chose to boot in single user mod, I have that same black screen without any white text and all I type is in blind. I want to clear nvram and I cannot. In other hand it boots rather fine, but I feel my Clover is "dirty". Where I am wrong?

Thank you in advance.

IMG_3405.jpeg

Link to comment
Share on other sites

@Slice the xcpm patch stop working again here (i5 3210m) with this commit. In 10.15.4 + there is an additional check that prevent unsupported cpus to activate it and goto xcpm_mode = 0x00 in the _xcpm_bootstrap:

 

function _xcpm_bootstrap {
  r14 = *qword_ffffff8000e55100;
  if (r14 == 0x0) {
    loc_ffffff8000a9e720("-cpuid", dword_ffffff8000e55108, 0x4, 0x0);
    _cpuid_set_info();
    r14 = dword_ffffff8000e55110;
    *qword_ffffff8000e55100 = r14;
  }
  loc_ffffff8000a9e720("xcpm_pcps", _xcpm_boot_pcps_mode, 0x4, 0x0);
  rax = *qword_ffffff8000e55100;
  if (rax == 0x0) {
    loc_ffffff8000a9e720("-cpuid", dword_ffffff8000e55108, 0x4, 0x0);
    _cpuid_set_info();
    rax = dword_ffffff8000e55110;
    *qword_ffffff8000e55100 = rax;
  }
  rbx = *(int8_t *)(rax + 0x4d);
  r15 = *(int8_t *)(rax + 0x50);
  *(int32_t *)_xcpm_cpufamily = *(int32_t *)(rax + 0x1a0);
  rax = _cpuid_features();
  if (rax < 0x0) goto loc_ffffff80004667b5;
  
loc_ffffff80004666ae:
  if (rbx <= 0x3b) goto loc_ffffff80004666e1;  <--- this one needs to be ignored

after that (see last line) if the cpu is unsupported it will goes to:

*(int32_t *)_xcpm_mode = 0x0;

..and a fake cpu id will be needed. This patch surpass it:

  for (UINTN i = 10; i < 20; ++i) {
      if (KernelData[place + i] == 0xC4) {
        KernelData[place + i] = 0xC6;
 +      if (KernelData[(place + i) - 5] == 0x3B) {
 +        KernelData[(place + i) - 5] = 0x00;
 +      }
        break;
      }
    }

 

Attached modified kernel_patcher.cpp and the entire _xcpm_bootstrap function.

kernel_patcher.cpp.zip

_xcpm_bootstrap.h.zip

Edited by vector sigma
  • Like 1
Link to comment
Share on other sites

6 hours ago, vector sigma said:

@Slice the xcpm patch stop working again here (i5 3210m) with this commit. In 10.15.4 + there is an additional check that prevent unsupported cpus to activate it and goto xcpm_mode = 0x00 in the _xcpm_bootstrap:

 


function _xcpm_bootstrap {
  r14 = *qword_ffffff8000e55100;
  if (r14 == 0x0) {
    loc_ffffff8000a9e720("-cpuid", dword_ffffff8000e55108, 0x4, 0x0);
    _cpuid_set_info();
    r14 = dword_ffffff8000e55110;
    *qword_ffffff8000e55100 = r14;
  }
  loc_ffffff8000a9e720("xcpm_pcps", _xcpm_boot_pcps_mode, 0x4, 0x0);
  rax = *qword_ffffff8000e55100;
  if (rax == 0x0) {
    loc_ffffff8000a9e720("-cpuid", dword_ffffff8000e55108, 0x4, 0x0);
    _cpuid_set_info();
    rax = dword_ffffff8000e55110;
    *qword_ffffff8000e55100 = rax;
  }
  rbx = *(int8_t *)(rax + 0x4d);
  r15 = *(int8_t *)(rax + 0x50);
  *(int32_t *)_xcpm_cpufamily = *(int32_t *)(rax + 0x1a0);
  rax = _cpuid_features();
  if (rax < 0x0) goto loc_ffffff80004667b5;
  
loc_ffffff80004666ae:
  if (rbx <= 0x3b) goto loc_ffffff80004666e1;  <--- this one needs to be ignored

after that (see last line) if the cpu is unsupported it will goes to:


*(int32_t *)_xcpm_mode = 0x0;

..and a fake cpu id will be needed. This patch surpass it:


  for (UINTN i = 10; i < 20; ++i) {
      if (KernelData[place + i] == 0xC4) {
        KernelData[place + i] = 0xC6;
 +      if (KernelData[(place + i) - 5] == 0x3B) {
 +        KernelData[(place + i) - 5] = 0x00;
 +      }
        break;
      }
    }

 

Attached modified kernel_patcher.cpp and the entire _xcpm_bootstrap function.

kernel_patcher.cpp.zip

_xcpm_bootstrap.h.zip

OK, accepted. 

  • Like 1
Link to comment
Share on other sites

On 4/18/2020 at 7:59 PM, crookedvult said:

Sorry, I thought you asked for my EFI folder. I thought you wanted to see something about my boot files. 

 

Anyway; I've hidden BOOTX64.EFI, but still I have the "Boot from EFI" showing up. 

 

On 4/18/2020 at 10:42 AM, crookedvult said:

So the following problem with Clover, I think, persists now for many builds (and I see many reports on the internet):

 

For Windows 10, I have the duplicate "Boot from EFI" showing, and this one does not boot. The one that does boot is 'Boot Microsoft EFI Boot from EFI'.  If I add this UUID to the hidden list, then both of them disappear. I have two separate SSD disks for Windows 10 and macOS.  This is Clover 5112.

 

I think I've tried a lot and I'm stuck now. Is this also something that Clover can better deal with in the future? 

 

 

 

 

 

 

You told about duplicate entry for Windows while I see no /efi/microsoft folder on your screen. Is it your screen of your working EFI?

Link to comment
Share on other sites

On 4/18/2020 at 10:41 AM, AndyYa said:

In  boot.log  present  such  lines:

2:511  0:019  Slot: 0 Type 24 4096MB 1333MHz Vendor=Kingston PartNo=9905471-006.A01LF SerialNo=04080102050F0E00
2:530  0:019  Slot: 2 Type 24 4096MB 1333MHz Vendor=Kingston PartNo=9905471-009.A00LF SerialNo=0400020D0700060F

But Windows AIDA64 shows other values    SerialNo :  48125FE0h  and  402D706Fh

Is  that  a  bug  or  not ?

In  version  5117 (master, commit 813b0d22c)  the  memory  information  is  displayed correctly :

3:007  0:019  Slot: 0 Type 24 4096MB 1333MHz Vendor=Kingston PartNo=9905471-006.A01LF SerialNo=48125FE0
3:027  0:019  Slot: 2 Type 24 4096MB 1333MHz Vendor=Kingston PartNo=9905471-009.A00LF SerialNo=402D706F

Thanks  :-)

Link to comment
Share on other sites

On my X58A system anything past 5116 does not boot, just hangs at apple logo.When I tried 5117 I believe it hanged on ACPI errors or summ :worried_anim:.Not sure what I can provide in terms of logs etc.Bless

Link to comment
Share on other sites

2 hours ago, Dajjal said:

On my X58A system anything past 5116 does not boot, just hangs at apple logo.When I tried 5117 I believe it hanged on ACPI errors or summ :worried_anim:.Not sure what I can provide in terms of logs etc.Bless

Take Clover 5118. Boot into it. Press F2. Start the macOS.

Upload here the file

/EFI/CLOVER/misc/preboot.log

Link to comment
Share on other sites

I have three issues which I would like to present. For ref, I am using release r5118

 

1 - I find that F10 screenshot no longer works from using legacy Clover, or at least I no longer get files in /EFI/CLOVER/misc. All works fine using UEFI Clover.

 

2 - Vector themes no longer seem to be using scroll bar images from the svg theme. They were working some time ago. But all I see now is the embedded green one.

 

3 - Booting Clover with a vector theme sometimes leaves me with memory allocation errors when trying to boot macOS. It's even more noticeable if I navigate the menus and/or switch to various other vector themes while in the GUI. Could there be some kind of memory leak when using vector themes?

 

Edited by blackosx
Link to comment
Share on other sites

1 - impossible. I may propose that FAT32 driver embedded into legacy Clover boot is wrong. I will try to reproduce this on QEMU.

2,3 may be. Should be investigated.

Is it boot6 or boot7?

Link to comment
Share on other sites

Thanks for testing. 

 

1 - With boot6 and boot7 I can get other options saved to /EFI/misc, for example F2 for preboot.log or F8 for auto codec dump. Just not F10 for screenshot. Maybe keyboard F10 not being recognised? (Yet it works with clover UEFI)

 

2,3 - No problem. Just reporting what I see :)

Edited by blackosx
Link to comment
Share on other sites

1 hour ago, blackosx said:

USB. But I can’t see that being the problem as other Fn options work fine. Must be something strange going on at my end. I’ll try to debug later.

Just ran a quick test with CLOVERX64.efi r5103 and screenshot with legacy boot works.

I'll try to find which version breaks it.

 

EDIT:

F10 screenshot also works here with r5104, but not with r5105 or r5108.

 

I'll try to find the exact commit between r5104 and r5105 tomorrow as I have to go now.

Edited by blackosx
Link to comment
Share on other sites

18 hours ago, blackosx said:

Just ran a quick test with CLOVERX64.efi r5103 and screenshot with legacy boot works.

I'll try to find which version breaks it.

 

EDIT:

F10 screenshot also works here with r5104, but not with r5105 or r5108.

 

I'll try to find the exact commit between r5104 and r5105 tomorrow as I have to go now.

Of the 179 commits between r5104 and r5105 releases, I've managed to narrow it down to a range of 37 commits, which I know is a lot!

 

Spoiler

commit f8bf956a391080ac73cd908796c3220b80e4407f ** Builds & Boots. No screenshot!
commit 69a65db69bb8371eb943aa8e9a3752ea073816d1 ** Builds & Boots to GUI but then freezes
commit c6a59f85f902d91fbfc10f333bdd8734da7e90a9 ** Builds & Boots to GUI but then freezes
commit 2a106ef6028fd0635af9d6fbd3ed6a3c8a476109 ** Builds & Boots to GUI but then freezes
commit 5ddb6c1d7988a6a2120529027b7b540819127a5b ** compile failed
commit d5497337293cfabd12ae6572f83eb260639e2539 ** Builds & Boots to GUI but then freezes
commit bd9458b270118006a323e84ef2a5d1180401d0bc ** Builds & Boots to GUI but then freezes
commit 0812cdb6d54a8f5a15a048d1fd18a39e1fdff27c ** Builds & Boots to GUI but then freezes
commit 6417348844aa225a583b7938440ca04a6a82d048 ** Builds & Boots to GUI but then freezes
commit 2fca0d97a519274b097a34c645edd33566a210a8 ** Builds & Boots to black screen then freezes
commit 11bf50dc3a3ba1d0a16596caf64eb3afc22d3b88 ** Builds & Boots to black screen then freezes
commit 1ee664b022b5a42dba863a3012b861f50a0f8e87 ** Builds & Boots to GUI but then freezes
commit dbb5187ae5d8349a4e106b8c4f556b2175d49172 ** Builds & Boots to GUI but then freezes
commit 78f899a92774bc311f08eb082cb9d0da6262fd0d ** compile fail
commit 4bec5cab80a769370b14b3df9938863168018540 ** Builds & Boots to GUI but then freezes
commit b9b89cc46a896e86601ae0c1d890cd68cd667980 ** compile failed
commit ab6d11f4730f215335d92550d6e11243f6569366 ** Builds & Boots to black screen then freezes
commit 4e63e897cbbe852a2ee8727f2f5974c2efbcaa25 ** compile failed
commit c1f6e8137a93eb2d956f804cd2ffd7a6a0c936ac ** Builds & Boots to black screen then freezes
commit fd327e2b1f78c36415a22e031970e3d2d6d019a1 ** compile failed
commit fc2f226e8db47a9b6ec5e99db451a193bd371592 ** Compile Fail
commit b3e48e0547baa4deec74a4cd660a6c03f4249f94 ** Compile Fail
commit 8ff35c62955c63baae39d915f4ad89ea4eab2725 ** Compile Fail
commit 99c79d0f9423fdda87593ca4f36ee2c62be73be4 ** Compile Fail
commit ab391cd1cc7938f111a95299239e27cea03dada5 ** Compile Fail
commit 24e779c6f8e0dfe0ba54add6d7e8a0f49a2cf839 ** compile fail
commit 416fb4aa7743cd5ccdf39a51cfedf575a023e786 ** compile fail
commit 2021c9b51d09ce7da42ec4bfcc4a58925a245832 ** compile fail
commit 3b49178480c18af9b5d48e6279dd3307c0578a5f ** compile fail
commit c0df0f87871e790b523006ba946b730fd093a2c6 ** compile fail
commit 5b1c65486c04464bff6501dfac54933dbef98262 ** Builds & Boots to black screen then freezes
commit dcdd8cc09179ead1fa8d9ef39b16d23480364a04 ** Builds & Boots to black screen then freezes
commit 1acd6a43b4cbdfd747be585a48c2be133978ea60 ** compile fail
commit 70ecc2b1e623573f737f70f40843c36ef33726d7 ** compile fail
commit e8a29b1a293410a2471fa592e14f5600db5ae2bf ** compile fail
commit a260cbad92219efdc3d6acecf9feb9a79819a61f ** compile fail
commit 2de3b849570daed52becd7c089e0b63cf3f5d5d0 ** Builds & Boots.. and get a screenshot!

 

There are from here and older on the Github commits page.

 

Building from f8bf956a391080ac73cd908796c3220b80e4407f from March 5th boots but F10 does NOT produce a screenshot


Building from 2de3b849570daed52becd7c089e0b63cf3f5d5d0 from Feb 29th boots and F10 does produce a screenshot

 

All other commits between these either fail to compile, or the compiled binary boots to black or GUI and freeze so testing F10 is impossible,

 

I'll look more when I get time, but I may not spot anything...

  • Like 1
Link to comment
Share on other sites

2 hours ago, blackosx said:

Of the 179 commits between r5104 and r5105 releases, I've managed to narrow it down to a range of 37 commits, which I know is a lot!

 

  Reveal hidden contents

 

There are from here and older on the Github commits page.

 

Building from f8bf956a391080ac73cd908796c3220b80e4407f from March 5th boots but F10 does NOT produce a screenshot


Building from 2de3b849570daed52becd7c089e0b63cf3f5d5d0 from Feb 29th boots and F10 does produce a screenshot

 

All other commits between these either fail to compile, or the compiled binary boots to black or GUI and freeze so testing F10 is impossible,

 

I'll look more when I get time, but I may not spot anything...

Commit on 3 Mar contains new procedure for egScreenShot(). 8ff35c62955c63baae39d915f4ad89ea4eab2725

But I can't understand why it is not working for you and works for me, for Pene, for Jief as we tested and improve it.

What is your compiler?

  • Like 1
Link to comment
Share on other sites

$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Build with:

build  -D NO_GRUB_DRIVERS_EMBEDDED --conf=/Users/blackosx/src/BobTheBuilderV0.1/CloverBootloader/Conf -D USE_LOW_EBDA -p Clover.dsc  -a X64 -b RELEASE -t GCC53 -n 9 

But I don't think it matters what I'm using here as I first discovered F10 screenshot not working with legacy boot using CloverX64.efi from official release r5118

 

I'm attaching both my builds that I mentioned earlier.

CLOVERX64(f8bf956a391080ac73cd908796c3220b80e4407f).efi.zip

CLOVERX64(2de3b849570daed52becd7c089e0b63cf3f5d5d0).efi.zip


EDIT:

I’ll try adding some debug statements to egScreenShot() when I get time and see what I can find here.

Edited by blackosx
Link to comment
Share on other sites

4 hours ago, blackosx said:

$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Build with:


build  -D NO_GRUB_DRIVERS_EMBEDDED --conf=/Users/blackosx/src/BobTheBuilderV0.1/CloverBootloader/Conf -D USE_LOW_EBDA -p Clover.dsc  -a X64 -b RELEASE -t GCC53 -n 9 

But I don't think it matters what I'm using here as I first discovered F10 screenshot not working with legacy boot using CloverX64.efi from official release r5118

 

I'm attaching both my builds that I mentioned earlier.

CLOVERX64(f8bf956a391080ac73cd908796c3220b80e4407f).efi.zip

CLOVERX64(2de3b849570daed52becd7c089e0b63cf3f5d5d0).efi.zip


EDIT:

I’ll try adding some debug statements to egScreenShot() when I get time and see what I can find here.

I just tried to boot with this Clover f8b... and it is not working at all. It hangs at GUI. Don't wonder because there were many problem switching from old sources to C++ and so there are many non-working commits.

Anyway there is screenshot with Clover 5118. See right bottom digits.

screenshot10.png

Link to comment
Share on other sites

Strange that build is not working for you. I’ll test it again here just to make sure I sent you the right file:

 

Anyway, yeah. I have successful screenshot from Clover r5118 when UEFI booting, just not legacy boot. The issue must be related to my setup here and I will run some debug when I get back to my hack.

Link to comment
Share on other sites

×
×
  • Create New...