Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

@chris1111 @Slice

 

The change of Pene don't work alone on my Z390 mobo (Catalina 10.15.5 Beta 3) + if I uncheck Clover Fix AppleRTC patch: I can boot with latest commit.

 

Re-Build from source the change 0->1 + Clover Fix AppleRTC works together on my Z390.

 

I don't test on Mojave (IvyBridge).

 

 

Edited by Matgen84
Link to comment
Share on other sites

@Slice Half a good news latest change work for 10.14 /10.15

Failled to load kext in 10.6

not test other OS's

 

Sorry @Slice I forgot to change the FakeSMC after my latest install :angel:

You latest change 2502b0d82 are good :thumbsup_anim:

Thank you for your effort

Thanks to all Dev B)

working10.6 Saved Output.txt.zip

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

Hi @Slice, but this:

UINTN procLocation = searchProc(Driver, "updateChecksum", &procLen);

should not be:

UINTN procLocation = searchProc(Driver, "__ZN8AppleRTC14updateChecksumEv", &procLen);

?

 

P.S. for 64 bit... I think for 32 bit was different

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

2 hours ago, chris1111 said:

Just a question why not include the change of @Pene here 

Not sure I understood you, but I committed the changes to master already. They are included now in current version.

  • Like 1
Link to comment
Share on other sites

16 minutes ago, Pene said:

Not sure I understood you, but I committed the changes to master already. They are included now in current version.

Ha ok thanks 

Link to comment
Share on other sites

@Slice I suggest you modify the EFIFolder preinstall script because this will avoid problems if a third party application or a script.sh has already mounted the EFI partition of the volumes with the name EFI
Clover mounts the EFI partition with the name ESP so you may have some problem
Also all drivers in drivers / Bios and UEFI should be deleted as CLOVERX64.efi and BOOTX64.efi are

Here is the original and here are my proposed changes ➣ Modifying preinstall script

 

Thanks in advance

 

Link to comment
Share on other sites

@Pene

I saw you replaced "Entry->LoadOptions = loaderEntry->LoadOptions;" by "Entry->LoadOptions = Split<XStringArray>(loaderEntry->LoadOptions.ConcatAll(" "_XS8).wc_str(), " ");"

For me, they are strictly equivalent because you concat all to split it. I'm wondering if you were trying to do something else ?

 

@everyone :

- the parameter "OSVersion" in LOADER_ENTRY::KernelPatcher_32 is hiding the member with the same name OSVersion. Is this parameter redundant ?

- patchLocation2 = FindMemMask(...) kext_inject.cpp:1178

- patchLocation2 = FindRelative32(...) kext_inject.cpp:1189

patchLocation3 = FindMemMask(...) kext_inject.cpp:1239

these Find method returning an UINTN (64 bits) and patchLocation2 and patchLocation3 are UINT32, giving a warning. Could I change patchLocation2 and patchLocation3 to UINTN ? (Please, do not solve this with downcast because one day, we'll have FindMemMask or FindRelative32 returning an UINTN bigger than a UINT32 and we will have a nasty bug.)

  • Like 1
Link to comment
Share on other sites

27 minutes ago, chris1111 said:

I suggest you modify the EFIFolder preinstall script because this will avoid problems if a third party application or a script.sh has already mounted the EFI partition of the volumes with the name EFI

if the ESP is already mounted its mount point will be used, what ever is:

    # Get the ESP mount point if the partition is currently mounted
    ESPMountPoint=$("$partutil" --show-mountpoint "$ESPDevice")

And this way:

rm -rf "${EFI_ROOT_DIR}"/EFI/CLOVER/drivers/BIOS/*.efi
rm -rf "${EFI_ROOT_DIR}"/EFI/CLOVER/drivers/UEFI/*.efi

you will delete also any third party drivers not included in the package.

 

And:

rm -rf "${EFI_ROOT_DIR}"/EFI/CLOVER/drivers/off

there is an option to install these drivers:

off.png.228cabe79e9ddd51267a0a3a6d933756.png

so why delete them?  Tthis should be done,  at least, by a preinstall of /CloverBootloader/CloverPackage/package/Scripts.templates/off

 

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

1 minute ago, vector sigma said:

if the ESP is already mounted its mount point will be used, what ever is:


    # Get the ESP mount point if the partition is currently mounted
    ESPMountPoint=$("$partutil" --show-mountpoint "$ESPDevice")

And this way:


rm -rf "${EFI_ROOT_DIR}"/EFI/CLOVER/drivers/BIOS/*.efi
rm -rf "${EFI_ROOT_DIR}"/EFI/CLOVER/drivers/UEFI/*.efi

you will delete also any third party drivers not included in the package.

 

And:


rm -rf "${EFI_ROOT_DIR}"/EFI/CLOVER/drivers/off

there is an option to install these drivers:

off.png.228cabe79e9ddd51267a0a3a6d933756.png

so why delete them? 

 

 

Delete drivers all drivers because Newbie really not know if he add  unnesserary drivers 

 

you should see the EFI (Drivers) folder that I sometimes see; you ask how these drivers find it and they put the faults on the program

Link to comment
Share on other sites

15 minutes ago, chris1111 said:

Delete drivers all drivers because Newbie really not know if he add  unnesserary drivers 

e.g. but peoples using OcQuirks.efi will have a boot failure at next reboot. 

15 minutes ago, chris1111 said:

you should see the EFI (Drivers) folder that I sometimes see; you ask how these drivers find it and they put the faults on the program

Sorry but not sure I've understood you. If you mean that the ESP is already mounted, by another program for example, this is not going to be a problem as the MountESP will find the mount point, what ever is. But the preinstall should not mount anything as this is decided by the user only if  "install Clover in the ESP” is selected which activate the MountESP script. 

And $3 is always the target volume, but can't be the ESP. 

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

10 minutes ago, vector sigma said:

e.g. but peoples using OcQuirks.efi will have a boot failure at next reboot. 

Sorry but not sure I've understood you. If you mean that the ESP is already mounted, by another program for example, this is not going to be a problem as the MountESP will find the mount point, what ever is. But the preinstall should not mount anything as this is decided by the user only if  "install Clover in the ESP” is selected which activate the MountESP script. 

And $3 is always the target volume, but can't be the ESP. 

Ok for the ESP mount point but the drivers I disagreed because OcQuirks.efi  not comes from the package Clover

You say it will not reboot if the drivers are no longer there and I say that it will not reboot if any drivers are there so it comes down to the same

Anyway do what you want me I only propose changes that I already adapt and that works

Edited by chris1111
  • Confused 1
Link to comment
Share on other sites

1 hour ago, Jief_Machak said:

@Pene

I saw you replaced "Entry->LoadOptions = loaderEntry->LoadOptions;" by "Entry->LoadOptions = Split<XStringArray>(loaderEntry->LoadOptions.ConcatAll(" "_XS8).wc_str(), " ");"

For me, they are strictly equivalent because you concat all to split it.

Equivalent, yes, but not strictly equivalent.

The idea was an equivalent which works, because that one did not work :) More details in the C++ thread, as it's too long for here.

Edited by Pene
Link to comment
Share on other sites

2 minutes ago, chris1111 said:

Ok for the ESP mount point but the drivers I disagreed because OcQuirks.efi  not comes from the package Clover

If a driver is installed by hand and at will of the user, we can't delete it. I resolved this in Clover.app as it show all the drivers so that you can decide which one to delete, third parties included, but with the package cannot be done. 

  • Thanks 1
Link to comment
Share on other sites

3 hours ago, vector sigma said:

Hi @Slice, but this:


UINTN procLocation = searchProc(Driver, "updateChecksum", &procLen);

should not be:


UINTN procLocation = searchProc(Driver, "__ZN8AppleRTC14updateChecksumEv", &procLen);

?

 

P.S. for 64 bit... I think for 32 bit was different

No, there is strstr() comparison. But the problem is more complex. I will commit new procedure soon.

  • Like 2
Link to comment
Share on other sites

14 hours ago, Jief_Machak said:

@everyone :

- the parameter "OSVersion" in LOADER_ENTRY::KernelPatcher_32 is hiding the member with the same name OSVersion. Is this parameter redundant ?

- patchLocation2 = FindMemMask(...) kext_inject.cpp:1178

- patchLocation2 = FindRelative32(...) kext_inject.cpp:1189

patchLocation3 = FindMemMask(...) kext_inject.cpp:1239

these Find method returning an UINTN (64 bits) and patchLocation2 and patchLocation3 are UINT32, giving a warning. Could I change patchLocation2 and patchLocation3 to UINTN ? (Please, do not solve this with downcast because one day, we'll have FindMemMask or FindRelative32 returning an UINTN bigger than a UINT32 and we will have a nasty bug.)

Yes, OSVersion as parameter is redundant. Will be excluded.

 

Find*** methods operates within kernel size so they range is 20Mb. UINT32 will be enough.

Link to comment
Share on other sites

4 hours ago, Slice said:

Find*** methods operates within kernel size so they range is 20Mb. UINT32 will be enough.

I know it's coincidentally alright because of kernel size. But it's still an assumption.

Is there a problem to change patchLocation2 and patchLocation3 to UINTN ?

 

 

 

  • Like 1
Link to comment
Share on other sites

7 hours ago, Jief_Machak said:

I know it's coincidentally alright because of kernel size. But it's still an assumption.

Is there a problem to change patchLocation2 and patchLocation3 to UINTN ?

 

 

 

I think no problem.

Link to comment
Share on other sites

My hack from signature don't boot with r5115(r5114 all ok), debug say "Invalid device tree for kext injection". Preboot log attached. Together screenshot from Clover built-in embedded Theme with missed icon or badge.

 

Someone, upload please latest compiled BOOTX64.efi or CloverX64.efi for test.

 

Thank you.

preboot.log

screenshot0.png

Edited by yapan4
Link to comment
Share on other sites

r5115 prebuilt release is actually working pretty good on a VERY OLD DX58so... I have had issues transitioning this board that was rock solid running clover 43xx and ElCap with a 660 graphics card.. more reliable than my MacBook but moving to a Vega and clover 5000+ has been.. well interesting

 

It has brought native NVRAM to this intel half baked EUFI that this board has.. but it broke the ability for the board to boot without manually hitting F10 every boot to get to the bios boot picker... clover added a Mac OS X header and my UEFI drive showed up there but if left to boot on its own would go black screen with a solid cursor and not boot into clover at all...  

The other day in the clover menu I decided to hit apply clover boot option to all volumes and boom.. now a whole bunch of boot.efi entries show up above the MAC OS X header and the board does auto boot them.. it unfortunately as mentioned does not respect the picked drive but will default to preboot.. so I removed all boot options, used clover to hide all but my macOS volume and recovery..  rebooted, added clover boot options to all which added boot.efi lines only for macOS and recovery.. and defualts to the first drive in line which is macOS.. so one issue solved

 

I too have noticed that i now get a cmos reset on reboot and sometimes even on start after full shutdown. I have a heavily patched DSDT and don't use clovers auto fix..  do 10.14.6 2020-002 change the RTC requirements and need a new patch?  

 

I have also lately decided to go split personality on the SMBIOS section.  I was running straight MacPro5,1 as the board and the W3680 are pretty damn close to a late 2012 Mac Pro ...  but now I put in JUST the board-id of the iMac-pro instead of injecting it as a shiki variable... I now have FULL 264 AND 265 encode/decode with the vega and at least DRM with prime video using just pikera and skikigva=80 args along with dart=0 and darkwake=no

 

is there a way like with open core to change a board-it without it showing up in iMessage debug?  like they are doing with real macpro5,1 and open core..?  doesn't really mater.. apple did kick my iMessage but signing out, rebooting and signing back in have SO FAR worked so even though  I am using macpro5,1 def, serial, firmware etc.. and the iMacpro1,1 board id... the rig works pretty damn good.

 

I can still only boot with one monitor connected at DP1 .. if I try and boot the HDMI monitor or have both on at boot, or boot the one and turn on the other after getting to the desktop, black screen and console logging GPU.restart .. 

so I have to boot single, sleep, wake and that wake is sometimes hit/miss.. but if it wakes.. the second monitor can now be on and subsequent sleep/wakes usually are reliable and both monitors can remain on.. I have yet to figure that out

 

I know that open core is the future and that a lot of development is focused there but I just don't think the x58 will work very well with it .. and with no way to use my modded DSDT I would have to figure out all the find and replaces and that is just way too far past my ability or paygraide.. 

 

keep up to good work boys... 

 

Link to comment
Share on other sites

1 hour ago, SergeNu said:

Hello! I have a problem with Clover bootscreen. Images aren't displayed. Any suggestions?

IMG_20200505_082916.jpg

Your theme probably has the icons in the wrong format (icns). It needs to be updated.

  • Like 1
Link to comment
Share on other sites

23 minutes ago, Pene said:

Your theme probably has the icons in the wrong format (icns). It needs to be updated.

In what format? icns worked before i update clover with one of new 5100+ builds.

Link to comment
Share on other sites

×
×
  • Create New...