Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

You erased your NVRAM so you need to make sure that you are installing \EFI\BOOT\BOOTX64.efi on the ESP of the drive or add a boot entry either through the EFI shell or through linux efibootmgr.

my clover was already installed on ESP of my boot-able drive i don't how to add boot entry through EFI shell can any one help me.

Now my Bios directly boot to windows and in my bios it only shows me the windows boot manager as an option

Link to comment
Share on other sites

my clover was already installed on ESP of my boot-able drive i don't how to add boot entry through EFI shell can any one help me.

Now my Bios directly boot to windows and in my bios it only shows me the windows boot manager as an option

the way i solved this was

1) rename /EFI/Microsoft to EFI/M

2) now you can boot clover

3) use the add clover boot option to list Clover explicity in BIOS

4) rename EFI/M back 

5) set the boot order priority to make sure Clover is first

Link to comment
Share on other sites

I'll check it today.

I get bad compiled boot6 and boot7 with gcc7 after your changes to tools_def.txt in commit r4350.  Build parameters:

Update: it's the mcmodel=small -fpie. I reverted 4350. Will try to figure out what's wrong and get the small model to work in the future.

Edited by Zenith432
  • Like 2
Link to comment
Share on other sites

my clover was already installed on ESP of my boot-able drive i don't how to add boot entry through EFI shell can any one help me.

Now my Bios directly boot to windows and in my bios it only shows me the windows boot manager as an option

Rename

/EFI/Microsoft/boot/bootmgfw.efi -> /EFI/Microsoft/boot/bootmgfw-orig.efi

/EFI/CLOVER/CLOVERX64.efi -> /EFI/Microsoft/boot/bootmgfw.efi 

@Sherlocks

No, MaxIntelBrightness doesn't depend on macOS framebuffer (ig-platform-id) but on hardware, i.e. on DeviceID.

Link to comment
Share on other sites

Rename

/EFI/Microsoft/boot/bootmgfw.efi -> /EFI/Microsoft/boot/bootmgfw-orig.efi

/EFI/CLOVER/CLOVERX64.efi -> /EFI/Microsoft/boot/bootmgfw.efi

The second one is not needed as most UEFI implementations will look for EFI/BOOT/BOOTX64.efi (which is Clover), if they can't find EFI/Microsoft/boot/bootmgfw.efi, not to mention bootmgfw.efi can be easily overwritten by any future Windows update (happens from time to time, especially with Windows 10).

Link to comment
Share on other sites

what filename should I be looking for in clover's code (SF) that has the list of CPUID?

There is no such list.

See cpu.c for CPUID interpretation and Platform.h for the list of CPU_MODEL.

Link to comment
Share on other sites

the way i solved this was

1) rename /EFI/Microsoft to EFI/M

2) now you can boot clover

3) use the add clover boot option to list Clover explicity in BIOS

4) rename EFI/M back 

5) set the boot order priority to make sure Clover is first

Rename

/EFI/Microsoft/boot/bootmgfw.efi -> /EFI/Microsoft/boot/bootmgfw-orig.efi

/EFI/CLOVER/CLOVERX64.efi -> /EFI/Microsoft/boot/bootmgfw.efi

Tried both but still that doesn't help me and still i cant boot to OSX without the installer USB also try formatting the ESP drive and copy from EFI back-up from OS drive.this also doesn't help i am out of idea. Anyone pls help me

Link to comment
Share on other sites

Im currently using clover legacy and installed it on the HFS partition where macOS resides. I want to migrate to EFI legacy. How will i be able to undo the changes without formatting macOS?

Use Clover Installer to install new Clover into EFI.

Снимок экрана 2017-12-14 в 07.45.12.png

Снимок экрана 2017-12-14 в 07.45.20.png

Снимок экрана 2017-12-14 в 07.45.30.png

  • Like 2
Link to comment
Share on other sites

It doesn't work though. I get black screen unless I explicitly set Graphics/Inject(/Intel)=false. I have no idea what was ioreg before, don't have time to run a bunch of tests to figure it out... I also don't see where ricoc90's problem was resolved... I used to be able to boot with iMac12,1 or 12,2 and MacMini5,1 but now I can only boot as iMac. Since the MacMini5,1 is the only model that has HD3000 graphics, I'm guessing that the device id or snb-platform-id is injected wrong for my CPU....

 

Built, no. But you asked for an older package and I linked you every package ever released, lol. Grab it out of r4297, if that works, but the last change to AptioFix was 4270... So I'm guessing that it's something else, maybe EDK2 sync, did you build it yourself or get from sf.net?

 

 

From SF and maybe since 4270, when I installed 4293 then 4297 I did not refresh aptio but in 4334 I did.  So if there was a change in 4270 I may have not refreshed aptio in drivers64UEFI since then. 

 

It seems to have only affected my Asus Maximus Hero VIII Z170 board but not my Asus Haswell Laptop?  I have not tried my other desktops yet just the Hero and the Asus laptop.

 

I did as you said grabbed an Aptio from an earlier package and all good now.

 

Ok I just thought about this I actually did the refresh of drivers64UEFI after installing the latest Clover 4334, then using Clover Configurator I refreshed the drivers again don't ask me why I just did, there is a section install drivers so it must be grabbing the wrong Aptiov1 and not the one that the latest Clover PKG installer would install because if I just use the Clover PKG installer and tick Aptio I believe all is good.  So this must be my fault trusting CC drivers, I wonder where CC grabs the drivers from? Now I can see why CC is not really an approved app to use at this point.

  • Like 2
Link to comment
Share on other sites

This is a sort of noob question:

clover generates a  bootx64.efi right?

So if I use that I don't get an auto boot into my mac drive.

If I use boot.efi, which I don't really know where this file lives, I get the auto boot into the os x.

Do I live with this or is my clover wrong in some way?

Link to comment
Share on other sites

This is a sort of noob question:

clover generates a  bootx64.efi right?

So if I use that I don't get an auto boot into my mac drive.

If I use boot.efi, which I don't really know where this file lives, I get the auto boot into the os x.

Do I live with this or is my clover wrong in some way?

Sorry I don't understand you. How did you propose to use boot.efi? By what?

Link to comment
Share on other sites

So when I boot Clover, OS 10.13.2

No kext injection

SIP disabled

chosen/memory-map contains 3 entries

name/FailedCLUT/FailedImage

I get the 3 messages in log show kernel: "FailedCLUT" not a kext, etc...

 

Could be a bug? Clover should not patch  readStartupExtension when nothing to inject.

 

As I understand, the problem (unexpected feature?) not in injection itself, but in the order of injection.

 

Maybe true. I have tried to inject dummy  KextExcludeList and I have only 2 msgs left now with my 10.12. So the 1st order must be a dummy KextExcludeList to break the loop?

  • Like 1
Link to comment
Share on other sites

I can't find the string readStartupExtension in Clover and have no idea what you're talking about.

 

The macOS either loads prelinkedkernel or booter kexts. As we want to use prelinkedkernel for speed but also have kext injection, Clover patches the conditional jump so both run. cecek is suggesting this should not happen when there are no kexts to inject.

  • Like 3
Link to comment
Share on other sites

Sorry I don't understand you. How did you propose to use boot.efi? By what?

 

In the Clover Configurator, Boot tab, I enter the default loader. If I enter bootx64.efi it won't  auto boot. If I enter boot.efi it does.

 

edit: If I leave it blank it also auto boots. So I guess the boot.efi thing in that field is just something I saw once and left it in...

  • Like 1
Link to comment
Share on other sites

The macOS either loads prelinkedkernel or booter kexts. As we want to use prelinkedkernel for speed but also have kext injection, Clover patches the conditional jump so both run. cecek is suggesting this should not happen when there are no kexts to inject.

If Clover is already patching the kernel for booter kexts, why not revert to what I said here and patch the kernel to make the messages go away?  What cecekpawon said may make the messages go away when there's no injection, but will still be there with injection.

 

PS: I realise that this may be the reason why in VMware the injected kexts are left hanging around.  Because the firmware injects them, but does not patch the kernel, so they're ignored.  This also explains why the messages are not appearing in VMware.

  • Like 2
Link to comment
Share on other sites

I can't find the string readStartupExtension in Clover and have no idea what you're talking about.

It is XNU/libsa/bootstrap.cpp

void
KLDBootstrap::readStartupExtensions(void)
{
    kernel_section_t * prelinkInfoSect = NULL;  // do not free

    OSKextLog(/* kext */ NULL,
        kOSKextLogProgressLevel |
        kOSKextLogGeneralFlag | kOSKextLogDirectoryScanFlag |
        kOSKextLogKextBookkeepingFlag,
        "Reading startup extensions.");
    
   /* If the prelink info segment has a nonzero size, we are prelinked
    * and won't have any individual kexts or mkexts to read.
    * Otherwise, we need to read kexts or the mkext from what the booter
    * has handed us.
    */
    prelinkInfoSect = getsectbyname(kPrelinkInfoSegment, kPrelinkInfoSection);
    if (prelinkInfoSect->size) {
        readPrelinkedExtensions(prelinkInfoSect);
    } else {
        readBooterExtensions();
    }

    loadKernelComponentKexts();
    loadKernelExternalComponents();
    readBuiltinPersonalities();
    OSKext::sendAllKextPersonalitiesToCatalog();

    return;
}

Clover patches this codes in kernel to remove "else {" so kernel readBooterExtensions after readPrelinkedExtensions.

  • Like 2
Link to comment
Share on other sites

×
×
  • Create New...