Jump to content

Clover Problems and Solutions


ErmaC
3,206 posts in this topic

Recommended Posts

One weird behavior with Clover is that Clover try to create misc folder(EFI\CLOVER\misc) per boot, there's generally two drawback of this behavior:

  • Perform I/O especially write per boot(slow, especially on HDD)
  • Undesirable if user remove misc intentionally but Clover persists creating it every time

More reasonable behavior should be egSave do a simple check to see if the directory exist or not(we may check each directories existence iteratively/recursively, but seems a bit slow?)

 

egSave has been improved in r4205, and misc will not be created each boot.

 

syscl

 

Regarding this commit 4205.

This code in image.c is wrong:

+  CHAR16              DirName[256];
...
+  FreePool(DirName);
  • Like 3
Link to comment
Share on other sites

i found one about imac17,1 smc rev when install fresh hs dp9.

 

installer makes 

/Volumes/EFI/EFI/APPLE/UPDATERS/MULTIUPDATER/Mac-B809C3757DA9BB8D.epm

/Volumes/EFI/EFI/APPLE/UPDATERS/MULTIUPDATER/Mac-B809C3757DA9BB8D.smc 

 

to update 

REV          : 02 34 0f 00 00 02

 

clover used 2.33f10.

 

as result, mac installer always makes files for smc update to match board-id and latest smc rev key.

post-980913-0-44667200-1505223755_thumb.png

 

Mac-B809C3757DA9BB8D.smc.zip

  • Like 2
Link to comment
Share on other sites

 

i found one about imac17,1 smc rev when install fresh hs dp9.
 
installer makes 
/Volumes/EFI/EFI/APPLE/UPDATERS/MULTIUPDATER/Mac-B809C3757DA9BB8D.epm
/Volumes/EFI/EFI/APPLE/UPDATERS/MULTIUPDATER/Mac-B809C3757DA9BB8D.smc 
 
to update 
REV          : 02 34 0f 00 00 02
 
clover used 2.33f10.
 
as result, mac installer always makes files for smc update to match board-id and latest smc rev key.

 

 

Only one file here for Imac13,2 SMBIOS: Mac-F60DEB81FF30ACF6.epm?

Link to comment
Share on other sites

Only one file here for Imac13,2 SMBIOS: Mac-F60DEB81FF30ACF6.epm?

Seems most of system has epm file. There is epm file on my all system. I dont know role of epm file.

 

But there is no smc file except imac17,1 on my system. I tested.

 

Also when install HS with imac17,1

1. Boot usb installer, installer copy files.

2. 2nd boot, shown that remains 12 minutes, then suddenly reboot, 3nd boot, install HS.

Maybe 2nd boot, seems update smc.

 

 

나의 LG-F800S 의 Tapatalk에서 보냄

  • Like 1
Link to comment
Share on other sites

Seems most of system has epm file. There is epm file on my all system. I dont know role of epm file.

 

But there is no smc file except imac17,1 on my system. I tested.

 

Also when install HS with imac17,1

1. Boot usb installer, installer copy files.

2. 2nd boot, shown that remains 12 minutes, then suddenly reboot, 3nd boot, install HS.

Maybe 2nd boot, seems update smc.

 

 

나의 LG-F800S 의 Tapatalk에서 보냄

Same process here for Imac13,2 et macpro6,1 SMBIOS. On french mac4ever site: "Each migration / installation will be machine specific and will install appropriate firmware."  https://www.mac4ever.com/actu/124903_macos-high-sierra-une-installation-specifique-a-votre-mac-ce-qui-pose-quelques-soucis-maj

  • Like 1
Link to comment
Share on other sites

Same process here for Imac13,2 et macpro6,1 SMBIOS. On french mac4ever site: "Each migration / installation will be machine specific and will install appropriate firmware." https://www.mac4ever.com/actu/124903_macos-high-sierra-une-installation-specifique-a-votre-mac-ce-qui-pose-quelques-soucis-maj

Can you upload smc file?

 

나의 LG-F800S 의 Tapatalk에서 보냄

  • Like 1
Link to comment
Share on other sites

/Volumes/EFI/EFI/APPLE/UPDATERS/MULTIUPDATER/Mac-your imac13,2 board-id.smc

 

나의 LG-F800S 의 Tapatalk에서 보냄

As I say before post # 2470: "Only one file here for Imac13,2 SMBIOS: Mac-F60DEB81FF30ACF6.epm." And only one file for macpro6,1 SMBIOS: Mac-F60DEB81FF30ACF6.epm. Curiously it's same epm file. But no SMC files?

 

I've two HDD for my system: one with Imac13,2 and other with macpro6,1

 

Update: for Imac13,2 SMBIOS it would be i  Mac13,2: 'Mac-FC02E91DDD3FA6A4' 

Link to comment
Share on other sites

As I say before post # 2470: "Only one file here for Imac13,2 SMBIOS: Mac-F60DEB81FF30ACF6.epm." And only one file for macpro6,1 SMBIOS: Mac-F60DEB81FF30ACF6.epm. Curiously it's same epm file. But no SMC files?

Sorry for my english.

Like you said, some smbios uses 3nd boot for installation of HS.

If there is no smc file, smc was matched from latest smc rev. Also Installer pkg is not include smc file of all models. Seems atleast need to update smc rev key for models of missing smc rev when installation of HS.

 

Thank you for clear report.

 

EDIT1.

I tested 2nd reboot with remains 12 minutes

1. macpro61

2. Imac171

 

2nd no reboot

1. imac18.x

 

나의 LG-F800S 의 Tapatalk에서 보냄

  • Like 1
Link to comment
Share on other sites

Sorry for my english.

Like you said, some smbios uses 3nd boot for installation of HS.

If there is no smc file, smc was matched from latest smc rev. Also Installer pkg is not include smc file of all models. Seems atleast need to update smc rev key for models of missing smc rev when installation of HS.

 

Thank you for clear report.

 

EDIT1.

I tested 2nd reboot with remains 12 minutes

1. macpro61

2. Imac171

 

2nd no reboot

1. imac18.x

 

나의 LG-F800S 의 Tapatalk에서 보냄

What about same epm files under different SMBIOS? I don't understand why.

 

Sorry for my english

Link to comment
Share on other sites

This seems to do the trick for fixing the Clover installer bug with mounting EFI with an APFS setup:

 

SPEEDY-NUC-2:Clover rehabman$ git diff
diff --git a/CloverPackage/package/Scripts.templates/EFIFolder/MountESP b/CloverPackage/package/Scripts.templates/EFIFolder/MountESP
index 6a95dbe5..68abce71 100755
--- a/CloverPackage/package/Scripts.templates/EFIFolder/MountESP
+++ b/CloverPackage/package/Scripts.templates/EFIFolder/MountESP
@@ -37,6 +37,17 @@ if [[ "$(echo $(LC_ALL=C diskutil list | grep -i 'Logical Volume' | \
     fi
 fi
 
+# check if target volume is APFS, and therefore part of an APFS container
+if [[ "$(echo $(LC_ALL=C diskutil list "$DiskDevice" | grep -i 'APFS Container Scheme' | \
+            awk '{print tolower($0)}'))" == *"apfs container scheme"* ]]; then
+    # ok, this disk is an APFS partition, extract physical store device
+    realDisk=$(LC_ALL=C diskutil list "$DiskDevice" 2>/dev/null | \
+        sed -n 's/.*Physical Store *//p')
+    echo Target volume "$1" on "$DiskDevice" is APFS on physical store "$realDisk"
+    DiskDevice=$(LC_ALL=C diskutil info "$realDisk" 2>/dev/null | \
+        sed -n 's/.*Part [oO]f Whole: *//p')
+fi
+
 # echo "realDisk = $realDisk"
 # echo "UUID = $UUID"
 # echo "DiskDevice = $DiskDevice"
  • Like 10
Link to comment
Share on other sites

now that clover has support for APFS. shouldn't the installer also check/verify to see if you have /usr/standalone/i386/APFS.EFI binary or the one in installer app and include or have the option to include in clover drivers. since we don't have an open source option like vboxhfs yet.

Link to comment
Share on other sites

Hi devs, I'm getting inconsistent kext loading on Clover 4207. Sometimes it works as expected:

25:354  0:010  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\Other
25:354  0:000    Extra kext: EFI\CLOVER\kexts\Other\CalDigitUSBxHCI.kext
25:365  0:011    Extra kext: EFI\CLOVER\kexts\Other\CalDigitFastIO.kext
25:370  0:005    Extra kext: EFI\CLOVER\kexts\Other\LPCSensors.kext
25:401  0:030    Extra kext: EFI\CLOVER\kexts\Other\USBInjectAll.kext
25:599  0:198    Extra kext: EFI\CLOVER\kexts\Other\RealtekRTL8111.kext
25:613  0:013    Extra kext: EFI\CLOVER\kexts\Other\FakeSMC.kext
25:626  0:013    Extra kext: EFI\CLOVER\kexts\Other\CPUSensors.kext
25:634  0:007    Extra kext: EFI\CLOVER\kexts\Other\Lilu.kext
25:647  0:012  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10.12
25:647  0:000    Extra kext: EFI\CLOVER\kexts\10.12\NvidiaGraphicsFixup.kext
25:656  0:008    Extra kext: EFI\CLOVER\kexts\10.12\CoreDisplayFixup.kext
25:663  0:007    Extra kext: EFI\CLOVER\kexts\10.12\AppleALC.kext
25:677  0:013    PlugIn kext: EFI\CLOVER\kexts\10.12\AppleALC.kext\Contents\PlugIns\PinConfigs.kext
25:842  0:165    Extra kext: EFI\CLOVER\kexts\10.12\NVWebDriverLibValFix.kext
25:854  0:011    Extra kext: EFI\CLOVER\kexts\10.12\GPUSensors.kext
25:875  0:021  SetStartupDiskVolume:

But once in a while it just skips a folder:

7:778  0:010  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\Other
7:790  0:012    Extra kext: EFI\CLOVER\kexts\Other\CalDigitUSBxHCI.kext
7:798  0:007    Extra kext: EFI\CLOVER\kexts\Other\CalDigitFastIO.kext
7:801  0:003    Extra kext: EFI\CLOVER\kexts\Other\LPCSensors.kext
7:831  0:030    Extra kext: EFI\CLOVER\kexts\Other\USBInjectAll.kext
8:028  0:197    Extra kext: EFI\CLOVER\kexts\Other\RealtekRTL8111.kext
8:041  0:012    Extra kext: EFI\CLOVER\kexts\Other\FakeSMC.kext
8:053  0:012    Extra kext: EFI\CLOVER\kexts\Other\CPUSensors.kext
8:060  0:006    Extra kext: EFI\CLOVER\kexts\Other\Lilu.kext
8:071  0:010  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10.12
8:071  0:000  SetStartupDiskVolume:

Perhaps I'm being too vague with just this log so if you need some other info just let me know please.

  • Like 1
Link to comment
Share on other sites

now that clover has support for APFS. shouldn't the installer also check/verify to see if you have /usr/standalone/i386/APFS.EFI binary or the one in installer app and include or have the option to include in clover drivers. since we don't have an open source option like vboxhfs yet.

Which versions now have support for APFS?

Link to comment
Share on other sites

now that clover has support for APFS. shouldn't the installer also check/verify to see if you have /usr/standalone/i386/APFS.EFI binary or the one in installer app and include or have the option to include in clover drivers. since we don't have an open source option like vboxhfs yet.

You mean the Clover installer now supports APFS. The ideal situation would be to get ApfsJumpStart working (requires some missing protocols/etc), as this is what real Macs use. IIRC, apfs.efi is embedded into the Core Storage (APFS?) container, and ApfsJumpStart locates and loads the driver. I believe netkas said that ApfsJumpStart also checks the signature of apfs.efi (to prevent malicious drivers from loading malicious EFI drivers).

  • Like 4
Link to comment
Share on other sites

Hi devs, I'm getting inconsistent kext loading on Clover 4207. Sometimes it works as expected:

 

But once in a while it just skips a folder:

 

I'm experiencing the same thing with r4208.  Attached are boot logs from 3 consecutive boots:

 

Boot 1 ---> Chose -v from Clover menu ---> Kext injection from EFI\CLOVER\kexts\Other OK but from EFI\CLOVER\kexts\10.13 fails

Boot 2 ---> Opened Kext Management under Clover Options to confirm kexts in /10.13 were not checked (they weren't) ---> Kext injection from EFI\CLOVER\kexts\Other and EFI\CLOVER\kexts\10.13 OK

Boot 3 ---> Let Clover boot from High Sierra Volume without changing any boot options ---> Kext injection from EFI\CLOVER\kexts\Other OK but from EFI\CLOVER\kexts\10.13 fails.

 

Edit:  Fixed with Clover r4210 :)

Clover r4208 Bootlogs.zip

  • Like 3
Link to comment
Share on other sites

You can try to replace 'asc_sysVer' here with 'SrcDir' (whoops is it fullpath?) to get fixed 'Major.Minor' instead of 'Major.Minor.Revision' / invalid DestMax (should be length * sizeof (CHAR16)). Also noticed 'Count' here are always ZERO.

GetListOfInjectKext(Basename (SrcDir));
Edited by cecekpawon
  • Like 2
Link to comment
Share on other sites

 

You can try to replace 'asc_sysVer' here with 'SrcDir' (whoops is it fullpath?) to get fixed 'Major.Minor' instead of 'Major.Minor.Revision' / invalid DestMax (should be length * sizeof (CHAR16)). Also noticed 'Count' here are always ZERO.

GetListOfInjectKext(Basename (SrcDir));

Hi cecekpawon, the Count there will be refined for user to disable inject kext in config.plist later on. But I am currently very lack of time. 

  • Like 1
Link to comment
Share on other sites

Could be possible to add again support for this reboot fix patch in latest clover?

It was working in 4184 release..in latest it is no more working:

<dict>
	<key>Comment</key>
	<string>reboot fix</string>
	<key>Disabled</key>
	<false/>
	<key>Find</key>
	<data>
	vgsAAABd6QgAAAAPH4QAAAAAAFVIieVBVw==
	</data>
	<key>Replace</key>
	<data>
	vgsAAABd6QgAAAAPH4QAAAAAAMNIieVBVw==
	</data>
</dict>

find

be0b0000 005de908 0000000f 1f84000000000055 4889e541 57

replace

be0b0000 005de908 0000000f 1f840000000000c3 4889e541 57

 

Thank you

If it is made in clover config then it is not clover issue. Kernel patching is supported as before.

Probably the kernel changed.

Link to comment
Share on other sites

×
×
  • Create New...