Jump to content

Clover General discussion


ErmaC
29,866 posts in this topic

Recommended Posts

4 minutes ago, Matgen84 said:

@Jief_Machak Please, don't forget to reimplement the @Slice commit about Update to Monterey Beta 7.

Have a nice day.

Done.

10 minutes ago, Jief_Machak said:

@Slice Thing to have a look in CommonPatches.c, importing KernelCPUIDPatch() if needed (maybe there is a kernel cpuid patch mechanism we can use instead ?).

 

I will study this moment

  • Thanks 2
Link to comment
Share on other sites

2 hours ago, MifJpnAlphaPlus said:

I'm sorry to have rushed you into such an important idea.
I want to cooperate fully!
I'll ansered your lead and hold off on the build for now.
I made the following log from the Clover, BLT, and OpenRuntime-v12.efi I received.

2021-09-25_08-45_CloverX64-2021-09-23-22-55-36-8f3b2f0-jief.efi.log.zip 21.18 kB · 4 downloads

Cannot boot.😞

I will open everything.

EFI.2109251753.zip
I know it is hard for you to use your precious time, but please help me.

Thank you very much.

 

Hi. As @Jief_Machak says: have a look to FixOwnerShip in your config.plist ! For my Z390 config, I've the same trouble. All works fine when @Jief_Machak set FixOwnerShip to false.

  • Thanks 1
Link to comment
Share on other sites

1 minute ago, Jief_Machak said:

Yes. But if you have v11 and v12 and try an old version, both will be tried to be loaded.

Because old Clover has no the method to not load other version...

3 hours ago, Sherlocks said:

hi jief, can you consider emulated nvram support? old clover support emulated nvram feature. but now latest clover is not supporting it.

Sent from my SM-N960N using Tapatalk
 

Why do you think it absents?

Link to comment
Share on other sites

3 minutes ago, Slice said:

Because old Clover has no the method to not load other version...

Yes, exactly. So it'll be more handy when we'll have v13.

4 minutes ago, Slice said:

Why do you think it absents?

No real idea what that is. Isn't this an external efi to put in drivers, and not something internal to Clover ?

Link to comment
Share on other sites

Hi @Slice

How to use 'Implement ExtendedFeatures' for Monterey in config-sample.plist ! Just uncommented the key, right 🙂 

For my Z390, I use SMBIOS Imac19,1. My FirmwareFeatures, FirmwareFeaturesMask values aren't the same as in the config-sample. I admit that I don't understand a thing.

Edited by Matgen84
Link to comment
Share on other sites

1 hour ago, Jief_Machak said:

 

No real idea what that is. Isn't this an external efi to put in drivers, and not something internal to Clover ?

For legacy BIOS there is a driver MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe/ which is included into boot6 and boot7 providing emulated NVRAM into RAM. So variables will be keeping in memory until reboot. In the case of shutdown or reboot the Clover provided shutdown script which save variables from emulated NVRAM into the file nvram.plist. Next start Clover will read the file nvram.plist and place its content into new RAM which will be assigned to emulated NVRAM again.

 For UEFI BIOS there are always hardware NVRAM but some years ago it was unaccessible from Clover so why Dmazar wrote new driver EmuVariableUefi.efi which also create emulated NVRAM into RAM but taking into account there is UEFI BIOS. vit9696 invented a method to force native NVRAM in new drivers AptioMemoryFix and OpenRuntime.  Since that EmuVariableUefi.efi is no more used by anybody although remains in sources.

 

So @Sherlocks what is your question?

Link to comment
Share on other sites

8 minutes ago, Slice said:

For legacy BIOS there is a driver MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe/ which is included into boot6 and boot7 providing emulated NVRAM into RAM. So variables will be keeping in memory until reboot. In the case of shutdown or reboot the Clover provided shutdown script which save variables from emulated NVRAM into the file nvram.plist. Next start Clover will read the file nvram.plist and place its content into new RAM which will be assigned to emulated NVRAM again.

 For UEFI BIOS there are always hardware NVRAM but some years ago it was unaccessible from Clover so why Dmazar wrote new driver EmuVariableUefi.efi which also create emulated NVRAM into RAM but taking into account there is UEFI BIOS. vit9696 invented a method to force native NVRAM in new drivers AptioMemoryFix and OpenRuntime.  Since that EmuVariableUefi.efi is no more used by anybody although remains in sources.

 

So @Sherlocks what is your question?

 

About a month or so ago, I reported on this issue.
Before clover was mixed with open core, it worked fine.

 

 

Edited by Sherlocks
Link to comment
Share on other sites

2 hours ago, Jief_Machak said:

@Slice Thing to have a look in CommonPatches.c, importing KernelCPUIDPatch() if needed (maybe there is a kernel cpuid patch mechanism we can use instead ?).

 

Where is PatchKernelCpuId() implementation?

12 minutes ago, Sherlocks said:

 

About a month or so ago, I reported on this issue.
Before clover was mixed with open core, it worked fine.

 

 

If you have EmuVariableUefi.efi  then exclude it and test. OpenRuntime should make native NVRAM working.

Link to comment
Share on other sites

You don't need to check AutoGenerated.c. The key feature is bit 35 in (Extended)FirmwareFeatures and in the mask. Thanks to vit9696 for the discovery.

I should note that old FirmwareFeatures is 32bit only. We have to set the bit in the ExtendedFirmwareFeatures.

Now Clover has the default values for some models. Other users may set it in config.plist.

  • Like 2
Link to comment
Share on other sites

12 hours ago, Slice said:

I use Xcode as an IDE to find symbols in the whole project.

Yeah, I never understood why you don't use the CloverX64 project I made. So much quicker. Compiled the whole Clover (I mean Clover itself, the rEFIt_UEFI folder) and 10 seconds.

12 hours ago, Slice said:

Hmm, text editor size of 30Gb...

?

Can I help in any way ?

Link to comment
Share on other sites

You don't need to check AutoGenerated.c. The key feature is bit 35 in (Extended)FirmwareFeatures and in the mask. Thanks to vit9696 for the discovery.
I should note that old FirmwareFeatures is 32bit only. We have to set the bit in the ExtendedFirmwareFeatures.
Now Clover has the default values for some models. Other users may set it in config.plist.

Which models are they?
Will all these new changes be included in the next clover release? Any changes to config.plist? Will there be documentation?


Sent from my iPhone using Tapatalk
  • Like 1
Link to comment
Share on other sites

10 hours ago, Jief_Machak said:

Yeah, I never understood why you don't use the CloverX64 project I made. So much quicker. Compiled the whole Clover (I mean Clover itself, the rEFIt_UEFI folder) and 10 seconds.

?

Can I help in any way ?

You can help me if tell an textEditor which can search a keyword through all files in chosen files set.

For example I want to find all occurrence of  word "FirmwareFeatures". Xcode can, but it weights 31Gb.

I didn't use the project CloverX64 because it doesn't contain all interesting sources. And compilation only DEBUG-XCODE8? I want RELEASE_GCC53. If I change one file then the compilation by hebuild.sh is 10 seconds.

Link to comment
Share on other sites

2 hours ago, Slice said:

hebuild.sh is 10 seconds

If you modify only one file, xcode compilation is half a second. It's a big time saver after having written a big piece of code, to catch all syntax errors. Just saying...

 

2 hours ago, Slice said:

CloverX64 because it doesn't contain all interesting sources

Source reference can be added, no problem.

 

2 hours ago, Slice said:

I want RELEASE_GCC53

Yes, it's not meant to replace build scripts. Once it compiles, I switch to GCC, with ebuild.sh, as it works better in gdb.

 

Also :

I can see that hebuild.sh and ebuild.sh are almost the same. One difference, for example, is that they don't use the same mtoc binary. Shouldn't we update and keep only one ? Redundancy is always dangerous...

 

 

2 hours ago, Slice said:

I want to find all occurrence of  word "FirmwareFeatures"

grep ?

Annoying because it's command line, but easy to use.

I think Visual Studio Code do it too.

Link to comment
Share on other sites

@yapan4 So 0x3E7 is the new CsrActiveConfig for Big Sur/Monterey?

 

For beeing a "new" sample, I think it has an awful lot of obsolete options, patches, features and quirks for old OSes and CPUs enabled…

Link to comment
Share on other sites

2 minutes ago, 5T33Z0 said:

@yapan4 So 0x3E7 is the new CsrActiveConfig for Big Sur/Monterey?

 

For beeing a "new" sample, I think it has an awful lot of obsolete options, patches, features and quirks for old OSes and CPUs enabled…

It's not final version, for comparison and test only!

Link to comment
Share on other sites

6 hours ago, Jief_Machak said:

If you modify only one file, xcode compilation is half a second. It's a big time saver after having written a big piece of code, to catch all syntax errors. Just saying...

 

Source reference can be added, no problem.

 

Yes, it's not meant to replace build scripts. Once it compiles, I switch to GCC, with ebuild.sh, as it works better in gdb.

 

Also :

I can see that hebuild.sh and ebuild.sh are almost the same. One difference, for example, is that they don't use the same mtoc binary. Shouldn't we update and keep only one ? Redundancy is always dangerous...

 

 

grep ?

Annoying because it's command line, but easy to use.

I think Visual Studio Code do it too.

I use BBEdit.app. It can do regular expression searches. It has worksheets so you could also use grep while inside BBEdit.app. I use the worksheets for git and building as well. It's like Terminal.app but you can select commands and press enter to execute them and edit the output. Worksheets are an idea from the MPW days. MPW was cool because you could execute scripts to modify all the menus and add menu commands. It had commands to manipulate text windows, the current selection, etc. For example, MPW didn't have text block selection capabilities but you could make scripts/menu commands to add that functionality.

 

For EFI projects, I like using -save-temps in the compiler commands. Then I can search the .i files to find the include file where a struct or function is defined. They can be used to find compile problems (it shows what the preprocessor produces). It's one way to find the include file for an EFI protocol for example.

 

Link to comment
Share on other sites

×
×
  • Create New...