Jump to content
Welcome to InsanelyMac.com - No more ads! And some exciting news... Read more... ×
Slice

Clover Change Explanations

170 posts in this topic

Recommended Posts

Rev 3208 by Apianti

Fix enable secure boot, should work now.


Rev 3210-3214

Implemented Proportional font width.

It must be set in every theme.plist

<dict>
	<key>Author</key>
	<string>Slice</string>
	<key>Description</key>
	<string>Main metallic looking theme</string>
	<key>Theme</key>
	<dict>
		<key>Font</key>
		<dict>
			<key>Proportional</key>
			<true/>
			<key>CharWidth</key>
			<integer>10</integer>
			<key>Path</key>
			<string>BoG_LucidaConsole_10W_NA.png</string>
			<key>Type</key>
			<string>Load</string>
		</dict>

It will be better if CharWidth will be even value to avoid dirty.

The best if CharWidth = FontWidth - 2

 

Compare:

Fixed width

Screen Shot 2015-05-29 at 10.06.49.png

Proportional

Screen Shot 2015-05-29 at 14.47.28.png

 

Share this post


Link to post
Share on other sites

Rev 3222

load specific ROM for nvidia cards, ©ErmaC

 

Implemented a possibility to load ROM with name specific to subvendor_id

It allows to keep a database of different ROMs in one place.

For example

10de_0f00_1458_3544.rom

 

Rev 3222 - 3224.

Implemented NvidiaGeneric names. Idea by ErmaC.

	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<true/>
		</dict>
		<key>NvidiaGeneric</key>
		<true/>

If this true then generic name for Videocard will be used. For example instead of

Gigabyte Geforce 7300LE 

I see

NVIDIA Geforce 7300LE

 

 

Rev 3224

Implemented NvidiaSingle

If you have two cards Nvidia and wants to inject only first one :rofl:   then you can set this parameter.

		<key>NvidiaSingle</key>
		<false/>

Share this post


Link to post
Share on other sites

Rev 3250

 

New runtime variables needed for El Capitan and Yosemite.

	<key>RtVariables</key>
	<dict>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>BooterConfig</key>
		<string>0x28</string>
	</dict>

Bit definitions are follow

For CsrActiveConfig

/* Rootless configuration flags */
#define CSR_ALLOW_UNTRUSTED_KEXTS     (1 << 0)
#define CSR_ALLOW_UNRESTRICTED_FS     (1 << 1)
#define CSR_ALLOW_TASK_FOR_PID        (1 << 2)
#define CSR_ALLOW_KERNEL_DEBUGGER     (1 << 3)
#define CSR_ALLOW_APPLE_INTERNAL      (1 << 4)
#define CSR_ALLOW_DESTRUCTIVE_DTRACE	(1 << 5) /* name deprecated */
#define CSR_ALLOW_UNRESTRICTED_DTRACE	(1 << 5)
#define CSR_ALLOW_UNRESTRICTED_NVRAM	(1 << 6)

#define CSR_VALID_FLAGS (CSR_ALLOW_UNTRUSTED_KEXTS | \
                          CSR_ALLOW_UNRESTRICTED_FS | \
                          CSR_ALLOW_TASK_FOR_PID | \
                          CSR_ALLOW_KERNEL_DEBUGGER | \
                          CSR_ALLOW_APPLE_INTERNAL | \
                          CSR_ALLOW_UNRESTRICTED_DTRACE | \
                          CSR_ALLOW_UNRESTRICTED_NVRAM)

For example bit 0 (value 0x01) allows to use unsigned kexts from /Library/Extensions folder.

 

For BooterConfig there are flags

/* Bitfields for boot_args->flags */
#define kBootArgsFlagRebootOnPanic    (1 << 0)
#define kBootArgsFlagHiDPI            (1 << 1)
#define kBootArgsFlagBlack            (1 << 2)
#define kBootArgsFlagCSRActiveConfig	(1 << 3)
#define kBootArgsFlagCSRPendingConfig	(1 << 4)
#define kBootArgsFlagCSRBoot          (1 << 5)
#define kBootArgsFlagBlackBg          (1 << 6)
#define kBootArgsFlagLoginUI          (1 << 7)

This flags is analyzed by boot.efi not by kernel and present in boot_args that read by kernel.

Yosemite kernel has follow usage of this flag

int
csr_get_active_config(csr_config_t *config)
{
	boot_args *args = (boot_args *)PE_state.bootArgs;
	if (args->flags & kBootArgsFlagCSRActiveConfig) {
		*config = args->csrActiveConfig & CSR_VALID_FLAGS;
	} else {
		/* XXX: change to 0 when <rdar://problem/16239698> is in the build */
		*config = CSR_ALLOW_APPLE_INTERNAL;
	}

	return 0;
}

Setting the bit 0x20 is equivalent to kernel flag "rootless=0" (Yosemite kernel)

void
csr_init(void)
{
	boot_args *args = (boot_args *)PE_state.bootArgs;
	if (args->flags & kBootArgsFlagCSRBoot) {
		/* special booter; allow everything */
		csr_allow_all = 1;
	}

	int rootless_boot_arg;
	if (PE_parse_boot_argn("rootless", &rootless_boot_arg, sizeof(rootless_boot_arg))) {
		/* XXX: set csr_allow_all to boot arg value for now
		 * (to be removed by <rdar://problem/16239861>) */
		csr_allow_all = !rootless_boot_arg;
		/* if rootless=1, do not allow everything when CSR_ALLOW_APPLE_INTERNAL is set */
		csr_allow_internal &= !rootless_boot_arg;
	}
}

There is still the question what is changed in El Capitan as we have no the sources.

Share this post


Link to post
Share on other sites

Rev 3262

I wish to propose new way to inject device properties.

For backward compatibility old way is still working.

 

New way advanced user will be able to make different injection for two graphics cards even if they are similar. It is not possible for rev

As well there is a possibility to inject properties for non-standard device (TVTuner?).

 

Detailed instructions will be in Clover Instructions thread ASAP.

Screen Shot 2015-08-24 at 15.42.14.png

Share this post


Link to post
Share on other sites

Rev 3264

Compatibility with new EDK2 18475 (and more?).

New compiled legacy boot tested on G41M-ES2H motherboard.

 

Rev 3265

Add slot name into System Profiler for HDMI device on AMD or Nvidia videocards to avoid PCI device error...

Share this post


Link to post
Share on other sites

Rev 3266

A task: Mavericks and ElCapitan use different framebuffers so ATIConnectorData must be different.

As well FakeCPUID needed for Mavericks is not needed for ElCapitan.

Users must have an ability to load different config.plist for different systems.

Moreover I may propose different configs for similar systems on different volumes.

Or just two entries with different configs without manual switch settings.

That is.

Now we can write name of config into Custom Entry (without .plist extensions!). Tested on Lion computer.

Screen Shot 2015-09-16 at 14.38.50.png

a line Settings=special mean a file special.plist which is the same as config.plist but with other values.

GUI looks like this

screenshot12.png

First entry has SubEntries with a possibility to return to common setting from common config.plist.

screenshot11.png

 

Choosing common or special setting I can boot same system with two different settings.

In my demo this is different VideoCard names. NvidiaGeneric=true/false

 

In this demo I used file special.plist.

It may be ElCapitan.plist or config-666.plist or any other to your taste.

 

One note, this plist should not contain sections Boot and GUI.

Share this post


Link to post
Share on other sites

Rev 3269.

 

I have to make one backward incompatibility with previous versions.

If you had KernelAndKextPatches section inside Custom entries then now you you follow instructions for rev 3266 and move these patches to separate config.

Else it will not work and you will have only common patches.

 

So KernelAndKextPatches section is in config.plist as main section and not in subsection.

 

It is needed as I debugged a crash in it.

PS. It also means nobody used it before ;)

Share this post


Link to post
Share on other sites

By default, when Clover scans your partitions for loaders, each volume found is checked for Linux installations. This check takes a short time, but becomes more noticeable with the more volumes you have. And using a theme with larger icons, for example BGM256, takes even longer.

 

Commit #3325 adds the option for you to disable the scan for Linux installations if you know you don’t have any.

 

To disable the scan, you can now add Linux=false to the GUI->Scan section of your config.plist.

<key>GUI</key>
<dict>
  <key>Scan</key>
  <dict>
    <key>Linux</key>
    <false/>
  </dict>
</dict>
Legacy booting now loads the GUI 2 seconds faster for me.

Share this post


Link to post
Share on other sites

Up to revision 3306 there was internationalizations.

 

Rev 3309

Workaround for core count calculations.

 

Rev 3314

Added file boot1f32 to ISO. It was not here before!

 

Rev 3319

As I successfully created Clang-3.8 from llvm sources I made changes to have a possibility to compile Clover by this new compiler.

Also synchronisation with recent EDK2.

 

Rev 3321

Add an item into Clover menu for instant set *-platform-id  which used as ig-platform-id or snb-platform-id.

 

Rev 3325

Speedup boot by disabling linux scan

		<key>Scan</key>
		<dict>
			<key>Linux</key>
			<false/>

Rev 3326

implement Function Disable

	<key>Devices</key>
	<dict>
		<key>DisableFunctions</key>
		<true/>

For those who knows what is it. RCBA 3418.

 

Rev 3327

check disabled patches, by cecekpawon

If you have many patches in config.plist then you can Enable/Disable then by one click

 

Rev 3328

Same for DSDT patches

			<dict>
				<key>Disable</key>
				<true/>
				<key>Find</key>
				<data>RXh0ZXJuYWw=</data>
				<key>Name</key>
				<string>AppleAHCIPort</string>
				<key>Replace</key>
				<data>SW50ZXJuYWw=</data>
			</dict>

Rev 3329

add switch for string injection by cecekpawon

 

It is added in Clover menu for easy on/off

 

Rev 3330

Don't dump useless OperationRegions

 

Rev 3333

Added support for other Intel CPU.

 

Rev 3334-3336

new GetBiosRegions by Rehabman

 

This resolves some bugs with FixRegion DSDT patch.

 

Rev 3338

Compatibility with recent EDK2, because of changes in Autogen.py build tool.

 

Rev 3348

OsxAptioFixDrv: Align the stack to a 16-byte rather than a 8-byte boundary

patch by Download-Fritz

Assuming resolved some bugs.

 

Rev 3350

Turbo can be disabled

	<key>CPU</key>
	<dict>
		<key>TurboDisable</key>
		<true/>

It can be useful for mobile computers at hot weather.

 

 

Rev 3356

Introduce calculation for ARTFrequency used in ElCapitan and present on Skylake computers.

 

Rev ...-3358

I found many bugs with core count calculation and only in this revision I corrected a reason for this.

It is very old bug, at least 4 years, introduced I didn't remember where and whom.

CPUID_4 can't be used for core count calculations.

 

Rev 3359-3362

Resolve a  SMBIOS patching bug when OEM reused same strings.

 

Rev 3363

I have Clover sources on volume MacHD while work in volume ElCapitan.

This patch permit me to compile Clover from other volume.

 

Rev 3365-3368

Introduce new SMBIOS table type 133 to inject "platform-feature" property into registry. Used by ElCapitan.

	<key>SMBIOS</key>
	<dict>
		<key>PlatformFeature</key>
		<integer>3</integer>

This is integer value that should be same as in real Macs.

 

Rev 3369

Compatibility with Xeon E5 v4


Rev 3372

Don't create empty _DSM method if NoDefault properties set.

patch by cecekpawon

 

Rev 3374

A possibility to not inject ARTFrequency introduced by rev 3356 if calculated value is not good somehow

	<key>CPU</key>
	<dict>
		<key>UseARTFrequency</key>
		<false/>

Share this post


Link to post
Share on other sites

Rev 3471

 

After an investigation of va_args, here's what I found

 

  • The difference between __builtin_va_args and __builtin_ms_va_args is that __builtin_va_args passes va_list by reference (i.e. pointer) from caller to callee when va_list is used as a function parameter.  __builtin_ms_va_args passes va_list by value (which is similar to making an implicit va_copy before passing it.)
  • The C standard allows passing va_list by either value or reference.
  • When va_list is passed by reference, calls to va_arg inside the callee change the caller's va_list.
  • The reason __builtin_va_args was failing with clang builds is due to an error in DevicePathToText.c which passes va_list twice as a parameter without va_copy.
  • I corrected this error, along with other errors in use of va_list I found.
  • As a result, it is now possible to use __builtin_va_args with clang.
  • There is a 2nd issue, which is that __builtin_ms_va_args is intended to allow ms_abi functions to pass their va_list as a parameter when calling sysv_abi functions.  This is not an issue with clang, because clang build uses ms_abi on all functions.  In gcc build, functions declared as EFIAPI are ms_abi - all others are sysv_abi.  So in gcc build, it is necessary to use __builtin_ms_va_args.
  • I set things up so clang build uses __builtin_ms_va_args for Windows64 builds on newer versions known to support these keywords.  On all other clang builds, __builtin_va_args is used.

It is now possible to build Clover with -xcode5 using versions of Xcode prior to 7.3 - as long as DevicePathToText.c is patched from Patches_for_EDK2.

 

Additionally, the problem of GetEfiBootDeviceFromNvram hanging was fixed in rev 3466.  In rev 3470 I added some validation checks to prevent hanging if invalid device paths are stored in nvram.

Share this post


Link to post
Share on other sites

Rev 3474 by cecekpawon

Print information line about building Clover options.

 

Rev 3476 

C1E fix for AMD CPU. Noted by Bronya, implemented in OpenSolaris.

 

Several next commits devoted to good compilation with XCODE5 toolchain.

 

Rev 3487 and 3514

Support for DDR4 by Joe van Tunen

 

Rev 3499 and 3518

Fill SMBIOS tables entries with data from MacPro3,1 if not defined by user in the case the model is not known for Clover.

 

Rev 3505

Link Time Optimization can be disabled for xcode5 toolset by a compile-time flag  --no-lto.

It can be needed for older Xcode versions older then 7.3.

It doesn't affect gcc compilation.


Rev 3519 by cecekpawon

            #721            

Share this post


Link to post
Share on other sites

*** Rev 3327

 

Added example

 

 

 

<key>KextsToPatch</key>
<array>
  <dict>
    <key>Comment</key>
    <string>Sleep</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>
    QcYGAEiLu2g=
    </data>
    <key>Name</key>
    <string>AppleHDA</string>
    <key>Replace</key>
    <data>
    QcYGAUiLu2g=
    </data>
  </dict>
  ...
</array>

 

 

 

Rev 3372

Originally NoDefaultProperties is to create (which still unknown purposes until now) an empty _DSM on each device injected from Clover. From now, we remove em all & switch this function to "SKIP injecting some default extra/additional properties" by Clover. For example, if user have NoDefaultProperties to TRUE & inject NVIDIA to TRUE, then Clover will SKIP inserting extra "connector-type" into registry. However, you still able to do this by hand with "AddProperties" entries like below:

 

 

 

<key>Devices</key>
<dict>
  <key>NoDefaultProperties</key>
  <false/>
  <key>AddProperties</key>
  <array>
    <dict>
      <key>Device</key>
      <string>NVidia</string>
      <key>Key</key>
      <string>@1,connector-type</string>
      <key>Value</key>
      <data>
      AAgAAA==
      </data>
    </dict>
  </array>
  ...
</dict>

 

 

 

Rev 3399

BootDisplay: To fix ugly 2nd stage boot or even black screen before login screen, we add new "BootDisplay" (a shorthand for "@x,AAPL,boot-display") property into config (value range: 0 - [totalports-1]). For years people did this job via D/SSDT / EFI Strings injections (Apple style), but no more. Before, Clover only set this properties to port 0 by default, which may lead problem if your currently active port (connected to display) other than port 0.

VideoPorts: We have now full (NVIDIA, ATI to follow) functionality to parse & set its properties dynamically from amount of display ports by user defined.

Able to inject Intel/Integrated-GPU even its not set to primary in BIOS by using blank FB (find more here).

 

 

 

<key>Graphics</key>
<dict>
  <key>BootDisplay</key>
  <integer>1</integer>
  <key>Inject</key>
  <dict>
    <key>ATI</key>
    <false/>
    <key>Intel</key>
    <true/>
    <key>NVidia</key>
    <true/>
    <key>VideoPorts</key>
    <integer>3</integer>
    <key>ig-platform-id</key>
    <string>0x01620007</string>
  </dict>
  ...
</dict>

 

 

 

Rev 3456

Introduced on 2012 (but seems improperly documented) to set multiple cards fixed properties. Adjust some keys + add more values like: "LoadVBios" & "VideoPorts" for each card (NVIDIA, ATI to follow).

 

 

 

<key>Graphics</key>
<dict>
  <key>NVIDIA</key>
  <array>
    <dict>
      <key>Model</key>
      <string>Quadro FX 380</string>
      <key>IOPCIPrimaryMatch</key>
      <string>0x10DE0658</string>
      <key>VRAM</key>
      <integer>256</integer>
      <key>VideoPorts</key>
      <integer>2</integer>
      <key>LoadVBios</key>
      <true/>
    </dict>
    <dict>
      <key>Model</key>
      <string>YOUR_SECOND_CARD_NAME</string>
      <key>IOPCIPrimaryMatch</key>
      <string>YOUR_SECOND_CARD_ID</string>
      <key>IOPCISubDevId</key>
      <string>YOUR_SECOND_CARD_SUB_ID(if necessary)</string>
      <key>VRAM</key>
      <integer>YOUR_SECOND_CARD_VRAM_SIZE</integer>
      <key>VideoPorts</key>
      <integer>YOUR_SECOND_CARD_PORTS</integer>
      <key>LoadVBios</key>
      <true/><!--YOUR_SECOND_CARD_LOADVBIOS-->
    </dict>
  </array>
  <key>ATI</key>
  <array>
    <dict>
      <key>Model</key>
      <string>ATI Radeon HD6670</string>
      <key>IOPCIPrimaryMatch</key>
      <string>0x6758</string>
      <key>IOPCISubDevId</key>
      <string>0x1342</string>
      <key>VRAM</key>
      <integer>2048</integer>
    </dict>
  </array>
  ...
</dict>

 

 

 

Rev 3490

More adjustment to batch script (wrote by @apianti, please follow this WIKI for min requirements) to compile Clover under Windows. Tested with VS2012, VS2013 & VS2015 with some additional features:

 

 

 

 /--------------------- [ WINDOWS BATCH SCRIPT FOR BUILDING ] ---------------------\


          .d8888b.  888      .d88888b.  888     888 8888888888 8888888b.
         d88P  Y88b 888     d88P   Y88b 888     888 888        888   Y88b
         888    Y88 888     888     888 888     888 888        888    888
         888        888     888     888 Y88b   d88P 8888888    888   d88P
         888        888     888     888  Y88b d88P  8888888    8888888P
         888    d88 888     888     888   Y88o88P   888        888 T88b
         Y88b   88P 888     Y88b. .d88P    Y888P    888        888  T88b
          Y888888P  88888888 Y8888888P      Y8P     8888888888 888   T88ba


 \------------------------------ [ Under rev: 3525 ] ------------------------------/

Infos:
--usage : print this message and exit
--version : print build version and exit
-h, --help : print build help and exit

Configurations:
-n, --threadnumber <THREADNUMBER> : build with multi-threaded [default CPUs + 1]
-t, --tagname <TOOLCHAIN> : force to use a specific toolchain
-a, --arch <TARGETARCH> : overrides target.txt's TARGET_ARCH definition
-p, --platform <PLATFORMFILE> : build the platform specified by the DSC argument
-d, --define=<MACRO>, ex: -D ENABLE_SECURE_BOOT
-b, --buildtarget <BUILDTARGET> : using the BUILDTARGET to build the platform, or:
                        --debug : set DEBUG buildtarget
                      --release : set RELEASE buildtarget

Options:
--vbios-patch-cloverefi : activate vbios patch in CloverEFI
--only-sata0 : activate only SATA0 patch
--std-ebda : ebda offset dont shift to 0x88000
--genpage : dynamically generate page table under ebda
--no-usb : disable USB support
--mc : build in 64-bit [boot7] using BiosBlockIO (compatible with MCP chipset)

Extras:
--cygwin : set CYGWIN dir (def: c:\cygwin)
--nasmprefix : set NASM bin dir (def: c:\cygwin\bin)
--pythonhome : set PYTHON dir (def: c:\Python27)
--pythonfreezer : set PYTHON Freeze dir (def: c:\Python27\Scripts)
--nobootsector : skip create Bootsector (need Cygwin)
--updtools : udate basetools binaries from repo
--updedk : update EDK source from repo
--updclover : update CLOVER source from repo
--edk2setup : using Edk2Setup.bat instead of edksetup.bat
--edk2rebuild : soft compile basetools binaries
--edk2forcerebuild : hard compile basetools binaries
--edk2reconfig : recover target.txt, tools_def.txt and build_rule.txt from template

 

 

 

Rev 3519

Dynamically to en/disable SSDTs (under ACPI\patched folder) injections via GUI menu (under "Tables dropping ->") / config.plist

 

 

 

<key>ACPI</key>
<dict>
  <key>DisabledAML</key>
  <array>
    <string>SSDT-3.aml</string>
    <string>SSDT-666.aml</string>
    <string>SSDT-2.aml</string>
  </array>
  ...
</dict>

 

 

Share this post


Link to post
Share on other sites

Rev 3536

 

Added F1 - Help text in the bottom left corner of GUI. Adjust within theme.plist

<key>Theme</key>
<dict>
  ...
  <key>Components</key>
  <dict>
    <key>Help</key>
    <false/>
    ...
  </dict>
</dict>

Added "System Variables" GUI sub menu. Contain: "BooterConfig" & "CsrActiveConfig".
Set "ExposeSysVariables" to TRUE in Config:SystemParameters to expose more. Current: "MLB", "ROM", "CustomUUID" & "InjectSystemID".

<key>SystemParameters</key>
<dict>
  <key>ExposeSysVariables</key>
  <true/>
  ...
</dict>

Share this post


Link to post
Share on other sites

Rev 3537

 

Do you like proportional fonts? Depends on...

Vertical menu looks better with constant width fonts.

Other text with proportional.

So I made questionable change that options menu will switch font to constant width with char width set in Theme.plist.

While Help, About and Boot information will be proportional or no depends on Theme.plist. In this case char width doesn't matter.

		<key>Font</key>
		<dict>
			<key>CharWidth</key>
			<integer>12</integer>
			<key>Path</key>
			<string>Cambria_20pt_Cell_22x25_l-2_ra.png</string>
			<key>Type</key>
			<string>Load</string>
			<key>Proportional</key>
			<true/>
		</dict>

Share this post


Link to post
Share on other sites

Rev 3549

 

A task: I wanted to create USB stick with Windows UEFI installation. It is proposed to use on legacy PC BIOS-based so the stick is bootable by Clover.

So I took usual stick 4Gb OEM formatted to FAT32 one partition and install Clover 3543 on it. Full success! The stick is bootable and can start OSX on HDD.

There is a big problem to copy Windows distribution on it because it contains a folder BOOT/ while the stick contains file BOOT which is Clover itself. They can't live together.

 

The solution is to rename BOOT -> BOOT5 and replace boot sector boot1f32 by the new one boot1f5 which is the same but booting BOOT5 by default.

Installation instructions are old

 

Suppose your USB stick is disk3

 

sudo -s

dd if=/dev/rdisk3s1 count=1 bs=512 of=/tmp/origbs

cp boot1f5 /tmp/newbs
dd if=/tmp/origbs of=/tmp/newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
dd of=/dev/rdisk3s1 count=1 bs=512 if=/tmp/newbs

Share this post


Link to post
Share on other sites

Rev 3561 - first Sierra compatible revision

 

Rev 3577

Legacy boot improvements.

 

Legacy boot is a process to boot OSes through 16bit instructions in real mode like it did old PC BIOS-based computer before Clover, before UEFI.

It was needed to boot Windows XP or Windows 7-32bit, old Linux or modern systems if the drive formatted to MBR Partition Table.

But Clover is already 32/64bit program working in EFI environment in protected mode. It can't get back to real mode. To do this we made a trick with loading PBR boot sector and start it in real mode.

It's a pity it is not always work because devices like SATA controller occur in undefined state. :(

 

There was three methods for Legacy boot before "LegacyBiosDefault", "PBRtest", "PBR" set by config.plist

	<key>Boot</key>
	<dict>
		<key>Legacy</key>
		<string>PBRtest</string>

"LegacyBiosDefault" assumed UEFI BIOS with CSM module capable to do LegacyBoot.

"PBR" is the most commonly used method for legacy Clover. I have one computer with PATA drive working with this method.

"PBRtest" is somehow different. May be someone will be happy with it.

 

Now I propose one more method "PBRsata". It is the same as "PBR" but making a SATA reset before boot. AFAIK the SATA controller is a main reason why legacy boot is not working.

Hope someone will be happy.

 

PS. The version is released.

Share this post


Link to post
Share on other sites

Rev 3580
make kext patches to be OS dependent, by Micky1979
 
Example


			<dict>
				<key>Find</key>
				<data>SGVhZHBob25lcwA=</data>
				<key>Name</key>
				<string>VoodooHDA</string>
				<key>Replace</key>
				<data>VGVsZXBob25lcwA=</data>
				<key>Disabled</key>
				<false/>
				<key>MatchOS</key>
				<string>10.11.6,10.12.x</string>
			</dict>

Author's post  #880 

and further discussions.

 

 

Rev 3586

Bootcamp style for Clover menu

implemented by Needy

initial post   #485  


Rev 3600

Theme list scroll support

Screens

screenshot4.png screenshot5.png

 

 

 

Share this post


Link to post
Share on other sites

Rev 3603

Delayed preboot.log.

 

Before if we press F2 we immediately save preboot.log. It occured before many patches applied.

Since 3603 press F2 just remember that the log will be saved and this will occur at the OS started. Much more lines will be visible. Some lines we never saw starting Windows as full boot.log is not accessible in this operating system.

 

How it looks now

5:229  0:010  GUI ready
6:242  1:013  UpdateScroll on 0
9:525  3:282  ParseBootOption: invalid boot variable
9:525  0:000  BootOption of the entry is empty
9:525  0:000  StartLoader() start
9:525  0:000  Finally: Bus=200832kHz CPU=2400MHz
9:525  0:000  Loading bootmgfw.efi  status=Success
9:751  0:225  Closing events for Windows
9:751  0:000  OtherOS: Found Acpi 2.0 RSDP 0xCFB13000
9:751  0:000  RSDT at CFEE3040
9:751  0:000  XSDT at 0
9:751  0:000  FADT pointer = CFEE30C0
9:751  0:000  Removed efi-boot-device-data variable: Success
9:751  0:000  Closing log

Share this post


Link to post
Share on other sites

  • Similar Content

    • By 5T33Z0
      Background: Since the Pre-Release of Clover v5123, OpenCore Momory Fixes have been integrated into Clover in the form of OpenRuntime.efi. It replaces previous AptioMemory Fixes. Since v5126 AptioMemoryFixes are obsolete and no longer supported, so an upgrade to v5126 is mandatory in order to be able to install and boot macOS BigSur with Clover.
       
      This guide is for everyone trying to update to the latest Clover version or having issues while updating from previous versions, so they can install and run BigSur on their Machines. While updating to the latest iteration of Clover, there are several obstacles one can come across along the way. This guide is here to assist users trying to make the switch from the "old" Clover version with AptioMemory Fixes to the new one with OpenRuntime and Quirks Settings in CloverConfigurator.
       
      Problem: If you update your existing Clover installation by either installing the clover.pkg file or manually updating it the way you used to this will most likely result in an inoperable bootlader due to missing boot parameters.
       
      Approach: In order to avoid the dilemma of your system not wanting to boot, you have to know that the following files are obsolete and are no longer necessary, so they should eiither be disbabled/deleted when updating Clover from a built prior to v 5123 or omitted altogether when setting up a new EFI Folder:
       
      AptioMemoryFixes: AptioMemoryFix.efi, OsxAptioFix3Drv.efi, OsxAptioFixDrv.efi and everyhing else containing "memoryfix". Unnecessary Drivers (for UEFI-based Systems): DataHubDxe.efi – enables DataHub Protocol Support if it is missing from the BIOS. Modern UEFI BIOSes support this. So it's probably only necessary for Legacy Systems. FSInject.efi – For Kext-Injecttion. But pretty much obsolete since it's fully integrated in Clover nowadays. Might be necessary for Legacy Systems, though. SMCHelper.efi – Necessary when using FakeSMC.kext and ONLY FakeSMC. If you use it in combination with VirtualSMC.efi, it leads to an instant Kernel Panics. So, in other words: when using VirtualSMC – which is higly recommended over FakeSMC – DON'T use SMCHelper, use it in conjunction with VirtulSMC.efi (although unnecessary in most cases). EmuVariableUefi.efi – necessary for emulating NVRAM, if NVRAM is either not available (legacy systems) or working incorrectly. OcQuirks.efi and OcQuirks.plist – delete if present. OcQuirks is a relict from earlier attempts to include OpenCore Booter Quirks into Clover up until version 5122. Incompatible Kexts – wherever possible, you should use the latest available kexts provided by acidanthera (one of the devs behind OpenCore). Because incompatible Kexts are a source for Kernel Panics. I had an issue with my Laptop where VoodooPS2Controller.kext would cause a kernel Panic when used alongside VoodooPS2Mouse.kext, VoodooPS2Trackpad.kext and VoodooPS2Controller.kext. At the time I updated clover from 5122 to 5123, I didn't know that these 3 kexts are now includes as plugins inside of VoodooPS2Controller, so having them twice would cause a panic.

      In general, having Kexts wich have depedencies to oher kexts can cause a KernelPanic if not loaded in the correct order. In OpenCore, you can and have to set up the correct loading order of kexts manually by yourself, but in Clover only a few essential kexts like Lilu and Fake/VirtualSMC are hard-coded in, so they are always loaded first. It took me a while to figure this out. So when you update Clover and you are using lot of Kexts (usually on Laptops), try to update all Kexts first using Kext-Updater which is incredibly useful tool to download all sorts of bootloader-related files, have a look inside of them so see if they include more kexts as plugins and make sure nothing is present twice – HID, Wifi and Bluetooth kexts come to mind here. If you get panics you can not isolate, just move all unnecessary kexts to the "off" folder to temporarily to work around the issue by starting with a minimal set up to get the system running. Then put the disabled kexts back one by one to find the culprit for the panic.  
      Updating your EFI
       
      Prepare an USB Stick. Format it to FAT32 (MBR). We'll use it for testing our updated EFI Folder first, before copying it to the ESP on the HDD. Download the latest Clover Release  as a .zip archive for a manual update (currently "CloverV2-5126.zip"): https://github.com/CloverHackyColor/CloverBootloader/releases Extract the .zip. We'll create our EFI based on the one insides of it. Have a look at the "EFI > Clover > drivers > off > UEFI" Folder – you find the following Files: Copy the following files over to EFI > Clover > drivers > UEFI: ApfsDriverLoader.efi, VBoxHfs.efi and OpenRuntime.efi Now we have a minimal set of Drivers which looks like shown below. The files tagged in gray are in the drivers Folder by defautl and are most likely unnecessary on UEFI-based systems. As mentioned earlier, SMCHelper MUST be deleted when using VirualSMC.kext! I would turn of each of the gray drivers one by one and chick if the system still boots without them.
      Next, copy over your kexts (updated to the latest available version, of course), your ACPI > patched folder and your config.plist form your existing EFI Folder Open CloverConfigurator and update it to the latest Version. It should now include a new section at the bottom called Quirks, as mentioned earlier Now open your config.plist you copied over from your working EFI and click on "Quirks". It should look like this (without the descriptions of course):
      Head over to the OpenCore Install Guide and pick the guide for your CPU Family and Platform. Jump to the "Booter" Section. It contains all required Booter Quirks tinted green in the screenshot. Make sure to unfold the "more in-depth info" box to see what they do. Find the options for your system and tick them away in Clover Configurator. Next, jump to the "Kernel" section of Dortania's guide and copy over the settings from "Quirks" and "Scheme". Again, make sure to unfold the "more in-depth" section to find all necessary settings. NOTE: some of the settings Located in "Kernel > Quirks" have different names and are located in the "Kernel and Kext Patches" section of Clover Configurator. These include:

      In most cases you have these set up correctly already, otherwise your system wouldn't have started before. But it's good to double check if you have settings enabled which may be unnecessary. Once you've ticked all the necessary quirks, save your configuration, copy the new EFI Folder to the root of your USB Flash Drive and try booting from it. If everything was set up correctly, the system should boot as expected. If it does boot, you can mount the ESP partition of your hard drive, backup your EFI Folder, delete it and put in the one from your USB Flash drive to make the changes permanent.  
      TROUBLESHOOTING: If you get Kernel Panics take a note of them and head over to the OpenCore Troubleshooting Guide and have a look at the "OpenCore Boot issues" and "Kernelspace Issues" sections to find your error message and possible fixes to resolve it. Another great resource to check if your Clover config is set-up correctly in general (excluding Quirks) is the Hackintosh Vanilla Desktop Guide For more info about how OpenCore differs from clover and see which settings, drivers and features are compatible, check out the Clover Conversion Guide.
       
      Good luck!
       
      PS: If you run into trouble after following this guide you can upload your config.plist and I can have a look at the quirks.
      PSS: When running BigSur, you need to remove the PreBoot Volume from the "Hide" Section of the GUI because if I understand correctly, BigSur requires booting from it.
      PSSS: if your system boots correctly you can upload a screenshot with your quirks with additional Info like your Board and CPU which might be helpful for other users.
       
    • By MaLd0n
      iMac20,1 Hackintosh 
      A good build for professional audio and video processing.
      We love silence and Cooler SCYTHE Ninja 5 is mandatory in this case!
      A very custom DSDT for best experience under macOS. Removed all unused devices, injected all Apple devices, essentials, cosmetics, real improvements.
       
       

       
       
      -OpenCore Vanilla TUTORIAL-
       
       
      -USB Port Mapping TUTORIAL-
       
       
      -Bios/UEFI Settings-
      CSM Support - Disabled
      Internal Graphics - Enable
      -Thunderbolt Configuration-
      Security Level - No Security
      GPIO3 Force Pwr - Enabled
       
      -Hardware-
      Mobo - Ga Z490 Vision D
      https://tinyurl.com/y4gajha4

      Processor - i7 or i9 10th Intel
      https://tinyurl.com/y6jlskwz

      GPU - RX 580, 590, VEGA 56, VEGA64, 5700XT or RADEON VII
      https://tinyurl.com/y4mxc7t6

      Cooler - SCYTHE Ninja 5 
      https://tinyurl.com/yyrbx5lf

      NVME - WD Black SN750 NVMe SSD
      https://tinyurl.com/vnq46yr
       
      -EFI folders- 
      Clover - https://tinyurl.com/yxzftuyr
      OpenCore - https://tinyurl.com/y3lt8t9l
      Just paste EFI folder into EFI partition, reboot and extract one SendMe. Post this dump here for full ACPI solution!
      Download RunMe.app dumper
       
      -If you want to buy me a beer - Donations with PayPal
      https://tinyurl.com/r2bvzm7
       
      -DSDT- Complete Solution
      DSDT.Z490 VISION D MaLd0n.zip
       
      -SSDT- Not complete solution
      SSDT-OLARILA.aml.zip
       
      -DSDT Patches-
       
       
       
      -USB Solution-
      USB SOLUTION.zip
       
       
       
       
      -Boot Time with Clover or Opencore is same-
       
      -Screenshots-































       
      -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!
      Thx to KGP for SSDT Thunderbolt
      Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad and many, many, many others!

      We're all here to have fun and learn from each other!
    • By VortexisTV
      So I've been trying to update to Big Sur from Catalina but I get stuck at the +++ message at the beginning. I made sure I have all my kexts and drivers updated. Updating to Clover revision 5126 would only get me kernel panics. Am I doing something wrong? Any response would be greatly appreciated. EFI
       
      ASUS Zenbook UX331FN
      Intel Core i5-8265U
      Intel UHD 620
      Clover 5120
       

    • By amadeusex
      Hey guys - how are you holding up?
      Because of a lot of free time and after abandoning the idea to get Catalina installed i tried to run Mojave on my beloved z820v2.
      Everything went fine except power management.
      I've used @WoodCabin's EFI folders to install and later on run Mojave (14.6).
      Here's a glimpse of what i get as soon as i put the patched (from 10.13 as suggested on stinga's X79 power management topic) AppleIntelCPUPowerManagement.kext into S/L/E
       

       
      I tried also @stinga11 s kext patches for Mojave but still either PM's not working or KP.
      Here's my my EFI folder

      @antonio.clb
    • By MaLd0n
      -OpenCore Vanilla TUTORIAL-
       
       
      -USB Port Mapping TUTORIAL-
       
        1 -Create a USB bootable
       
      Create your usb installer, use this tool and download Catalina or Big Sur from Apple servers
       
      Catalina
      installScript_allfullapp.zip
       
      Big Sur
      installScript_1016fullapp.zip
       
      Credits: crazybirdy
       
      Copy Catalina / Big Sur installer to Applications folder, open terminal and run
       
      Catalina
       
       
      Big Sur
       
       
      If you want check one step by step, check here
       
      -Opencore Vanilla Tutorial
      https://tinyurl.com/ycvcnp8h
       
      2- EFI folder USB installation
       
      -EFI OpenCore Folder Desktop 10th Intel Processors
      Paste this EFI folder in EFI partition in your USB STICK
      https://tinyurl.com/ybwr9kq3
       
      -EFI Clover Folder Desktop 10th Intel Processors
      Paste this EFI folder in EFI partition in your USB STICK
      https://tinyurl.com/y6avuxsv
       
       
      3- EFI folder SSD
       
      -EFI OpenCore Folder Desktop 10th Intel Processors
      Paste this EFI folder in EFI partition SSD 
      https://tinyurl.com/ybwr9kq3
       
      -EFI Clover Folder Desktop 10th Intel Processors
      Paste this EFI folder in EFI partition SSD
      https://tinyurl.com/y6avuxsv
       
      4- Start Fine Tune
       
      Run this app and post full dump here for full ACPI solution
       
      RunMe.app
      https://tinyurl.com/y9562hz7
       
       
      If you like a SSDT way, here we go
      SSDT-OLARILA.aml.zip
       
      5- USB Solution
      USB INTEL SERIE 400.zip
       
      Use these kexts, enable XHCI port limit patch and follow this tutorial for remap USB ports
       
       
       
      --DSDT PATCHES--
       
      -FIX ERRORS AND WARNINGS -FIX ACPI ERRORS -REMOVE UNUSED SCOPES / DEVICES -HIGH PRECISION EVENT TIMER -SATA SERIE ID -DMAC -REMOVE LINES, PROBLEMATIC and UNUSED -FIX K.P in REBOOT -NVRAM -REAL TIME CLOCK -SLPB -DARWIN / WINDOWS -XHCI -PLUGIN TYPE -HDEF -ARTC -IPIC -TIMR -SBUS -BUS1 -MCHC -ALS0 -SHUTDOWN -UAR1 -LAN -FWHD -USBX -PMCR -PPMC -XSPI -kUSBCompanionIndex -io-device-location -IMEI -EC -PNLF -ARPT -GFX0 -NVME -ACPI-WAKE-GPE -DTGP -HDMI / HDAU  
      --SCREENSHOTS--































      -If you want to buy me a beer - Donations with PayPal
      https://tinyurl.com/r2bvzm7
       
      Big Thanks to XLR and your Badass Motherboard, Ultrafast CPU, Coolest Heatsink, Huge Graphics Card, Tonnes of RAM,
      Gigantic Hard Drive, Lightspeed Disk Burner, Professional Sound Card, Massive LCD Display.
       
       
      -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!
      Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad and many, many, many others!

      We're all here to have fun and learn from each other!
×