Jump to content

Clover General discussion


ErmaC
30,171 posts in this topic

Recommended Posts

33 minutes ago, Download-Fritz said:

Why do you hardcode kext names for injection order?

Just to go quicker and avoid some work if in the end we don't keep that solution. My point is still "can it work ?". But I wouldn't keep in a final revision.

 

36 minutes ago, Download-Fritz said:

instead figure out how to design the library interfaces to work well for both projects

100% agree. If we could for example design a library for kext injection, I would certainly use that instead of integrate the whole thing.
Also, it's not a really fork as I (almost) didn't modify your code. This experiment is to see if we can use OC component without duplicate them and having to maintain a copy. Slice is more up for a fork, I think. He'd prefer that we copy what we need and maintain that separate copy.

A shard library is the answer, for sure !

  • Like 2
Link to comment
Share on other sites

43 minutes ago, Jief_Machak said:

You stopped at 


21:471  0:082  OSInfo:OSName called
21:485  0:014  OSInfo:OSVendor called

Same as Slice and Matgen84. Let's hope booter quirks solve the problem :

 

add this (change the true and false, obviously and set them like you have them in your OC clover.plist) to your Clover config.plist. Do not put in in any section. See mine if you're unsure.


	<key>OcBooter</key>
	<dict>
		<key>MmioWhitelist</key>
		<array/>
		<key>Quirks</key>
		<dict>
			<key>AvoidRuntimeDefrag</key>
			<true/>
			<key>DevirtualiseMmio</key>
			<false/>
			<key>DisableSingleUser</key>
			<false/>
			<key>DisableVariableWrite</key>
			<false/>
			<key>DiscardHibernateMap</key>
			<false/>
			<key>EnableSafeModeSlide</key>
			<true/>
			<key>EnableWriteUnprotector</key>
			<false/>
			<key>ForceExitBootServices</key>
			<false/>
			<key>ProtectMemoryRegions</key>
			<false/>
			<key>ProtectSecureBoot</key>
			<false/>
			<key>ProtectUefiServices</key>
			<true/>
			<key>ProvideCustomSlide</key>
			<true/>
			<key>ProvideMaxSlide</key>
			<integer>0</integer>
			<key>RebuildAppleMemoryMap</key>
			<true/>
			<key>SetupVirtualMap</key>
			<true/>
			<key>SignalAppleOS</key>
			<false/>
			<key>SyncRuntimePermissions</key>
			<true/>
		</dict>
	</dict>

Here is the efi.

config.plist

CloverX64.efi.zip

Same  :ninja:

32:928  0:219  OSInfo:OSName called
32:977  0:048  OSInfo:OSVendor called

Link to comment
Share on other sites

Tested Clover revision: 5122 (opencore_integration, commit 86f90ef0d) without success.

I excluded OcQuirks and written quirks into config.plist according to latest sample.

BigSur stopped as usual after [EB|#B:VAw]

More interesting is Mojave.

The full picture (with older Clover) looks like on photo

Spoiler

IMG_0283.jpeg

These lines came from Boot.efi Mojave version.

But with new Clover the process stopped after line "End ProcessOptions". So I may propose that the command "RegisterRestartDataProtocol" hanged.

It may happen because OC overrides some UEFI services.

 

I can't boot with new Clover because of this and can't boot with old Clover because of absent OcQuirks.

Link to comment
Share on other sites

I don't understand why this "new" clover wouldn't boot Mojave. I barely touch the code. All the OC initialisation are in StartLoader11.

I've just tried to boot High Sierra Mojave and it worked. But of course, if you need AptioMemoryFix or OcQuirks, you need to put it back, even for this "clover".

If we'd like to keep this branch, we'll have to resolve this conflict where AptioMemoryFix or OcQuirks is needed to boot version 10, but has not not be loaded for 11. We can also decide to boot everything through OC, so AptioMemoryFix or OcQuirks will just has to be removed for any version.

Again, because I didn't know if it could work, or, even if it works, if we keep it that way, I didn't want to spend time solving that problem.

 

Link to comment
Share on other sites

sorry if I intrude, but from my point of view, now that in Clover, in his config.plist and from the GUI to boot you can operate on the setting of ocquirks and openruntime, why ever use the valid AptioMemoryFix, but now a little outdated?
Isn't it better to focus on just ocquirks that can operate a bit with all the hardware?!

  • Like 1
Link to comment
Share on other sites

I don't really understand these OcQuirks.efi in Clover.

Consider "DisableSingleUser" for example. OK, settings are initialised in an OC struct somewhere. But if Clover doesn't call the boot process in OC, I guess that this settings has no effect.

So my question is : for people who currently has it with "regular" clover and 10.x version, for what setting do you need it ? If you remove it, what happens ?

Link to comment
Share on other sites

31 minutes ago, Jief_Machak said:

I don't really understand these OcQuirks.efi in Clover.

Consider "DisableSingleUser" for example. OK, settings are initialised in an OC struct somewhere. But if Clover doesn't call the boot process in OC, I guess that this settings has no effect.

So my question is : for people who currently has it with "regular" clover and 10.x version, for what setting do you need it ? If you remove it, what happens ?

 

Hi @Jief_Machak OcQuirks.efi beside Openruntime replace my old AptioMemoryFix. This is why, I use them to avoid error memory allocation for the kernel on my Z390 config. If I understand well.

 

I ask you several time if I've to remove too Openruntime.efi in /Drivers/UEFI for testing OpenCore_integration. Tell me.

Sorry, always my bad english :yes:

Link to comment
Share on other sites

59 minutes ago, Jief_Machak said:

I don't really understand these OcQuirks.efi in Clover.

Consider "DisableSingleUser" for example. OK, settings are initialised in an OC struct somewhere. But if Clover doesn't call the boot process in OC, I guess that this settings has no effect.

So my question is : for people who currently has it with "regular" clover and 10.x version, for what setting do you need it ? If you remove it, what happens ?

Default values are in config-sample.plist and it works almost for all without special tuning.

vit9696 introduced switchable quirks for the debug purpose or to boot real Macs.

Link to comment
Share on other sites

31 minutes ago, Matgen84 said:

if I've to remove too Openruntime.efi in /Drivers/UEFI for testing OpenCore_integration

Yes, keep it.

 

13 minutes ago, Slice said:

Default values are in config-sample.plist and it works almost for all without special tuning.

vit9696 introduced switchable quirks for the debug purpose or to boot real Macs.

My question was : most (if not all) of these settings does nothing with "regular" Clover, the one that doesn't use OC, right ?

  • Thanks 1
Link to comment
Share on other sites

5 minutes ago, Jief_Machak said:

Depending of the compilation command you use, the version information are not always updated. To be sure, delete Version.h and Build folder and recompile.

 

I do what you explain to me now. 

I use this command: ./ebuild.sh --buildtarget=DEBUG. Because I see in build that default toolchain is Xcode8.

Link to comment
Share on other sites

27 minutes ago, Jief_Machak said:

 

My question was : most (if not all) of these settings does nothing with "regular" Clover, the one that doesn't use OC, right ?

All quirks that enabled perform very useful actions to boot macOS.

Strictly speaking AptioMemoryFix == OpenRuntime+OcQuirks

AptioMemoryFix is somehow obsolete because new quirks was introduced.

  • Like 2
Link to comment
Share on other sites

16 minutes ago, Matgen84 said:

./ebuild.sh --buildtarget=DEBUG

With this command, Version.h is not updated, but it's created with the up-to-date info if missing.

So if you do 

rm -f Version.h & ./ebuild.sh --buildtarget=DEBUG

you should have an always up-to-date version info.

  • Thanks 1
Link to comment
Share on other sites

Feeling nostalgic for booting old macOS on my legacy BIOS desktop (System 2, Ga-P55aUD3), I decided to test the latest release Clover r5122.

 

Good news: r5122 boots 10.7.5, 10.13.6 and 10.15.6 OK


Not so good news:

Clover r5120-5122 seems to have broken kext injection when booting Snow Leopard 10.6.8 ---> boot hang "failed to locate SMC driver"...

 

Spoiler

1218146875_r5122_hangonboot.JPG.c4ddf9e51667a0272a35c0fc7748c423.JPG


Comparing Clover r5122 boot-log for Lion (which boots OK)…

40:547  0:000  Beginning FSInjection
FSInjectionInstall ...
- Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: DCD5DC98
FSInjectionInstall ...
- Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: DCD5DC98
40:560  0:013  Use origin smbios table type 1 guid.
40:561  0:000  UniOSVersion == 10.7.5
40:561  0:000  UniShortOSVersion == 10.7
40:561  0:000  Preparing kexts injection from EFI\CLOVER\kexts\Other
40:561  0:000  ->Extra kext: EFI\CLOVER\kexts\Other\RealtekRTL8111.kext (v.1.2.3)
40:657  0:096  ->Extra kext: EFI\CLOVER\kexts\Other\FakeSMC.kext (v.3.3.1)
40:714  0:056      |-- PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\IntelCPUMonitor.kext (v.1.1)
40:742  0:028  GetOtherKextsDir(FALSE) return NULL
40:742  0:000  Preparing kexts injection from EFI\CLOVER\kexts\10
40:742  0:000  Preparing kexts injection from EFI\CLOVER\kexts\10_normal
40:742  0:000  Preparing kexts injection from EFI\CLOVER\kexts\10.7
40:742  0:000  Preparing kexts injection from EFI\CLOVER\kexts\10.7_normal
40:742  0:000  Preparing kexts injection from EFI\CLOVER\kexts\10.7.5
40:742  0:000  Preparing kexts injection from EFI\CLOVER\kexts\10.7.5_normal


with Clover r5122 boot-log for Snow Leopard (which hangs)…

365:851  0:462  Beginning FSInjection
366:326  0:475  Use origin smbios table type 1 guid.
366:788  0:461  UniOSVersion == 10.6.8
367:249  0:461  UniShortOSVersion == 10.6
367:711  0:461  Preparing kexts injection from EFI\CLOVER\kexts\Other
368:173  0:462  ->Extra kext: EFI\CLOVER\kexts\Other\RealtekRTL8111.kext (v.1.2.3)
368:731  0:558  ->Extra kext: EFI\CLOVER\kexts\Other\FakeSMC.kext (v.3.3.1)
369:247  0:515      |-- PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\IntelCPUMonitor.kext (v.1.1)
369:734  0:487  GetOtherKextsDir(FALSE) return NULL
370:123  0:388  Preparing kexts injection from EFI\CLOVER\kexts\10
370:602  0:479  Preparing kexts injection from EFI\CLOVER\kexts\10_normal
371:066  0:463  Preparing kexts injection from EFI\CLOVER\kexts\10.6
371:526  0:460  Preparing kexts injection from EFI\CLOVER\kexts\10.6_normal
371:988  0:461  Preparing kexts injection from EFI\CLOVER\kexts\10.6.8
372:447  0:459  Preparing kexts injection from EFI\CLOVER\kexts\10.6.8_normal


r5122 when booting Snow Leopard is missing "Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle"

 

Compare to Clover r5119 boot-log for Snow (boots successfully)…

27:911  0:000  Beginning FSInjection
FSInjectionInstall ...
- Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: DE81FA18
FSInjectionInstall ...
- Our FSI_SIMPLE_FILE_SYSTEM_PROTOCOL installed on handle: DE81FA18
27:922  0:010  Use origin smbios table type 1 guid.
27:923  0:000  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\Other
27:923  0:000  Disabled kext: EFI\CLOVER\kexts\Other\WhateverGreen.kext (v.1.4.2)
27:923  0:000  Disabled kext: EFI\CLOVER\kexts\Other\Lilu.kext (v.1.4.7)
27:923  0:000  Disabled kext: EFI\CLOVER\kexts\Other\AppleALC.kext (v.1.5.2)
27:923  0:000  ->Extra kext: EFI\CLOVER\kexts\Other\RealtekRTL8111.kext (v.1.2.3)
27:943  0:019  ->Extra kext: EFI\CLOVER\kexts\Other\FakeSMC.kext (v.1800)
27:981  0:038      |-- PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\FakeSMC_LPCSensors.kext (v.1800)
28:527  0:545      |-- PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\FakeSMC_GPUSensors.kext (v.1800)
28:551  0:024      |-- PlugIn kext: EFI\CLOVER\kexts\Other\FakeSMC.kext\Contents\PlugIns\FakeSMC_CPUSensors.kext (v.1800)
28:569  0:018  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10
28:569  0:000  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10_normal
28:569  0:000  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10.6
28:569  0:000  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10.6_normal
28:569  0:000  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10.6.8
28:569  0:000  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10.6.8_normal
Spoiler

1682418216_Cloverr5119bootingSnowLeopard.thumb.png.3d8ff0c119c67cac767499ec1a215aa8.png

Clover boot logs

 

PS off topic:  I can confirm the latest OC 0.6.1 is also able to boot 10.6.8, 10.7.5, 10.13.6, 10.15.6  to 11.0beta6 (USB installer and already installed Big_Sur) on the same system :).

  • Like 2
Link to comment
Share on other sites

7 minutes ago, mifjpn said:

Hello every one.

I Try the follows

% Git pull
Updating 389ec9d17..3a2d6f14c
% sh ./ebuild.sh --buildtarget=DEBUG
Copy /Users/alpha/CloverBootloader/Build/Clover/DEBUG_XCODE8/X64/CLOVERX64.efi to /EFI/ClOVERX64.efi,and /EFI/BOOT/BOOTX64.efi

 

But same answer...

debug.log

 

Idem :cry:

  • Sad 1
Link to comment
Share on other sites

4 hours ago, mifjpn said:

Thank you for your effort.
I tried the following

% Git pull
Updating f4b3445
% sh ./ebuild.sh --buildtarget=DEBUG
Copy /Users/alpha/CloverBootloader/Build/Clover/DEBUG_XCODE8/X64/CLOVERX64.efi to ../EFI/ClOVERX64.efi,and ../EFI/BOOT/BOOTX64.efi

 

But the same answer with/without OcQuirks.efi(Time Stamp:2020-9-4-Fri 22:38)

 

debug.log

 

Why?

 

Thanks @Slice Compile without error but...

Always same issue

33:504  0:033  OSInfo:OSName called
33:525  0:021  OSInfo:OSVendor called

 

debug.log

  • Like 1
  • Sad 1
Link to comment
Share on other sites

On 9/8/2020 at 4:38 PM, Jief_Machak said:

My second entry is Options and 3rd is about Clover with Clover sign.

 

 

Send me your debug.log. It doesn't do that here, so I can't tell.

Screenshot 2020-09-08 at 16.36.57.png

Clover entry can be absent with legacy boot so with virtual machine as it designed only for UEFI boot.

  • Like 2
Link to comment
Share on other sites

On 9/8/2020 at 3:54 PM, Slice said:

In the Clover GUI you may see second line of entries like tools entries. First one is to call Shell.efi and the second one with a Clover sign is for writing the boot entry /EFI/CLOVER/CLOVERX64.EFI into nvram to use as default boot entry

Sorry to come back to that but I'm intrigued. I boot UEFI, so I understand I should see this entry. For me, the clover is the about menu. Could someone send me a screenshot of where is it ?

 

Link to comment
Share on other sites

48 minutes ago, Jief_Machak said:

Sorry to come back to that but I'm intrigued. I boot UEFI, so I understand I should see this entry. For me, the clover is the about menu. Could someone send me a screenshot of where is it ?

 


Done ! attached The "About Menu" is on the right of "Options" menu

 

Spoiler

screenshot0.thumb.png.12743f3e4f8eb474f877fa7f8102379a.png

 

Edited by Matgen84
Link to comment
Share on other sites

1 hour ago, Jief_Machak said:

Sorry to come back to that but I'm intrigued. I boot UEFI, so I understand I should see this entry. For me, the clover is the about menu. Could someone send me a screenshot of where is it ?

 

"Clover" entry will be absent in virtual machine. It is for real boot.

  • Like 2
Link to comment
Share on other sites

×
×
  • Create New...