Jump to content

Clover Change Explanations


172 posts in this topic

Rev 4222

It is my own wish   B)

 

The task was follow.

My laptop Dell Latitude E6430 can be powered with Optimus enabled or disabled in BIOS. They are two different computers and I want to see in which mode I started before timeout is ended because sometimes it switched despite on my wish.

Now I wrote in config.plist

	<key>GUI</key>
	<dict>
		<key>ShowOptimus</key>
		<true/>

and see Clover GUI as

screenshot25.png

 

The criteria is a number of videocard found.

2 = Embedded Intel + Discrete == "Optimus"  "Intel"

1 = Discrete only == "Discrete"

 

I am not sure if someone else needed this feature so default behaviour to be not show.

  • Like 7

Rev 4223
It is accumulated update because I can't commit changes before.
update FakeSMC
move BrandString to be calculated before use
allow StrictHibernate when Fixup used
rename Optimus->Intel as it is more correct
block Dell specific SetVariable

 

In config.plist you may set

	<key>Boot</key>
	<dict>
		<key>HibernationFixup</key>
		<true/>

if you are using Lilu+HibernationFixup.kext

It will allow you to use mode 25.

 

EDITED. Don't bother!

It is calculated automatically.

  • Like 6

Rev 4231

P-State generator in Clover will be compatible with some DSDT.

I found in my Dell E6430 follow line

       ^CPU0._PPC = Local0

But it was not possible with current clover generated SSDT because the _PPC was a method.

Now I make it to be the Name for CPU0 and link for others.

    Scope (\_PR.CPU0)
    {
        Name (_PPC, Zero)  // _PPC: Performance Present Capabilities
....

    Scope (\_PR.CPU1)
    {
        Method (_PPC, 0, NotSerialized)  // _PPC: Performance Present Capabilities
        {
            Return (\_PR.CPU0._PPC)
        }

and so on.

  • Like 2

Rev 4233

Make menu for kext disabling inside Details menu to disable some kexts immediatly before OS started

See screens

Снимок экрана 2017-10-01 в 17.51.38.png

enter menu

Снимок экрана 2017-10-01 в 17.37.06.png

 

But if you enter Option before choosing an OS then you can see

Снимок экрана 2017-10-01 в 17.37.43.png

 

Rev 4237

Kext disabling excluded from Option menu.

It will be only in Details menu

  • Like 7
  • 2 weeks later...

Rev 4247

There was an oversight in handling hidden volumes.  Volumes hidden with the GUI->HIDE mechanism in config.plist did not show up when pressing F3 to show them.  This is fixed.

  • Like 7

Rev 4248

Fix for undefined OS version in High Sierra installer. Explanation here

  • Like 4

Rev 4249

Corrected two bugs.

1. Menu separation lines was clickable.

2. Entering kexts management menu may cause boot without kexts after return.

Both bugs corrected here, more tests needed.

  • Like 4

Rev 4250

XCPM patch will no more be unconditional.

		<key>KernelXCPM</key>
		<true/>

Default value is

It can arise some problems because old revision has default to true.

But many users can't boot at all because of this. Let it be conditional setting from config or from Clover GUI.

  • Like 10
  • 3 weeks later...

Rev 4268
correct MachineSignature before wake from hibernation.

It is attempt to cure an issue at some configurations that boot.efi failed to check

		//
		// check machine signature
		//
		UINT32 machineSignature			= 0;
		if(!EFI_ERROR(AcpiGetMachineSignature(&machineSignature)) && machineSignature != localHeader.MachineSignature)
			try_leave(NOTHING);

The patch will write the MachineSignature from hibernation image into FACS table. But it is wrong for good machines

 

Rev 4270

condition for signature fixup

Now this Signature Fixup will be conditional through config.plist

		<key>SignatureFixup</key>
		<false/>

Rev 4291

if not SignatureFixup, it will be zeroed.

 

Anyway, the Signature must be fixed

If true then the value is from hibernate image

if false then the value is zero and it will be copied by kernel into the image.


Rev 4293

detect 10.13 installer version, by fusion71au

 

Explanation here  #15351

  • Like 9

Rev 4294

New Shell is able to correctly edit plists. Most important is config.plist. TAB characters converted to double spaces on the fly

Enter Shell

Shell> fs0:

fs0:> cd EFI\CLOVER

fs0:\EFI\CLOVER> edit config.plist

...

Press F2 to save the result

Press F3 to exit from editing

fs0:> exit

you will return to Clover

 

Enjoy!

  • Like 16

Rev 4299
Support Reset NVRAM with F11 in Clover GUI.
post-980913-0-06079300-1510513733_thumb.png

operations
native NVRAM system
- directly cleanup variables

not support NVRAM system(EmuVariableUefi-64.efi + rc script) and Legacy(+rc script) for only ESP. link
- search for nvram.plist and will delete it

after reset NVRAM, will be reboot.

if you want to know support NVRAM on your system, in terminal
type sudo nvram boot-args="-v"
then reboot, check verbose log, if it doesn't work, not support native NVRAM on your system.

Rev 4301
Support Fusion Drive for 10.12+.
Fix empty in block kext inject in GUI if os version is null. link link

Rev 4303
Improve Reset NVRAM

variables list to reset NVRAM
native NVRAM system
- boot-args
- nvda_drv

not support NVRAM system
- detect nvram.plist and delete it on only ESP partition
- boot-args
- nvda_drv
- hibernate keys if there is

about hibernate keys. link
- after you are using Lilu + HibernationFixup without knowing for sure whether hibernation works
if you experienced instant reboot when using any macos(recovery, usbinstaller, partition),
reset NVRAM with F11 help you can boot.

  • Like 16

Rev 4307
Cleanup, fix and support more CPU for Generate option

 process for power management in old/new Clover

  -for sandy-, default - disabled P/C States generate option

  -for ivy+, default - enabled P/C States generate option

 

Do not mix the custom power management file(SSDT.aml) and the P/C States option

 if you want to use power management

  1. only use P/C States option without SSDT.aml

  2. turn off P/C States option. then put SSDT.aml in ACPI/patched folder

		<key>SSDT</key>
		<dict>
			<key>Generate</key>
			<dict>
				<key>CStates</key>
				<false/>
				<key>PStates</key>
				<false/>
			</dict>
		</dict>

Rev 4313
Fix without cache option(-f)

-it's useful for snow leopard installation to avoid AppleIntelCPUPowerManagement KP or patched AppleHDA

 

Rev 4316
Fix potential uncertainty of without caches option(-f)

 - without option(-f) and SystemParameters/NoCaches option work on 10.6 to 10.9.

  • Like 11

Rev 4314
Limit scope of binary DSDT patch by "Device" section with specified name in additional "TgtBridge" tag[/size]
by goodwin_c
 
Config.plist sample

                                <dict>
                                        <key>Comment</key>
                                        <string>Rename PXSX to SSD0</string>
                                        <key>Disabled</key>
                                        <false/>
                                        <key>Find</key>
                                        <data>UFhTWA==</data>
                                        <key>Replace</key>
                                        <data>U1NEMA==</data>
                                        <key>TgtBridge</key>
                                        <data>UlAwOQ==</data>
                                </dict>
                                <dict>
                                        <key>Comment</key>
                                        <string>Rename PXSX to SSD0 2</string>
                                        <key>Disabled</key>
                                        <false/>
                                        <key>Find</key>
                                        <data>UlAwOS5QWFNY</data>
                                        <key>Replace</key>
                                        <data>UlAwOS5TU0Qw</data>
                                </dict>
  • Like 7
  • 2 weeks later...

Rev 4331

Fix EDK2 bug notice at  #15797 by nms (same as nms42 at Clover credits).

Thunk.S in Baselib is wrong.

Good one is Thunk.nasm and we want use it.

 

The difference in compilation

Thunk.S

0000000000000077 662E0F0197F8FFFFFF              lgdt       fword [cs:rdi+0xfffffffffffffff8]

Thunk.nasm

0000000000000077 2E660F0157EE                    lgdt       fword [cs:rdi+0xffffffffffffffee]
  • Like 5

Rev 4334


Fix potential OSInstall.mpkg issue in High Sierra


-no more remove EmuVariableUefi-64.efi and nvram.plist to install/update High Sierra


 


if still happen OSInstall.mpkg issue, delete macOS Install Data folder in root. download update/beta from appstore again.


  • Like 15

Rev 4337

Play Paper-Rock-Scissors game.

Paper covers Rock.

Rock beats Scissors.

Scissors cut Paper.

 

Discussion here

 

rev 4339 make this compatible with gcc.

  • Like 3

Rev 4351, 4355

Additional patches for EDID.

Now config.plist may contain follow EDID section

	<key>Graphics</key>
	<dict>
		<key>EDID</key>
		<dict>
			<key>#Custom</key>
			<data>AP///////wAGECGSAAAAAAASAQOAIRV4CunVmVlTjigmUFQAAAABAQEBAQEBAQEBAQEBAQEB3iGgcFCEHzAgIFYAS88QAAAY3iGgcFCEHzAgIFYAS88QAAAAAAAA/gBXNjU3RwAxNTRXUDEKAAAA/gAjMz1IZYSq/wIBCiAgAJo=</data>
			<key>#Inject</key>
			<true/>
			<key>#ProductID</key>
			<string>0x9221</string>
			<key>#VendorID</key>
			<string>0x1006</string>
			<key>#HorizontalSyncPulseWidth</key>
			<integer>100</integer>
			<key>#VideoInputSignal</key>
			<string>0xA5</string>
		</dict>
	</dict>

Custom is EDID obtained or created manually. You mostly don't need do it as Clover usually can obtain it by himself.

Inject=true informs Clover to inject Custom or Discovered EDID into video device properties. You have to set it to true is you do patches.

 ProductID and VendorID - may be you want to mimic your display to be Apple manufactured. But you should know what you do. Making this patch I found that Brightness control stop working. Remove this patch and brightness control is working again!

HorizontalSyncPulseWidth - this patch helps to resolve garbled screen at boot with Intel graphics. Known problem of 8 apples.

I see that the patch is still needed

			<dict>
				<key>Comment</key>
				<string>Patch 8 apples</string>
				<key>Disabled</key>
				<false/>
				<key>Find</key>
				<data>AQAAdRc=</data>
				<key>MatchOS</key>
				<string>10.11</string>
				<key>Name</key>
				<string>IOGraphicsFamily</string>
				<key>Replace</key>
				<data>AQAA6xc=</data>
			</dict>

but this patch alone is not full solution. The apple is broken for a several seconds and then restored.

With new Clover setting HorizontalSyncPulseWidth = 100 there is a full solution. The image is good and not jumped.

 

VideoInputSignal - this is additional patch for the same problem but I found no inluence.

Definition of the value is follow

Bit 7=1

Digital input. If set, the following bit definitions apply:

 

Bits 6–4 Bit depth: 000=undefined, 001=6, 010=8, 011=10, 100=12, 101=14, 110=16 bits per color, 111=reserved Bits 3–0 Video interface: 0000=undefined, 0001=HDMIa, 0010=HDMIb, 0100=MDDI, 0101=DisplayPort

 

My default values for desktop 0x80 (Digital, all undefined), for laptop 0x90 -6bits per color?! - not good.

It seems value 0xA0 will be better if used.

And I don't know interface for intenal screen.

 

Credits. I was informed by Derek about this patch but initially it was wrong (byte 64 while it must be 63+65).

https://github.com/1and1get2/Clover/commit/ee301efdcce8ae1e47be21267490753a0c145c1d

The discussion was at tmx site as well wrong and without result. And I don't know who is initial inventor because in those matter it can't work properly.

  • Like 7
  • 4 weeks later...

Rev 4368, 4369
 
NVRAM and other runtime fixes for AptioFix.
 
Runtime code areas are no longer allowed to be relocated by boot.efi like runtime data areas. Runtime methods for NVRAM variables are shimmed to enable writing into runtime code regions during the methods, then disabled upon return. Native NVRAM should work for everyone now. AptioFix2 should be preferred over AptioFix, but you may need to calculate a slide value for now.

  • Like 14
  • 2 weeks later...
  • 3 weeks later...

Rev 4406

 

Updated built_gcc7.sh to create GCC 7.3 toolchain for use with './ebuild.sh -t GCC53'.

 

Note that latest binutils is 2.30, but due to some unresolved bug, all versions of binutils later than 2.27 cause build failures.

  • Like 1
  • 1 month later...

Rev 4420

Fix 10.13.4 USB Installer issue with OS Version detection

 

  • Like 5

Rev 4427-4429

FixHeaders should be in common ACPI section, it is not DSDT-only fix.

	<key>ACPI</key>
	<dict>
		<key>FixHeaders</key>
		<true/>

The FIX is recommended to all users even if you are not going to fix DSDT. 

Anyway the fix is safe.

 

Old setting inside DSDT fixes remains for backward compatibility but I recommend to exclude it from those section.

  • Like 11
  • Thanks 1

Rev 4435

Fix a rare case that osversion cannot be read and cleanup for maintenance and new macOS ready

 - checked all macOS installation with test from 10.6 to 10.13.4 for osversion detection and improved osversion read

  • Like 6