Jump to content

Clover General discussion


ErmaC
30,039 posts in this topic

Recommended Posts

20 minutes ago, SavageAUS said:

I’ve been out of the loop with clover this year and was wondering how Big Sur was going with it?

Can Clover install Big Sur?

Can Clover boot Big Sur?

 

Not yet but ASAP :)

  • Like 2
Link to comment
Share on other sites

14 hours ago, Leonardo Assunção said:

Hi, Matgen84. How are you? Thank you for your answer. ^_^

I've already done this. But I never find CloverX64.efi, BootX64.efi, Clover.pkg and other files... Folder is a little bit messy. :cry:

 

Hi @Leonardo Assunção 

 

I will explain to how to build:

 

  • check if Xcode command lines tools is installed
  • download CloverBootloader directory from repo
  • Under you user account (for example, users/matgen84) create a src folder
  • copy / paste CloverBootloader directory to users/matgen84/src
  • In terminal go to users/matgen84/src/CloverBootloader
  • Launch Buildme script ---> a menu appear ---> select Build Clover
  • one this done, select make pkg (or make app. You have to install it Applications folder)
  • Then the result: you have a pkg to install Clover

Have a nice day :)

Edited by Matgen84
Link to comment
Share on other sites

15 hours ago, Jief_Machak said:

For information :

I've just committed the removal of PoolPrint. Everything has been switch to SPrintf/SWPrintf. It touched a lot of files.

It's possible that I've introduced a bug, of course. So please test before updating.

 

Hi @Jief_Machak I can boot successfully Catalina on my Z390 system :)

Link to comment
Share on other sites

On 8/9/2020 at 6:58 PM, Jief_Machak said:

For information :

I've just committed the removal of PoolPrint. Everything has been switch to SPrintf/SWPrintf. It touched a lot of files.

It's possible that I've introduced a bug, of course. So please test before updating.

Somehow OS icons in GUI was mixed up? Or it is appeared to me only?

Spoiler

screenshot16.png

Why Mojave OS and Recovery separated by other OS icons? They located in the same APFS container.

  • Like 1
Link to comment
Share on other sites

13 minutes ago, Slice said:

Somehow OS icons in GUI was mixed up? Or it is appeared to me only?

Some distros (Ubuntu, Mint, Manjaro, etc.. if not all of them) use os_linux.icns except manually add Image=name on config.plist - GUI - Entries - Custom.

  • Like 1
Link to comment
Share on other sites

11 hours ago, Slice said:

Why Mojave OS and Recovery separated by other OS icons? They located in the same APFS container.

Yes, there is a temporary change here.

 

First, at Clover level, we don't have the notion of Container. Everything is just different Volume. But Recovery is usually just after Preboot so Recovery icons use to follow Preboot icons.

 

I forgot to say in my Previous post that now there is a small new feature :
For a non-encrypted APFS volume, there is 2 way to boot : via Preboot, or directly on the target volume. So now, the Preboot loader is automatically hidden if there is a corresponding bootable volume (= not encrypted). So we can remove Preboot from the <Hide> key in config.plist.

 

But the way LOADER_ENTRY are created is that they are ignored when hidden (loader.cpp:1010) : 

  if (!gSettings.ShowHiddenEntries && OSFLAG_ISSET(Flags, OSFLAG_HIDDEN)) {
    DBG("        skipped because entry is hidden\n");
    return NULL;
  }

which means that an entry cannot be created visible and then hidden afterward by changing flag to OSFLAG_HIDDEN.

Problem is that Preboot is usually come before "normal bootable volume". So I had to do it in 2 passes. First, all the "normal" entries would be created, and a second pass where Preboot antry would be created only if there is no "normal bootable volume" (=encrypted).

This is why the icon order has changed.

 

I planned to change that, I don't like it either. The idea is to create entries, no matter of the hidden flag. That means modifying the menu loop to dynamically skip the hidden entries. That also means that F3 doesn't have to reload and rescan volume. Finally, that means that I can create all Preboot entries non-hidden, in the same pass than other entries. Afterward, I'll just a to reloop through all created entries and switch the hidden flag as needed.

There may be the other solution of creating all entries and then delete (instead of switching hidden flag) unnecessary Preboot entries from the Entries array from REFIT_MENU_SCREEN. It's not amazing design to create, then delete. And this hidden flag which is not really a hidden flag but more a "don't create" flag. So, I thought first solution is better.

 

In short : icon order will be restored soon !

  • Like 3
  • Confused 1
Link to comment
Share on other sites

I'm reading LOADER_ENTRY::KernelUserPatch() implemented in kernel_patcher.cpp

Line 2358, there is 

UINTN SearchLen = KernelAndKextPatches.KernelPatches[i].SearchLen;

But this is before the loop. At that line i always equal to 0. Is that normal, to use SearchLen form the patch index 0 for all the patches ? Is that line should be in the loop ?

 

 

 

 

Link to comment
Share on other sites

Even weirder when I realize that this function is called even when there is no patch at all. Which means that KernelAndKextPatches.KernelPatches[0].SearchLen could point to invalid memory.

So yes, I put back in the loop and will commit that on the next few hours.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Ok, I've committed.

I replace CopyKernelAndKextPatches, a 150 lines function, by a 1 line copy constructor auto-generated by compiler. Isn't C++ good ? :)

 

One thing I've broken is the SETTINGS_DATA structure store in the DataHubProtocol, because I replaced "CHAR8 EfiVersion[64];" by "XString8 EfiVersion;". That breaks a feature in Clover.App.

Tomorrow, I'll write a serialize function that'll fix that.

 

Please test and report, that is helping a lot.
Thanks.

  • Like 1
Link to comment
Share on other sites

49 minutes ago, Jief_Machak said:

Ok, I've committed.

I replace CopyKernelAndKextPatches, a 150 lines function, by a 1 line copy constructor auto-generated by compiler. Isn't C++ good ? :)

 

One thing I've broken is the SETTINGS_DATA structure store in the DataHubProtocol, because I replaced "CHAR8 EfiVersion[64];" by "XString8 EfiVersion;". That breaks a feature in Clover.App.

Tomorrow, I'll write a serialize function that'll fix that.

 

Please test and report, that is helping a lot.
Thanks.

 

Hi @Jief_Machak

I build and test commit 59d8cbad7. Report in few minutes.

 

REPORT: I update my USB Big Sur Installer to your latest commit, Big Sur external hard disk connected

 

There are some order problem (F3 from Clover GUI) with Big Sur Apfs container when Big Sur device are connected (USB key and USB external disk). See Screenshot. There is no problem with only Catalina SATA disk connected to the system. Some typo issue "Mac OS X" remains.
 

 I can only boot Catalina HD.

 

Thanks for your effort :)

 

screenshot1.png

screenshot2.png

 

 

 

 

Without External USB HD (Big Sur Installed)

 

screenshot3.png

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

×
×
  • Create New...