Matgen84 Posted May 3, 2020 Share Posted May 3, 2020 (edited) @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 May 3, 2020 by Matgen84 Link to comment Share on other sites More sharing options...
chris1111 Posted May 3, 2020 Share Posted May 3, 2020 (edited) @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 You latest change 2502b0d82 are good Thank you for your effort Thanks to all Dev working10.6 Saved Output.txt.zip Edited May 3, 2020 by chris1111 1 Link to comment Share on other sites More sharing options...
vector sigma Posted May 3, 2020 Share Posted May 3, 2020 (edited) 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 May 3, 2020 by vector sigma 1 Link to comment Share on other sites More sharing options...
Pene Posted May 3, 2020 Share Posted May 3, 2020 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. 1 Link to comment Share on other sites More sharing options...
chris1111 Posted May 3, 2020 Share Posted May 3, 2020 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 More sharing options...
chris1111 Posted May 3, 2020 Share Posted May 3, 2020 @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 More sharing options...
Jief_Machak Posted May 3, 2020 Share Posted May 3, 2020 @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.) 1 Link to comment Share on other sites More sharing options...
vector sigma Posted May 3, 2020 Share Posted May 3, 2020 (edited) 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: so why delete them? Tthis should be done, at least, by a preinstall of /CloverBootloader/CloverPackage/package/Scripts.templates/off Edited May 3, 2020 by vector sigma 1 Link to comment Share on other sites More sharing options...
Jief_Machak Posted May 3, 2020 Share Posted May 3, 2020 I must add that I took the occasion to extend ConcatAll and Split. They now accept literal, and even just a char. So "LoadOptions.ConcatAll(" ")" and "LoadOptions.ConcatAll(' ')" must work, for example. Link to comment Share on other sites More sharing options...
chris1111 Posted May 3, 2020 Share Posted May 3, 2020 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: 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 More sharing options...
vector sigma Posted May 3, 2020 Share Posted May 3, 2020 (edited) 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 May 3, 2020 by vector sigma 1 Link to comment Share on other sites More sharing options...
chris1111 Posted May 3, 2020 Share Posted May 3, 2020 (edited) 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 May 3, 2020 by chris1111 1 Link to comment Share on other sites More sharing options...
vector sigma Posted May 3, 2020 Share Posted May 3, 2020 49 minutes ago, Jief_Machak said: the parameter "OSVersion" in LOADER_ENTRY::KernelPatcher_32 is hiding the member with the same name OSVersion. Is this parameter redundant ? looks like needs a rename. Link to comment Share on other sites More sharing options...
Pene Posted May 3, 2020 Share Posted May 3, 2020 (edited) 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 May 3, 2020 by Pene Link to comment Share on other sites More sharing options...
vector sigma Posted May 3, 2020 Share Posted May 3, 2020 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. 1 Link to comment Share on other sites More sharing options...
Slice Posted May 3, 2020 Share Posted May 3, 2020 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. 2 Link to comment Share on other sites More sharing options...
tluck Posted May 4, 2020 Share Posted May 4, 2020 FYI, the lastest changes/fix for 5115 is working again on Sierra, High Sierra, Mojave, and Catalina. thanks! 3 Link to comment Share on other sites More sharing options...
Slice Posted May 4, 2020 Share Posted May 4, 2020 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 More sharing options...
Jief_Machak Posted May 4, 2020 Share Posted May 4, 2020 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 ? 1 Link to comment Share on other sites More sharing options...
Slice Posted May 4, 2020 Share Posted May 4, 2020 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 More sharing options...
yapan4 Posted May 4, 2020 Share Posted May 4, 2020 (edited) 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 Edited May 4, 2020 by yapan4 Link to comment Share on other sites More sharing options...
dragonmel Posted May 4, 2020 Share Posted May 4, 2020 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 More sharing options...
SergeNu Posted May 5, 2020 Share Posted May 5, 2020 Hello! I have a problem with Clover bootscreen. Images aren't displayed. Any suggestions? Link to comment Share on other sites More sharing options...
Pene Posted May 5, 2020 Share Posted May 5, 2020 1 hour ago, SergeNu said: Hello! I have a problem with Clover bootscreen. Images aren't displayed. Any suggestions? Your theme probably has the icons in the wrong format (icns). It needs to be updated. 1 Link to comment Share on other sites More sharing options...
SergeNu Posted May 5, 2020 Share Posted May 5, 2020 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 More sharing options...
Recommended Posts