Jump to content
30960 posts in this topic

Recommended Posts

8 hours ago, Matgen84 said:

 

Download Clover from repo and launch Buildme.

Xcode command line tools must be installed :)

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:

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
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 :)

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
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
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

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 ?

 

 

 

 

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

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
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
51 minutes ago, Matgen84 said:

There are some order problem (F3 from Clover GUI)

Yes, I've introduced that. It's temporarily the "less bad" solution.

 

52 minutes ago, Matgen84 said:

I can only boot Catalina HD.

I didn't have a look at Big Sur booting. I understood it's not woking yet. I will soon, but I really want to finish a lot of string cleaning I've started months ago.
When you said only Catalina, do you mean that booting older version (Mojave, High Sierra) stopped working ?

  • Like 1
  • Thanks 1
×
×
  • Create New...