Jump to content

Clover v.2 Instructions

Bootloader EFI Clover

  • Please log in to reply
51 replies to this topic



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

Property List Editor


It is helpful for config.plist editing.

This is utility from old Xcode, looks and works better then new version.

Unpack the archive, copy these frameworks into /Library/Frameworks/

The application may be placed in your convenient folder.

Attached File  PListEditor.zip   6.12MB   1068 downloads

Attached File  Screen Shot 2014-04-28 at 7.58.06.png   97.43KB   185 downloads




It's a pity this program is not working in Sierra. RIP!



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

Blocking Bad Kext

I encounter a bad situation when I installed a kext (it is GeforceSensor) that caused KP. I install it into SLE without checking if it works.
Then I can't boot even with -x, -v, -s. It always loaded and panics.
So I created a revision of Clover that is able to block one kext in /S/L/E.
Test with NVClockX.kext. It is not vital for system so I can experiment with it.

Attached File  BlockKext.png   575.29KB   237 downloads

Ordinary boot

zone leak detection enabled
standard timeslicing quantum is 10000 us
mig_table_max_displ = 73
NVClockX: NVClock Darwin port by alphamerik (C) 2010
NVClockX: usr-sse2 (C) 2010
AppleACPICPU: ProcessorId=0 LocalApicId=0 Enabled
AppleACPICPU: ProcessorId=1 LocalApicId=1 Enabled

With BlockKext

zone leak detection enabled
standard timeslicing quantum is 10000 us
mig_table_max_displ = 73
HWInfo: [Debug] Initialising...
HWInfo: HWInfo get information from Clover bootloader, (c)Slice 2013
IntelCPUMonitor: Based on code by mercurysquad, superhai (C)2008. Turbostates measurement added by Navi
User defined TjMax=0
AppleACPICPU: ProcessorId=0 LocalApicId=0 Enabled
AppleACPICPU: ProcessorId=1 LocalApicId=1 Enabled

So yes, the kext is not loaded by boot.efi. Don't forget to boot without cache!

But then surprise!!!

slice$ sudo kextstat | grep -v apple
Index Refs Address    Size       Wired      Name (Version) <Linked Against>
   18    4 0x566db000 0xa000     0x9000     org.netkas.FakeSMC (3.3.1) <13 7 5 4 3>
   19    0 0x56236000 0x4000     0x3000     org.slice.HWInfo (1) <18 7 4 3>
   20    0 0x566e5000 0x6000     0x5000     org.slice.IntelCPUMonitor (1.1) <18 7 5 4 3>
   23    0 0x56763000 0x7000     0x6000     org.mozodojo.ITEIT87x (1.0.3) <18 7 5 4 3>
   36    0 0x56746000 0x5000     0x4000     com.yourcompany.driver.AppleACPIPS2Nub (1.0.0d1) <13 7 5 4 3 1>
   38    0 0x564b4000 0x3000     0x2000     net.osrom.kext.Disabler (1.0.1) <4 3>
   79    0 0x5d46b000 0x14000    0x13000    org.usrsse2.NVClockX (1.0.1d1) <18 14 7 5 4 3>
   85    0 0x564b7000 0x23000    0x22000    org.voodoo.driver.VoodooHDA (2.8.4) <84 14 7 5 4 3>
Sergeys-iMac:Clover slice$

It is loaded! Why? I think it is loaded by kernel that is not affected by FSInject.efi
But it is loaded much later and give me an ability to boot with -s before the KP will occur.
Yes, this is workaround in the case above.


Since rev.2665



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow


This is a property that usually injected by DSDT or property strings but this is a wrong way to go.
Actually this property appeared by AppleSMBIOS.kext (see sources if you want).
So in revision 2673 I made more vanilla way to assign this property.
1. DSDT must contain Name (_SUN, 0x05). Or other number. The number must be one byte and avoid 0 and 1 because of stupid optimization. Sample:

                Device (GIGE)
                    Name (_ADR, 0x00050000)  // _ADR: Address
                    Name (_SUN, 0x02)  // _SUN: Slot User Number

You may write nothing but set DSDT Fix Mask bits for those devices
Attached File  Screen Shot 2014-05-20 at 10.25.26.png   109.95KB   119 downloads
2. SMBIOS must contains tables type 9 for each named device. To do this write into config.plist like here
Attached File  Screen Shot 2014-05-20 at 10.23.37.png   73.92KB   111 downloads
- Slots->Device is a one of devices {ATI, NVidia, LAN, WIFI, Firewire}. That's all for now. I can accept more propositions.
- Slots->ID must be the same number as you set into DSDT in _SUN.
- Slots->Name will be a string that you want to assign to AAPL,slot-name
- Slot->Type is intended to be a type of slot. There is a number 0,1,2,4,8,16 means PCI, PCIe 1x, PCIe 2x etc.
3. Clover must be revision 2673+
See the result
Attached File  Screen Shot 2014-05-20 at 10.32.56.png   94.82KB   100 downloads
New computer Skylake-based with AMI UEFI BIOS has a function to automatically detect hardware and produces Smbios table type 9 for each inserted cards. So you have to just look your SMBIOS, check all table type 9 and write _SUN properties into each device.

Handle 0x0901, DMI type 9, 17 bytes
0000: 09 11 01 09 01 aa 08 03 03 01 00 04 02 00 00 01 
0010: 00 

System Slot Information
	Designation: PCI Slot 0
	Type: x1 PCI Express x16
	Current Usage: Available
	Length: Short
	ID: 1
		3.3 V is provided
		Hot-plug devices are supported
	Bus Address: 0000:01:00.0

Handle 0x0905, DMI type 9, 17 bytes
0000: 09 11 05 09 01 a6 08 03 03 02 00 04 02 00 00 00 
0010: fe 

System Slot Information
	Designation: Ethernet
	Type: x1 PCI Express x1
	Current Usage: Available
	Length: Short
	ID: 2
		3.3 V is provided
		Hot-plug devices are supported
	Bus Address: 0000:00:1f.6

Handle 0x090C, DMI type 9, 17 bytes
0000: 09 11 0c 09 01 a8 08 03 03 03 00 04 02 00 00 07 
0010: 00 

System Slot Information
	Designation: Firewire
	Type: x1 PCI Express x4
	Current Usage: Available
	Length: Short
	ID: 3
		3.3 V is provided
		Hot-plug devices are supported
	Bus Address: 0000:07:00.0

See ID: and Bus Address.
So we have to compare with boot.log

0:100  0:000  PCI (00|00:01.00) : 8086 1901 class=060400
0:100  0:000  PCI (00|01:00.00) : 10DE 17C8 class=030000 

0:100  0:000  PCI (00|00:1F.06) : 8086 15B8 class=020000

0:100  0:000  PCI (00|00:1C.02) : 8086 A112 class=060400
0:100  0:000  PCI (00|07:00.00) : 104C 823F class=0C0010

See logic. if device has address like 07:00.00 then search a nearest bridge before it
Search these devices in DSDT and add _SUN properties according to SMBIOS.

            Device (PEG0)
                Name (_ADR, 0x00010000)  // _ADR: Address
                Device (PEGP)
                    Name (_ADR, Zero)  // _ADR: Address
                    Name (_SUN, One)

        Device (GLAN)
            Name (_ADR, 0x001F0006)  // _ADR: Address
            Name (_SUN, 0x02)
            Device (RP03)
                Name (_ADR, 0x001C0002)  // _ADR: Address
                Device (PXSX)
                    Name (_ADR, Zero)  // _ADR: Address
                    Name (_SUN, 0x03)

Attention! Don't do this for HDMI Audio device (HDAU).

System Profiler doesn't like it and will tell you "error gathering information about PCI devices"



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow



What to do if your OSX is not supported your CPU?

See table what CPUs supported by different OS versions

CPU name	CPUID	10.4.11	10.5.8	10.6.3	10.6.8	10.7.2	10.7.5	10.8.5	10.9.2
Yonah	      0x0006E6	1	1	1	1	1	1	0	0
Conroe	      0x0006F2	1	1	1	1	1	1	1	1
Penryn	      0x010676	0	1	1	1	1	1	1	1
Nehalem	      0x0106A2	0	1	1	1	1	1	1	1
Atom	      0x0106C2	0	0	0	0	0	0	0	0
XeonMP	      0x0106D0	0	0	0	1	0	0	0	0
Linnfield     0x0106E0	0	0	1	1	1	1	1	1
Havendale     0x0106F0	0	0	1	1	1	1	1	1
Clarkdale     0x020650	0	0	0	1	1	1	1	1
AtomSandy     0x020660	0	0	0	0	0	0	0	0
Lincroft      0x020670	0	0	0	0	0	0	0	0
SandyBridge   0x0206A0	0	0	0	1	1	1	1	1
Westmere      0x0206C0	0	0	0	1	1	1	1	1
Jaketown      0x0206D0	0	0	0	1	1	1	1	1
NehalemEx     0x0206E0	0	0	1	1	1	1	1	1
WestmereEx    0x0206F0	0	0	0	1	1	1	1	1
Atom2000      0x030660	0	0	0	0	0	0	0	0
IvyBridge     0x0306A0	0	0	0	0	0	1	1	1
Haswell	      0x0306C0	0	0	0	0	0	0	1	1
IvyBridgeE5   0x0306E0	0	0	0	0	0	0	0	1
HaswellMB     0x0306F0	0	0	0	0	0	0	1	1
HaswellULT    0x040650	0	0	0	0	0	0	1	1
CrystalWell   0x040660	0	0	0	0	0	0	1	1

If you want to install OSX on Atom CPU then you may see it is not supported.

As well IvyBridge is not supported by 10.7.2 while it will be supported by 10.7.5 after SoftwareUpdate.


For these cases Clover-rev2748+ proposes you to set FakeCPUID in config.plist or even in GUI -> Binaries patching menu


In this example we tell that the CPU is Penryn supported by all OS versions 10.5+


To illustrate I set for my CPU FakeID=0x0106C2 that is unsupported Atom and as expected I got KP while IntelCPUMonitor sees real CPU - Penryn :)

Attached File  03072014202.jpg   170.67KB   141 downloads


And vice versa. If you set good model for bad CPU you may successfully start system.


Download a version Attached File  CLOVERX64.efi-rev2749.zip   249.45KB   248 downloads



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

 Multiple boot options.

Rev 2948+
Briefly, Clover writes Boot#### options for each entry in MainMenu and set BootCurrent to last booted entry if all correct.

Requirements: UEFI boot with real NVRAM present.

Enter CloverGUI, navigate to "Clover Boot Options" in the tools row of main menu and press "Add Clover boot options for all entries".
Attached File  screenshot5.png   194.35KB   145 downloads
If you once do this no need to repeat. It will be saved in NVRAM forever.
When you change the main menu by adding new volume, new partition, new OS then you should 
first remove old options: "Remove all Clover boot options"
second add all options again.
Print them into boot.log to see what you have.

When you started an OS by some entry in the Menu then this entry will be saved as "BootCurrent" and next boot will happen with Clover knowing DefaultVolume and DefaultLoader as in last boot.

1. It will remember last boot to Windows or even to legacy boot (not checked but I hope it is).
2. Bios menu will contain these entries.
Attached File  141008204117.png   164.45KB   108 downloads

I tested with QEMU+Ovmf and have the follow debug.log after tuning:

Boot options:
48:487  0:051  BootOrder: 7: Boot0005, Boot0006, Boot0000, Boot0001, Boot0002, Boot0003, Boot0004
49:388  0:901   0) Boot0005: Clover start boot.efi at Macintosh, Attr: 0x1
49:442  0:053      HD(1,GPT,065C30D9-992D-4C4C-8965-A266108C7D0F,0x800,0x60000)\EFI\CLOVER\CLOVERX64.EFI
49:495  0:053      Size: 222 (Attr:4 + FPl:2 + Desc:70 + FP:102 + Opt:44 = 222 -> OK)
49:550  0:054   1) Boot0006: Clover start (null) at EFI, Attr: 0x1
49:604  0:054      HD(1,GPT,065C30D9-992D-4C4C-8965-A266108C7D0F,0x800,0x60000)\EFI\CLOVER\CLOVERX64.EFI
49:697  0:093      Size: 176 (Attr:4 + FPl:2 + Desc:54 + FP:102 + Opt:14 = 176 -> OK)
49:751  0:053   2) Boot0000: EFI Floppy, Attr: 0x1
49:805  0:053      PciRoot(0x0)\Pci(0x1,0x0)\Floppy(0x0)
49:860  0:054      Size: 62 (Attr:4 + FPl:2 + Desc:22 + FP:34 + Opt:0 = 62 -> OK)
49:914  0:054   3) Boot0001: EFI Floppy 1, Attr: 0x1
49:967  0:053      PciRoot(0x0)\Pci(0x1,0x0)\Floppy(0x1)
50:021  0:053      Size: 66 (Attr:4 + FPl:2 + Desc:26 + FP:34 + Opt:0 = 66 -> OK)
50:114  0:093   4) Boot0002: EFI Hard Drive, Attr: 0x1
50:168  0:053      PciRoot(0x0)\Pci(0x1,0x1)\Ata(0x0)
50:225  0:056      Size: 66 (Attr:4 + FPl:2 + Desc:30 + FP:30 + Opt:0 = 66 -> OK)
50:279  0:054   5) Boot0003: EFI Network, Attr: 0x1
50:334  0:054      PciRoot(0x0)\Pci(0x3,0x0)\MAC(525400123456,0x1)
50:387  0:053      Size: 89 (Attr:4 + FPl:2 + Desc:24 + FP:59 + Opt:0 = 89 -> OK)
50:441  0:054   6) Boot0004: EFI Internal Shell, Attr: 0x1
50:536  0:094      MemoryMapped(0xB,0x900000,0x10FFFFF)\FvFile(C57AD6B7-0515-40A8-9D21-551652854E37)
50:590  0:054      Size: 92 (Attr:4 + FPl:2 + Desc:38 + FP:48 + Opt:0 = 92 -> OK)
50:643  0:053  -------------
0:109  0:000  Clover revision: 2947  running on Standard PC (i440FX + PIIX, 1996)
0:109  0:000  ... with board 
0:109  0:000  Clover load options size = 44 bytes
0:109  0:000  Clover started with option to boot boot.efi from Macintosh



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

How to install Windows in EFI mode on legacy BIOS based PC

using legacy Clover


It is a way to go away from legacy systems even if you have old BIOS based computer.


First, you should realize that there are requirement for partition table:

1. OSX requires GPT. It can be installed into MBR with special patch.

2. Legacy Windows requires MBR and can't be installed into GPT.

3. UEFI Windows requires GPT and can't be installed into MBR. Moreover, check with fdisk, it must be as follow:

fdisk: 1> p
Disk: /dev/rdisk0	geometry: 19457/255/63 [312579695 sectors]
Offset: 0	Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
 1: EE    0   0   2 - 1023 254  63 [         1 -         34] <Unknown ID>
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
fdisk: 1> 

I mean there must be no Hybrid MBR! Attention! Only one partition and it is with EE sign. Check and zero all other entries if found.



Minimum Windows version is Windows 7-64bit. So your computer must have 64-bit CPU.


Installation order.

1. Install Mac OSX first. In the installer format your drive to GPT and reserve a space for Windows at least 60Gb.

2. Install Clover into EFI partition created during the formatting. It must be boot6 (Clover SATA)

3. Insert DVD with Windows-7-64bit. It must be ISO9660+Joilet format. Not UDF because Clover is not ready for this.  GrubUDF.efi works!

4. Start the windows EFI-install from this DVD by Clover

Attached File  screenshot4.jpg   135.4KB   100 downloads

5. This installation kill the Clover so you have to restart during installation to Clover on USB stick and choose boot Windows from HDD to continue installation. No! Clover is still in place and we can continue!

6. After complete Windows installation you have to start from the USB stick into OSX and then reinstall Clover.


Final result.

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *160.0 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:       Microsoft Basic Data Windows                 46.0 GB    disk0s2
   3:                  Apple_HFS MacHD                   113.7 GB   disk0s3
   4:         Microsoft Reserved                         133.2 MB   disk0s4

Attached File  Screen Shot 2014-11-05 at 14.41.19.png   111.13KB   70 downloads


Attached File  main.png   1.21MB   59 downloads



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

How to speedup Clover boot


There is usual claim from novices that Clover is too slow (or hang). Let us consider this question carefully.

If you try Clover first time then it is logically that you install it onto USB stick and set debug-log to be created. This is the reason of slowness #1.


This is wrong key name, I will change the key to "Debug" (since rev3064) that will reflect its appointment. Boot.log will be created even with "False", it just be in memory and accessible in system if booted.

When "true" the "debug.log" will be Open-Write-Close on every line guarantying you will found the file even after hard-reset.

The file will be saved in /clover-partition/EFI/CLOVER/misc/ folder is the partition is FAT32 to help you understand what is the reason of hang is any. The process ve-e-ery slo-o-ow. With my USB stick I have to wait about 10 minutes to enter GUI.

Set "false" here!

I also will kindly recommend to install Clover on HDD that times faster then USB. Why not? You want to keep Chameleon here? Yes, it is possible. Clover and Chameleon can live on the same partition with the same boot sectors. Boot sectors from Clover distribution are able to boot Chameleon as they are comes from them. But not vice versa. Chameleon's boot1h is not able to boot Clover because of its restriction.

OK. The partition will looked like this

total 22487
drwxrwxrwx  1 slice  staff     2560 18 дек 17:17 .
drwxrwxrwt@ 8 root   admin      272 19 дек 10:54 ..
drwxrwxrwx  1 slice  staff     1024 29 окт 11:17 EFI
drwxrwxrwx  1 slice  staff     2048  4 апр  2014 Extra
-rwxrwxrwx  1 slice  staff   482816  3 дек 15:54 boot
-rwxrwxrwx  1 slice  staff   268256  6 авг  2011 boot2
-rwxrwxrwx  1 slice  staff   367589  4 апр  2014 boot3
-rwxrwxrwx  1 slice  staff   383562 14 июл  2009 boot4
-rwxrwxrwx  1 slice  staff   450048 17 дек 17:37 boot5
-rwxrwxrwx  1 slice  staff   482816 28 окт 13:34 boot6


EFI/ - a folder for Clover's files

Extra/ - a folder for Chameleon files

boot is current bootloader. For my case it is Clover BiosBlockIO, renamed from boot7.

boot2 is Chameleon

boot3 is Clover-32bits

boot5 is Clover with low-ebda (rev3061+)

At the computer start when I see "Booting from hard drive..." I can press a digit 2,3,5 to choose a bootloader.

I just want to say you can install Clover on HDD even if there is Chameleon presents here.


Reason #2.

Less feature - faster boot, more features - slower boot. What do you want, powerful bootloader or fast bootloader?

The compromise should be found when you study all Clover's features.

For the first time I may propose minimal setting to boot into system.

Do you want to see all possible systems and entries in main menu? And you have four drives with tens partitions each.

Scanning all partitions will take a time. I even saw 80 seconds in real life.


Use custom entry to set only that entry that you want to see


See more instructions elsewhere.


If you have Windows with a couple of files then scanning it will be very slow. DIsable NTFS.efi driver to prevent it!


Reason #3.

Too many drivers in /EFI/CLOVER/drivers64*/ folder. Some third party driver may hang or slow respond. Test it separately when needed.


Reason #4.

Big theme chosen. More graphics, more animations - slow boot. But very nice looking!

For first start you may choose Theme=embedded. This is fastest theme.


Reason #5.

Mouse slow response. Clover GUI can be controlled by a mouse. But the driver can understand only part of market. Good mice: Logitech, KYE systems, Microsoft. Bad mice: noname.

Disable mouse in config.plist


Reason #6. Slow HFS+ driver.

Official release of Clover contains VBoxHFS.efi driver. It is very good, it understand links sft and hard, it understand aliases, but slow.

Apple's driver HFSplus.efi is much faster but we have no license to distribute it. Take it somewhere (here #3 ) and place it into /EFI/CLOVER/drivers64*/ folder. And it will works instead embedded driver. (since rev 3043).


Since Clover revision 3063 you may see boot process on the screen to understand why it is soo slow.

Attached File  boot-process.png   12.75KB   180 downloads



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

InfoPlist Patching


There is interesting Clover ability to perform an Info.plist patching on the fly.

Since rev.3154 I should set more strict rules to have a success.

Write into config.plist the follow as example

				<string>Power state 1 - 0</string>

It corresponds to replace in kext AppleIntelHDGraphicsFB.kext, in its Info.plist the lines


by lines


but original pattern contains symbols "<", ">", "/", LF, TAB, SPACES that impossible to correctly write into config.plist.


1. You have to erase all invisible characters from pattern search.

2. Convert <string> to <data>.

The result looks like

Attached File  Screen Shot 2015-02-02 at 17.19.48.png   37.12KB   157 downloads

This is only way to do search and replace will be success.


Next problem.

If you want to replace DeviceID into IOPCIMatch the you can use this InfoPlistPatch

For example inject unsupported ATI Radeon ID into AMDRadeonX3000.kext. But the kext is not present in kernelcache and the patch will not occur.

In this case you have to boot without caches and Clover will Force load this kext for patching.


The patching method is updated in rev 3256. Now it should work fine.



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

Arbitrary device injection.


Since rev 3262 I propose new method for device properties injection. It excluded old method and is not compatible with it.

For backward compatibility old method will also work if new method is not used. Vice versa.


First you should look your boot.log or preboot.log (obtained by press F2 in Clover GUI). There is a list of your PCI devices.

4:432  0:000  PCI (00|00:00.00) : 8086 2E30 class=060000
4:432  0:000  PCI (00|00:02.00) : 8086 2E32 class=030000
4:432  0:000  Found GFX model=Unknown
4:432  0:000  PCI (00|00:02.01) : 8086 2E33 class=038000
4:432  0:000  PCI (00|00:1B.00) : 8086 27D8 class=040300
4:432  0:000  PCI (00|00:1C.00) : 8086 27D0 class=060400
4:432  0:000  PCI (00|01:00.00) : 10DE 01D1 class=030000
4:432  0:000  Found NVidia model=Gigabyte GeForce 7300 LE
4:432  0:000  PCI (00|00:1D.00) : 8086 27C8 class=0C0300
4:432  0:000  PCI (00|00:1D.01) : 8086 27C9 class=0C0300
4:432  0:000  PCI (00|00:1D.02) : 8086 27CA class=0C0300
4:432  0:000  PCI (00|00:1D.03) : 8086 27CB class=0C0300
4:432  0:000  PCI (00|00:1D.07) : 8086 27CC class=0C0320
4:432  0:000  PCI (00|00:1E.00) : 8086 244E class=060401
4:432  0:000  PCI (00|02:05.00) : 10EC 8167 class=020000
4:432  0:000  PCI (00|00:1F.00) : 8086 27B8 class=060100
4:432  0:000  PCI (00|00:1F.02) : 8086 27C0 class=01018F
4:432  0:000  PCI (00|00:1F.03) : 8086 27DA class=0C0500

Look, for example, line

4:432 0:000 PCI (00|02:05.00) : 10EC 8167 class=020000

This is LAN device

VendorID= 10EC - this is Realtek

DeviceID= 8167 - This is Realtek 8167/8169/8110 Gigabyte Ethernet Controller

It is located on the PCI bus (green digits)

Bus = 02

Device = 05 

Function = 00

This location will be unique for every device in your computer. You may have two equal graphics cards with the same IDs and same model. But their locations will be different.


We have to write into config.plist in section "Devices", array "Arbitrary" of items one per device you want to inject properties.

				<string>Realtek LAN 8167</string>
						<string>Realtek 8169 Gigabit Ethernet Controller</string>
				<string>Nvidia Geforce card in PCIe slot</string>
						<string>Gigabyte GeForce 7300 LE</string>

This example for Nvidia injection is far from full working. You should look elsewhere how to do it for your case.


Key must be <string>

Value can be <string>, <integer> or <data>.


This way for card injection suppose more work then usual Inject->Nvidia=true so it will be for advanced users.

But this way advanced used can inject two similar card and set AAPL,boot-device only for one of them.

They also can inject properties for non-standard devices.

Advanced used also may not agree with Clover's injection and use his own better properties. Here you go!


Using this way you may use FakeID old way but it will affect only DSDT patch. 

Inject->... will not work for all devices if one Arbitrary device implemented.

AddProperies also will not work.

New way is the presence of "Arbitrary" section will cancel all device injection old way.

If "Arbitrary" section is missing then old way will work as usual.



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

Non-Standard Legacy Boot Files

I notice one problem: slow legacy boot. Analyzing boot.log I found a reason

7:689  0:025   6: 'Legacy HD4' no file system
7:689  0:000   7: 'Data'
22:601  14:912   8: ''
22:657  0:055   9: 'EFI'

15 seconds to look into partition "Data"! Why? 
This partition on my computer formatted into exFAT file system and new Clover supported it.
But in this case I don't need such support. So I just recompiled Clover with a flag -D NO_GRUB_DRIVERS and win this 15 seconds!
So there are flags to manually compile own version of Clover with explanation for a what.
Example ./ebuild.sh -mc -D NO_GRUB_DRIVERS -D ONLY_SATA0
-mc same as -D USE_BIOS_BLOCKIO
Use LegacyBios based HD drivers (Int 13h) instead of Uefi SATA driver. In most case it works better but it is not working with DVD because of sector size.
As well it is not working on my Dell Inspiron, don't know why.

Don't compile GRUB drivers. Useful for windows compiler that can't compile such sources.


Don't include driver for exFAT file system which included by default.
Including this driver needed for starting Clover from such drive, like USB stick.
But I see this driver may slow down the booting and mostly not needed.
If you have several HDDs but you are sure to boot only from first one then you may speedup booting by not checking other drives.
Some SATA controllers reported unsupported UDMA nodes.
This flags allows you to boot slowly but stable.
If you are using config.plist settings PatchVBios=true then you may notice it occured only after CloverGUI is loaded. Because config.plist became available only at this stage.

If you compile clover with this flag then you can get the affect much early, at the time of boot file loaded.

For those who are brave to test.



Usually boot6 compiled with USB support while boot7 without it because HDD, keyboard and mouse will be controlled by legacy BIOS INTs.

But I found for QEMU it is better to compile boot7 with USB support. Mouse will work!



It means saving PS2 mouse state during legacy boot from Clover to legacy Windows XP.



If you want to debug clover using null-modem cable connected to other computer accepting RS232 protocol this is a way for you.

As well it works in QEMU outputting results into Terminal.



Stop LTO optimization. The boot file will be 483k instead of 450k and probable will work for you if standard (LTO) version is not.



It produces Clover that should work with secure boot.

Apianti was a developer of it and his last words were "should work now".




Attached specific ION.efi driver for ION chipset. This driver if private and is not freely distributed.



Don't disable USB as whole but disable USB stick.



For those who have Nforce chipset



It will include USB3 drivers into legacy Clover.



This flag will probably add support for real NVRAM (hardware NVRAM) with legacy Clover if it works.

For developers and brave testers.



Standard Clover package contains boot6 without any of these flags and

boot7 as compiled as

./ebuild.sh -mc -D DISABLE_USB_SUPPORT



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

Reboot to Windows UEFI from Mac


If you successfully installed two system using my instructions at post #46 then this is for you.

Attached File  Screen Shot 2016-07-13 at 11.57.49.png   66.04KB   46 downloads

Click on restart and really restarted into Windows!

But some prerequisites.


1. Make Windows partition to be writable. I wrote a line into file /etc/fstab

LABEL=Windows none ntfs rw,auto,nobrowse

2. Place mach_kernel and empty folder /System/Library/CoreServices/ to the drive.


I am not sure if something else needed. The instruction will be corrected after a more experience.


In boot.log I see the follow related

4:094  0:066  Loading nvram.plist from Vol 'MacHD' - loaded, size=2053
4:104  0:009  PutNvramPlistToRtVars ...
4:104  0:000   Adding Key: BootCampHD: Size = 30, Data: 02 01 0C 00 D0 41 08 0A 00 00 00 00 01 01 06 00 02 1F 03 01 08 00 01 00 00 00 7F FF 04 00

4:104  0:000   Adding Key: efi-boot-device: String: Size = 489, Val = '<array><dict><key>MemoryType</key><integer size="64">0xb</integer><key>StartingAddress</key><integer size="64">0xffe00000</integer><key>IOEFIDevicePathType</key><string>HardwareMemoryMapped</string><key>EndingAddress</key><integer size="64">0xffefffff</integer></dict><dict><key>IOEFIDevicePathType</key><string>MediaFirmwareVolumeFilePath</string><key>Guid</key><string>2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7</string></dict><dict><key>IOEFIBootOption</key><string>HD</string></dict></array>'
4:104  0:000   Adding Key: efi-boot-device-data: Size = 48, Data: 01 03 18 00 0B 00 00 00 00 00 E0 FF 00 00 00 00 FF FF EF FF 00 00 00 00 04 06 14 00 EB 85 05 2B B8 D8 A9 49 8B 8C E2 1B 01 AE F2 B7 7F FF 04 00

4:309  0:004  GetEfiBootDeviceFromNvram:got efi-boot-device-data size=48
4:309  0:000 
4:309  0:000   efi-boot-device-data: MemoryMapped(0xB,0xFFE00000,0xFFEFFFFF)\FvFile(2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7)
4:309  0:000   BootCampHD: PcieRoot(0x0)\Pci(0x1F,0x2)\Ata(0x0)
4:309  0:000   Volume: 'PcieRoot(0x0)\Pci(0x1F,0x2)\Ata(0x0)'
4:309  0:000   LoaderPath: '<null string>'
4:309  0:000   volume: disk = PcieRoot(0x0)\Pci(0x1F,0x2)\Ata(0x0)
4:309  0:000   searching for that disk
4:309  0:000    found disk as volume 1. 'Whole Disc Boot'
4:309  0:000   searching for first entry with win loader or win partition on that disk
4:309  0:000    found loader entry 0. 'Boot Microsoft EFI boot from EFI', Volume 'EFI', '\EFI\microsoft\Boot\bootmgfw.efi'
4:309  0:000  Boot redirected to Entry 0. 'Boot Microsoft EFI boot from EFI'

We may notice next conditions:

  Usage of nvram.plist. So Clover scripts must be enabled. This is legacy Clover and I don't know if the same is possible with hardware NVRAM.


We see Clover successfully recognized boot entry left by Mac OS 10.7.5 to boot from bootmgfw.efi!



    InsanelyMac V.I.P.

  • Local Moderators
  • 6,754 posts
  • Gender:Male
  • Location:Moscow

Deprecated features


Since Clover v2.4k some technologies will be deprecated, no more supported and will be excluded in future releases.

1. Clover 32bit.   Good bye Clover-32 

2. LegacyBoot. (PBR, PBRTest, PBRSata etc). This is a technology to boot Windows XP from CloverGUI.

It's a pity it rarely works. For my observation the success was only on PATA controllers at ICH7 chipset.

I will recommend to update your Windows  to UEFI one. At least Windows 7-64bit which successfully works on Core2Duo computers 10years old.

I don't think I should bother about more ancient one.

As well the good solution in using Chameleon which boots Windows XP very well.

- install boot1f32alt bootsector which wait 2sec for key press.

- install boot as Clover and boot1 as Chameleon.

- press "1" during boot to switch to Chameleon and boot WindowsXP from him.

3. Installation on Fdisk Partitioning Scheme HDD (also known as MBR table).

I will recommend always format your drive to Guid Partitioning Sheme (also known as GPT). You can install here Windows in UEFI mode even if your computer is PC BIOS based using legacy CloverEFI. (see comp#4 in my signature).

Instructions Post#46 How to install Windows UEFI

4. ATIConnectors patch.

It's a pity this patch can't be OS dependent.

See, for example, connectors for 10.11

Personality: Pithecia
ConnectorInfo count in decimal: 3
Disk offset in decimal 176512
00040000040300000001000021030204 - Dp
04000000140200000001000000000403 - DVI
10000000100000000001000000000001 - VGA

and for 10.12

Pithecia (2) @ 0x1b54e0

So, you should migrate your existing patch from the old form


To new form KextPatches

Attached File  Screen Shot 2017-02-27 at 10.59.44.png   131.36KB   28 downloads

This way you can create several patches for different OSes.

10.6-10.7  ATI6000Controller

10.8-10.12 AMD6000Controller

And different find/replace strings for 10.12


5. OldWay DSDT patches.

Since rev4006 the parameter NewWay is excluded.  #52 

It is always NewWay now.

2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users

© 2017 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy