Jump to content

Clover v.2 Instructions

Bootloader EFI Clover

  • Please log in to reply
46 replies to this topic

#41
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,199 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   328 downloads

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



#42
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,199 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   55 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
Password:
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



#43
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,199 posts
  • Gender:Male
  • Location:Moscow

AAPL,slot-name

 

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   49 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   46 downloads

Here 

- 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   42 downloads

 



#44
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,199 posts
  • Gender:Male
  • Location:Moscow

Fake CPUID

 

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

	<key>KernelAndKextPatches</key>
	<dict>
		<key>FakeCPUID</key>
		<string>0x010676</string>

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   38 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   41 downloads



#45
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,199 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.

Usage:
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   27 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.

Advantages
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   30 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


#46
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,199 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.

 

Second.

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 20Gb.

2. Install Clover into EFI partition created during the formatting.

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

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

Attached File  screenshot4.jpg   135.4KB   19 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.

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

 

Final result.

/dev/disk0
   #:                       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   15 downloads

 

Attached File  main.png   1.21MB   15 downloads



#47
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 3,199 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.

	<key>Boot</key>
	<dict>
		<key>Log</key>
		<false/>

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

Where

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.

	<key>GUI</key>
	<dict>
		<key>Scan</key>
		<dict>
			<key>Entries</key>
			<false/>
			<key>Legacy</key>
			<false/>
			<key>Tool</key>
			<false/>
		</dict>

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

	<key>GUI</key>
	<dict>
		<key>Custom</key>
		<dict>
			<key>Entries</key>
			<array>
				<dict>

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

		<key>Mouse</key>
		<dict>
			<key>Enabled</key>
			<false/>
			<key>Speed</key>
			<integer>0</integer>
		</dict>

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   5 downloads







Also tagged with one or more of these keywords: Bootloader, EFI, Clover


3 user(s) are reading this topic

0 members, 2 guests, 1 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy