Jump to content

Clover v.2 Instructions

Bootloader EFI Clover

  • Please log in to reply
43 replies to this topic

#21
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Custom SMBios


SMBIOS part of config.plist may be as follow

	<key>SMBIOS</key>
	<dict>
		<key>ProductName</key>
		<string>MacBook1,1</string>
		<key>SerialNumber</key>
		<string>4H629LYAU9C</string>
	</dict>

Moreover, these keys may be absent too.
Clover automatically detect the hardware and chooses the best values for SMBIOS by internal tables. It is enough.
It is quite enough for all hardware configurations. You may apply your own settings in the case if you want to test how the OS will live with other settings or may be you want to set your unique serial number. OK, do this!
But do not strive to fill all fields of the section if you don't understand what is what!

How port from Chameleon Smbios.plist to Clover config.plist

To be filled ....
Example n.1

Spoiler

Edited by Slice, 14 May 2014 - 08:02 AM.
Update


#22
ErmaC

ErmaC

    127.0.0.1

  • Supervisors
  • 4,636 posts
  • Gender:Male
  • Location:Canary Islands

Clover F.A.Q.


To be filled during discussion and testing. So... begin?
  • - Question.
    - Answer.
  • - Question.
    - Answer
  • - Question.
    - Answer

Guys ... keep in mind that Slice (and all help him) make an extraordinary effort in an attempt to documenting the project.

Who asks for a Clover F.A.Q. section.
This post is currently a work in progress :moil:.... so

I invite anyone to write simple questions and answers that we can include in the Clover F.A.Q. post.

Edited by ErmaC, 27 November 2012 - 07:18 PM.
Update


#23
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

iCloudFix


© dmazar
Thanks to pene and slice for research and pointing into right direction, we have some kind of a workaround for iCloud sign-in problem.

And then ... it gets a little bit complicated. By blocking parts of those runtime services, we are also blocking Clover's injection of platform UUID through runtime services. Fortunately, we can still inject it like Chameleon and XPC, through device tree. But this requires changes in config.plist:
Instead of just specifying CustomUUID:
<key>SystemParameters</key>
<dict>
<key>CustomUUID</key>
<string>739EBE45-0D8C-5BFC-9AD1-6C5EF6E973A4</string>
...
</dict>

I need to specify:

<key>SystemParameters</key>
<dict>
<key>InjectSystemID</key>
<string>Yes</string>
<key>CustomUUID</key>
<string>5AA3001E-8C00-0042-41B2-F42804929E8A</string>
...
</dict>

Where:
739EBE45-0D8C-5BFC-9AD1-6C5EF6E973A4 - is my Hardware UUID displayed in System Information/Hardware Overview screen
5AA3001E-8C00-0042-41B2-F42804929E8A - is system-id that Chameleon injects to get above Hardware UUID

This Chameleon's system-id can be found by booting with Chameleon and then checking IOReg IODeviceTree:/efi/platform or just from Terminal:
> ioreg -l -p IODeviceTree | grep \"system-id

Hope it's not too complicated.

Also be sure your Ethernet card is set to built-in.

Edited by Slice, 24 February 2013 - 10:12 AM.
Update


#24
ErmaC

ErmaC

    127.0.0.1

  • Supervisors
  • 4,636 posts
  • Gender:Male
  • Location:Canary Islands

...


reserved

Edited by ErmaC, 28 November 2012 - 10:50 PM.
Update


#25
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Using MOUSE


Since revision 750 there is mouse interface in Clover GUI.
In case of legacy boot (by boot0->boot1->boot) you may put a driver into the folder /EFI/CLOVER/drivers32 or /EFI/CLOVERdrivers64
PS2MouseDxe.efi
USBMouseDxe.efi
or even both of them.
No conflict expected. Moreover, you can move pointer by two mouse simultaneously.

Usually it is not needed. The driver included by default.
In case of UEFI boot you usually don't need in additional driver. It is already present in UEFI BIOS.

You must add into config.plist new values (new section)

	<key>GUI</key>
	<dict>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<true/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>

This values are typical and are good for most hardware. You may tune for your convenience for your values.

Your theme folder must contain an image for the pointer icons/pointer.png
Installer already contains images for all themes included.

How to use? I think there will be no problem: move, click, double-click, right-click in all menus and out of items.


Edited by Slice, 14 May 2014 - 08:07 AM.
Update


#26
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

How to make orange icons to be metallic

 
If you see orange drive instead of metallic, external instead of internal, and DVD player doesn't work you may:
- use other icns file, but this doesn't solve DVD problem;
- substitute DeviceID from ICH6, but this reduce SATA functionality;
- use DeviceMergeNub, but it is additional kext;
- use patched AppleAHCIPort.kext, but until SoftwareUpdate.
It is better to write into Clover's config.plist
	<key>KernelAndKextPatches</key>
	<dict>
		<key>KextsToPatch</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Orange_icons_fix</string>
				<key>Name</key>
				<string>AppleAHCIPort</string>
				<key>Find</key>
				<data>RXh0ZXJuYWw=</data>
				<key>Replace</key>
				<data>SW50ZXJuYWw=</data>
			</dict>
			</dict>
		</array>
	</dict>

It works! Drives are metallic, DVD player works.

Edited by Slice, 14 May 2014 - 08:12 AM.
Update


#27
magnifico

magnifico

    InsanelyMac Deity

  • Donators
  • 2,418 posts
  • Gender:Male

How to create a software raid 0 mode UEFI-bootable



1) get two identical disk ( better if you have SSD)

2) My advice is to have a pen drive from 8 gigabytes, where install clover. Formatted in fat 32 damzar Uefi Boot Clover

3) Have a OSX running, to clone the raid in later stage ( Carbon Cloner )

4) Create a raid Software ,with option 128 k ( is very performance )

5) Clone with Carbon Cloner

6) Start with thumb drive, to see if your OSX works

7) If work ( OSX) We must make it without the need of bootable pen drive

8) Run terminal and write diskutil list

9) Now you have to make visible the hidden EFI partition with this Terminal command :
mkdir /Volumes/efi
sudo mount -t msdos /dev/diskXs1 /Volumes/efi ( diskXs1 is your identifier , so write instead of your )

10) Now in your desktop t here will be a disk called EFI , and in this copy your efi folder from your pen drive ... previously performed with clover

Note this procedure with terminal have to do with the other efi disk hidden .

Work in progress short also will screen

How create raid
Open diskutility
Posted Image

When it ends, you will create this

Posted Image

Use Carbon Cloner

Posted Image

When all finished to this
Posted Image

Ok , now restart pc and boot again with pen drive
In gui clover there is a option :
Select with keyboard
Posted Image

And Add this
Posted Image

Now restart pc and enter in your bios , and select First boot Clover osx

Good luck

And this score on two samsung 840 pro

Posted Image

It is fantastic SSD

Posted Image


Edited by ErmaC, 28 November 2012 - 10:49 PM.
Update


#28
shiecldk

shiecldk

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 233 posts
  • Gender:Male
  • Location:Taiwan

How to modify InstallESD.dmg


You'll needinvisibliX:
http://www.macupdate...5872/invisiblix

1.Mount InstallESD.dmg in Install OS X Mountain Lion.app/Contents/SharedSupport

2.Restore InstallESD.dmg to the target partition that you want to use for installing OS X with Disk Utility.
(Drag the disk icon.)

Posted Image

3.Open invisibliX and press the magnifier to show hidden files.

4.Mount BaseSystem.dmg in Mac OS X Install ESD.

5.Convert BaseSystem.dmg to read/write dmg in Disk Utility.

Posted Image

Posted Image

6.Unmount the original compressed BaseSystem.dmg and mount the read/write BaseSystem.dmg.

7.Remove kexts which can cause boot problem. (e.g., AppleTyMCEDriver.kext, ATI6000Controler.kext, etc.)
Use terminal to remove kext in System/Library/Extensions in Mac OS X Base System with this code to prevent permission problem while deleting kext:

sudo rm -rf "drop all kexts you want to remove to here"

8.Convert the read/write BaseSystem.dmg back to compressed dmg.

Posted Image

9.Use terminal to replace BaseSystem.dmg in the USB install partition:
sudo cp "drop the modified compressed BaseSystem.dmg to here" "drop the USB install partition to here"
Before pressing Enter, drop the modified compressed BaseSystem.dmg to invisibliX and check Hidden. Now, you can press Enter in terminal.

Finish!


-Advance-

If you want to hide the install partition under OS X, you should convert the partition to Apple_boot just like Mac's Recovery HD:

In terminal:
1.Find your install partition which is diskXsY:
diskutil list

2.Get root permission and enter your password:
sudo -s

3.Unmount the partition before you convert it: (diskXsY is the install partition)
diskutil umount diskXsY

4.Convert the partition to Apple_boot. (diskXsY is the install partition)
asr adjust --target /dev/diskXsY -settype "Apple_Boot"


When you want to mount the install partition, use this code in terminal: (diskXsY is the install partition)
diskutil mount diskXsY
To unmount it:
diskutil umount diskXsY


Edited by shiecldk, 01 February 2013 - 06:55 AM.
Update


#29
beta992

beta992

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 338 posts
  • Gender:Male

Config.plist settings

 

Sometimes it is hard to find what values should be set in config.plist. Especial because most documentation is in Russian language. (Good their are online translators :P)
I have created this post about values that can be set in your config.plist, with help from Clover developers.
Remember that you only need listed settings in your config.plist, if you want to change their default values.

Useful Links:
config.plist example.
All strings in config.plist.

SystemParameters
prev-lang:kbd - (Language:keyboard-code, default: ru:0): Sets the Clover GUI language and keyboard type.
Languages available:
en - english
ru - russian
it - italian
es - spanish
pt - portuguese
pl - polish
ge - german
id - indonesian
ko - korean
fr - french
ua - ukrainian
boot-args - -v (verbose mode) -x (safe mode) npci=0x2000 (PCI Configuration Fix) darkwake=0 (for setting the "Deep sleep" mode in Lion/ML) slide=0 (Only needed for ML): Sets boot-flags to be used for booting OS X. Not all flags may be needed: e.g. safe mode
LegacyBoot - (set to: PBR): But could also be LegacyBiosDefault or PBRtest. It's just the method of legacy booting, it probably won't make a difference. For some users using another method could fix legacy booting. (info by apianti)
BacklightLevel - (default: 0xFFFF): Changes the luminosity of the back light of a laptop display. 0x0 is none, 0xFFFF is full back lighting. (info by apianti)
CustomUUID - You have to boot OS X with Chameleon to set this value. After booting with Chameleon, open System Report, copy the Hardware UUID and paste it here. But see InjectSystemID first!
InjectSystemID - (Yes/No, default: No): See this postby dmazar.
iCloudFix - (Yes/No, default: Yes): May be enabled to get iCloud to work. Dropped

Pointer
Enable - (Yes/No, default: Yes): Enables or disables the mouse-pointer in the Clover-GUI.
Speed - (default: 8): If enabled, sets the mouse-pointer movement speed.
DoubleClickTime - (default: 500): Set the double-click reaction time.
Mirror - (Yes/No, default: No): Rotate the mouse-pointer direction. (?)

Graphics
GraphicsInjector - (Yes/No): Needed for unsupported GPU's to get full resolution/QE. If set to Yes, e.g. nVidia GeForce 450 GTS becomes EVGA nVidia GeForce 450 GTS (if supported).
VRAM - (auto) Set the given GPU RAM value (MB-format), e.g. 1024.
LoadVBios - (Yes/No, default: No): Also available in Chameleon. You will have the ability to load a custom VBIOS for the GPU.
VideoPorts - (auto): Number of video outputs to map.
FBName - (auto): Has something to do with ATI Radeon cards.
NVCAP - (auto): Option for nVidia-cards. Don't know what it does exactly (something to do wich (output)-port to be used).
display-cfg - (auto): See this topic for information about this key.
DualLink - (auto?):
InjectEDID - (Yes/No, default: Yes): See Wikipedia about EDID. Try to use Yes, if you get a blank screen while booting.
CustomEDID - (auto): Set a CustomEDID if non-DDC monitor. See this post for more information about this key.
PatchVBios - (Yes/No, default: No): Set to Yes, to auto patch Clover-GUI video resolution. Using PatchVBiosBytes is the recommend method.
PatchVBiosBytes - (custom): See this post for using this with nVidia GPU.

More information how to get your GPU to work (Radeon, etc.), see this post.

PCI
PCIRootUID - (Number, default: 0): If OS X can't find the GPU PCI-UID location. A patched DSDT is recommend to fix this problem. If a custom DSDT.aml cannot be used set the correct PCI-UID here. (More Info)
StringInjector - (Yes/No, default: No): Inject EFI-strings for GPU, ethernet, audio, etc. See key DeviceProperties.
DeviceProperties - (auto): If StringInjector it set to Yes, paste the generated EFI-string here.
LpcTune - (Yes/No, default: No): I believe that LpcTune actually doesn't have a purpose now as it was abandoned by Slice cause it didn't work correctly or something, Idk there's a conversation about it we had earlier. InjectClockId is needed to recover USB devices from sleep. (info by apianti)
HDAInjection - (Yes/No/Hex.., default: Detect): See this post for more info. Set to No, if using a patched DSDT.aml and AppleHDA.kext.
USBInjection - (Yes/No, default: Yes): Needed to get resume by keyboard to work. But if it is not working for you, set to No.
InjectClockID - (Yes/No, default: No): InjectClockId is needed to recover USB devices from sleep. (info by apianti)
USBFixOwnership - (Yes/No, default: Yes): Fixes USB-ownership problems in UEFI-mode.

ACPI
See information from here, here and here to set the correct ACPI-settings.
DsdtName - Filename to be used for a generated DSDT-file or set to BIOS.aml if Clover needs to generate one for you. (See FixDsdtMask)
DropOemSSDT - (Yes/No, default: No): DropOemSSDT should only be used if you are injecting a patched SSDT or if you enabled GenerateCStates/GeneratePStates.
I recommend to generate a last SSDT-7/SSDT-8.aml file with freq/power-values that matches the system's CPU. Place it in the /ACPI/Patched folder to solve the hanging CPU-freq issue. A way to generate this file, is by using Revogirl's ssdtPRGen.sh. To terminate the last SSDT-number, dump to origin tables in Clover with the F4-key.
DropDMAR - (Yes/No, default: No): Needs to be enabled to fix the AppleACPIPlatform.kext boot problem in 10.8.2.
DropBGRT - See post from =)(=
GenerateCStates - (Yes/No, default: No): Set to Yes, if booting gives you weird ACPI_SMC_PlatformPlugin errors.
GeneratePStates - (Yes/No, default: No): Same note as GenerateCStates.
PLimitDict - (Number, default: 0): Limit the maximum CPU P-state, by number.
UnderVoltStep - (Number, default: 0): Limit the maximum CPU Voltage, by number.
DoubleFirstState - (Yes/No, default: No): ??
ResetAddress - (should be: 0x64): Restart address
ResetValue - (should be: 0xFE): Restart address
EnableC6 - (Yes/No, default: No): Enable/disable CPU C6 reporting. (CPU-power saving)
EnableC4 - (Yes/No, default: No): Enable/disable CPU C4 reporting. (CPU-power saving)
EnableC2 - (Yes/No, default: No): Enable/disable CPU C2 reporting. (CPU-power saving)
C3Latency - (should be: 0x03e9): If CPU supports Turbo, you may set to 0x00FA.
EnableISS - (Yes/No, default: No): This should be Enabled to fix ACPI_SMC_PlatformPlugin console errors.
smartUPS - (Yes/No, default: No): For MacPro - cosmetic.
PatchAPIC - (Yes/No, default: No): ??
FixDsdtMask - (Mask): See this topic. If you want to disable DSDT fixing: 0x0000 FixDsdtMask should be avoided for actual DSDT patches. (info by apianti)
RememberBIOS - (Yes/No, default: No): See this post

SMBIOS
Set a custom iModel. Clover will set the model that matches your system. But you can provide custom data here. (Chameleon Wizard, champlist can be used to get SMBios information)

CPU
Users should dissuade from using any of the CPU keys besides Turbo, as they should be set automatically. I believe it's also set automatically to whether the cpu supports turbo in the first place though. (info by apianti)
Read this post for CPU-values that can be set.

KernelAndKextPatches
Debug - (Yes/No, default: No): Needed to debug Clover at boot.
KernelCpu - (Yes/No, default: No): Enable to patch the kernel for unsupported CPU's. (Atom, Ivy, Pentium 4)
AsusAICPUPM - (Yes/No, default: No): AppleIntelCPUPowerManagement.kext patch. No needed if using a patched BIOS.
AppleRTC - (Yes/No, default: No): Patch that fixes AppleRTC.kext boot problem. Needed for 10.6 and above.
KextsToPatch - (custom): See this post and this post.

Volumes
See this post and this post.

Thanks goes out the developers. Just try to help new users. :)


Edited by fantomas1, 14 March 2014 - 12:40 AM.
New update / Post title added


#30
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Using extra kexts and skipping kernelcache


© dmazar
Rev 1351 - Changes regarding kext injection once again. FSInject is also changed and needs to be updated.

- big change: no kext injection of extra kexts by default any more (extra kexts are kexts from kexts/10.8 or kext/other or kexts/xxx)
- removed NoKexts and added WithKexts
- if you want to boot OSX (or installer or Recovery) with additional kexts from kexts/xxx then you must specify WithKexts option in boot-args (config.plist or type it in Clover GUI) or just choose "Boot Mac OS X with extra kexts" in OSX submenu (press SPACE in main GUI to get it)
- changed FSInject so that is allows some kext patching when boot.efi refuses to load kernelcache for some reason
- fixed RemoveLoadOption() function which was not working
- fixed debugging of kext patching (config.plist: KernelAndKextPatches/Debug=Yes) when refit.conf "quiet" option is used

So, once more about kext injection ...
There are two methods of injection:

1. in-memory injection - can inject kexts into kernelcache (ML, Lion) and also when booting kernel+kexts. it's built into CloverX64.efi. it patches kernel on-the-fly to enable kext injection into kernelcache. that depends on kernel version and boot args, meaning: it can stop working in some future OSX version until somebody fixes it again

2. file system level injection - requires FSInject.efi driver which fools boot.efi into thinking that kexts/xxx/*.kext are inside /S/L/E. works only when booting kernel+kexts. works with any OSX version, but requires blocking caches (kernelcache or mkext). this FSInject driver additionally can force loading of certain kexts by changing their OSBundleRequired=Safe Boot into OSBundleRequired=Root on the fly when those kexts are needed for patching.

You can control this injection process and blocking of caches (kernelcache, mkext) by adding WithKext and/or NoCaches into boot args (config.plist or editing in Clover GUI), or by pressing SPACE in Clover GUI and selecting appropriate subentry booting option.

Works like this:
- if WithKext and NoCaches are not specified (default) - kexts from kexts/xxx/ will not be injected and kernelcache will normally be used
- if WithKexts is specified (or "Boot Mac OS X with extra kexts" subentry is selected) - then kexts from kexts/xxx/ will be injected. either in-memory injection into kernelcache or file system level injection, depending on how boot.efi will load the system
- if NoCaches is specified (or "Boot Mac OS X without caches" is selected) - FSInject driver will be used to block kernelcache (or mkext) and will force boot.efi to load kernel+kexts. kexts from kexts/xxx/ will not be injected.
- if NoCaches and WithKexts are specified - then it's the same as above (NoCache), but kexts from kexts/xxx/ will be injected

Once more, but in a different way:

Put your extra kexts needed for booting OSX into kexts/other for example (/efi/clover/kexts/other).

Case 1: users who have all needed kexts installed into /S/L/E
- do not put WithKext and NoCaches into config.plist boot args, because you normally do not need extra kext injection
- if you need to boot installer or recovery partition, then select it in Clover GUI, press SPACE to get additional options and choose "Boot Mac OS X with extra kexts" to boot them - this will inject extra kexts

Case 2: users who prefer not to install extra kexts into /S/L/E
- add WithKexts into config.plist boot-args and your extra kexts will always be injected
- you can boot installer and recovery with this same option

Edited by ErmaC, 19 May 2013 - 02:17 PM.
Update


#31
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Choosing EFI drivers


Folder drivers64UEFI  may contains files at user's choice:

CsmVideoDxe-64.efi
Driver video for Clover GUI allowing to choose more resolutions. It based on CSM module in UEFI BIOS and required CSM will be enabled.
The driver is dangerous. Clover may not started with it and you may have wake problem in system. Use with precautions.

DataHubDxe-64.efi
This is DataHub protocol support obligatory for MacOSX. Usually it is already present but sometime it may be missed, in this case you should see warning on screen.
The presence of the file is always safe.

EmuVariableUefi-64.efi
This is support for NVRAM variables needed for MacOSX . Mostly UEFI boot uses hardware NVRAM but in some rare cases this driver is needed.
Use it only if you have a problem without it!

OsxAptioFixDrv-64.efi
Memory fix for UEFI such as AMI Aptio

OsxLowMemFixDrv-64.efi
The simplified version of OsxAptioFixDrv. Don't use them together!

PartitionDxe-64.efi
This is support for non-usual partition maps such as: hybrid GPT/MBR or Apple Partition Map.
The presence of the file is always safe.
 
 
NvmExpressDxe-64.efi
Support for SSD connected to NVM Express bus
 
VBoxExt2.efi or VBoxExt4.efi
Support for Linux file system to be able to boot UEFI Linux.
 
XhciDxe.efi
Support for USB3 bus , mostly Intel controllers.



#32
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Configuration files


Since revision 1650+ there are no more refit.conf and settings.conf,
Now the common file config.plist and each theme contains own file theme.plist

Locations:
For CloverEFI we have /EFI/CLOVER/OEM/Z77X-UD5H/config.plist

But for UEFI there is a different place /EFI/CLOVER/OEM/Z77X-UD5H/UEFI/config.plist

If OEM place is not found then there is a common place
/EFI/CLOVER/config.plist

For theme each folder contains the file as in the example
/EFI/CLOVER/themes/black_green/theme.plist

A sample theme.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Author</key>
	<string>Slice</string>
	<key>Year</key>
	<string>2012</string>
	<key>Description</key>
	<string>Main metallic looking theme</string>
	<key>Theme</key>
	<dict>
		<key>Badges</key>
		<dict>
			<key>Show</key>
			<true/>
			<key>Inline</key>
			<false/>
			<key>Swap</key>
			<false/>
		</dict>
		<key>Background</key>
		<dict>
			<key>Path</key>
			<string>MetalDragon.png</string>
			<key>Type</key>
			<string>Scale</string>
			<key>Dark</key>
			<false/>
			<key>Sharp</key>
			<string>0x80</string>
		</dict>
		<key>Banner</key>
		<string>logo-trans.png</string>
		<key>Font</key>
		<dict>
			<key>CharWidth</key>
			<integer>10</integer>
			<key>Path</key>
			<string>BoG_LucidaConsole_10W_NA.png</string>
			<key>Type</key>
			<string>Load</string>
		</dict>
		<key>Selection</key>
		<dict>
			<key>Big</key>
			<string>Select_trans_big.png</string>
			<key>Color</key>
			<string>0xF3F3F380</string>
			<key>Small</key>
			<string>Select_trans_small.png</string>
			<key>OnTop</key>
			<false/>
		</dict>
		<key>Anime</key>
		<array>
			<dict>
				<key>ID</key>
				<integer>1</integer>
				<key>Path</key>
				<string>logo_3D</string>
				<key>Frames</key>
				<integer>15</integer>
				<key>FrameTime</key>
				<integer>200</integer>
			</dict>
		</array>
	</dict>
</dict>
</plist>

 
 

Config.plist contains hundreds parameters described in own sections and contains in /doc section of installed Clover.
New section GUI is intended to replace refit.conf

	<key>GUI</key>
	<dict>
		<key>Custom</key>
		<dict>
			<key>Entries</key>
			<array>
				<dict>
					<key>AddArguments</key>
					<string>-v</string>
					<key>Arguments</key>
					<string>Kernel=mach_kernel</string>
					<key>Disabled</key>
					<true/>
					<key>Hidden</key>
					<false/>
					<key>Hotkey</key>
					<string>M</string>
					<key>InjectKexts</key>
					<false/>
					<key>NoCaches</key>
					<false/>
					<key>Path</key>
					<string>\EFI\BOOT\BOOTX64.efi</string>
					<key>Title</key>
					<string>MyCustomEntry</string>
					<key>Type</key>
					<string>OSXRecovery</string>
					<key>Volume</key>
					<string>D68F1885-571C-4441-8DD5-F14803EFEF54</string>
				</dict>
				<dict>
					<key>Hidden</key>
					<false/>
					<key>InjectKexts</key>
					<false/>
					<key>NoCaches</key>
					<false/>
					<key>SubEntries</key>
					<array>
						<dict>
							<key>AddArguments</key>
							<string>-v</string>
							<key>Title</key>
							<string>Boot OS X 10.8.5 (12F36) Mountain Lion in Verbose Mode</string>
						</dict>
					</array>
					<key>Title</key>
					<string>OS X 10.8.5 (12F36) Mountain Lion</string>
					<key>Type</key>
					<string>OSX</string>
					<key>Volume</key>
					<string>454794AC-760D-46E8-8F77-D6EB23D2FD32</string>
				</dict>
			</array>
			<key>Legacy</key>
			<array>
				<dict>
					<key>Disabled</key>
					<true/>
					<key>Hidden</key>
					<false/>
					<key>Hotkey</key>
					<string>L</string>
					<key>Title</key>
					<string>MyLegacyEntry</string>
					<key>Type</key>
					<string>Windows</string>
					<key>Volume</key>
					<string>89433CD3-21F2-4D3C-95FC-722C48066D3A</string>
				</dict>
			</array>
			<key>Tool</key>
			<array>
				<dict>
					<key>Arguments</key>
					<string>-b</string>
					<key>Disabled</key>
					<false/>
					<key>Hidden</key>
					<false/>
					<key>Hotkey</key>
					<string>S</string>
					<key>Path</key>
					<string>\EFI\CLOVER\TOOLS\Shell64-v1.efi</string>
					<key>Title</key>
					<string>MyCustomShell</string>
					<key>Volume</key>
					<string>D68F1885-571C-4441-8DD5-F14803EFEF54</string>
				</dict>
			</array>
		</dict>
		<key>CustomIcons</key>
		<false/>
		<key>Hide</key>
		<array>
			<string>Windows</string>
			<string>\EFI\BOOT\BOOTX64.EFI</string>
		</array>
		<key>Language</key>
		<string>ru:0</string>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<true/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>2</integer>
		</dict>
		<key>Scan</key>
		<dict>
			<key>Entries</key>
			<true/>
			<key>Legacy</key>
			<false/>
			<key>Tool</key>
			<true/>
		</dict>
		<key>ScreenResolution</key>
		<string>1024x768</string>
		<key>ConsoleMode</key>
		<string>0</string>
		<key>TextOnly</key>
		<false/>
		<key>Theme</key>
		<string>metal</string>
	</dict>

Attached Files



#33
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Automatic config.plist creating


The method is follow:
1. use some simple config.plist. DSDT name set to BIOS.aml and mask to 0xFFFF
2. try to boot and see result. If not success then look for resolving your problem somewhere in the net.
3. change parameters using Options menu.
4. Repeat 2, 3 until success.
5. As you booted into OS then you can launch Terminal and call the utility
./clover-genconfig >config.plist
Compare this new file with your old one and apply changes.
Voila! You have working config.plist.

Binary and sources attached. Also sources sent to sf.net for future update.

The utility depends on Clover revision so always use current version from sf.net. It also installed by the Clover installer.

You must be started with Clover rev.2652+. 

Attached File  clover-genconfig.zip   17.59KB   85 downloads



#34
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Custom DSDT patches


Revision 1915

You can apply a set of arbitrary patches to DSDT.
Find and Replace data may have different length. Replace string may be zero.

	<key>ACPI</key>
	<dict>
		<key>PatchesDSDT</key>
		<array>
			<dict>
				<key>Find</key>
				<data>W4IeQkFUMQhfSElEDEHQDAoIX1VJRAEUCF9TVEEApAA=</data>
				<key>Replace</key>
				<data></data>
			</dict>
			<dict>
				<key>Find</key>
				<data>UFhTWAhfQURSAAhfUFJXEgYC</data>
				<key>Replace</key>
				<data>UFhTWAhfQURSAAhfU1VOCgQIX1BSVxIGAg==</data>
			</dict>
		</array>
	</dict>

Results:
First patch is deleting Device (BAT1) because my desktop has no batteries.
Diff looks like the follow

@@ -10835,16 +10830,6 @@ DefinitionBlock ("DSDT-B1FF.aml", "DSDT"
				 }
			 }
 
-			Device (BAT1)
-			{
-				Name (_HID, EisaId ("PNP0C0A"))  // _HID: Hardware ID
-				Name (_UID, One)  // _UID: Unique ID
-				Method (_STA, 0, NotSerialized)  // _STA: Status
-				{
-					Return (Zero)
-				}
-			}
-
			 Scope (\)
			 {

Second patch is adding a string

@@ -5038,6 +5048,7 @@ DefinitionBlock ("DSDT-B1FF.aml", "DSDT"
				 Device (GIGE)
				 {
					 Name (_ADR, Zero)  // _ADR: Address
+					Name (_SUN, 0x04)  // _SUN: Slot User Number
					 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
					 {
						 0x09, 
@@ -5063,7 +5074,7 @@ DefinitionBlock ("DSDT-B1FF.aml", "DSDT"

Next I expected guru to invent some set of useful patches.

See samples at Applelife.ru #6458 and next posts. Comments on russian but samples are digital.

 

New format for Clover-2k

<key>ACPI</key>
<dict>
	<key>DSDT</key>
	<dict>
		<key>Patches</key>
		<array>
			<dict>
				<key>Comment</key>
				<string>Remove battery device from desktop</string>
				<key>Find</key>
				<data>W4IeQkFUMQhfSElEDEHQDAoIX1VJRAEUCF9TVEEApAA=</data>
				<key>Replace</key>
				<data></data>
			</dict>
			<dict>
				<key>Find</key>
				<data>UFhTWAhfQURSAAhfUFJXEgYC</data>
				<key>Replace</key>
				<data>UFhTWAhfQURSAAhfU1VOCgQIX1BSVxIGAg==</data>
			</dict>
		</array>
	</dict>


#35
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

How to do sleep/wake working with UEFI BOOT.

 

It was problem #1 with UEFI BOOT.

Users usually claim that sleep-wake is not working with Clover while working with Chameleon. This is wrong claim.

There is a problem with UEFI BOOT which is possible only with Clover but all is good with LEGACY BOOT with Clover, Chameleon and other bootloaders.

 

Now I may said exactly that for working sleep/wake in the case of UEFI boot you need a videocard with UEFI BIOS. I reflashed my Radeon HD6670 with custom-made UEFI BIOS, 

set the follow in mother bios

Full LOGO = Disabled

OS = Windows 8

CSM support = never

Attached File  130712183332.png   160.9KB   72 downloads

 

And now I have only UEFI boot (no legacy is possible).

I have native resolution in Clover GUI 1920x1080 without additional UEFI drivers.

I have full working sleep and wake.

New ACPI table VFCT.

 

No custom DSDT, just Clover provided fixes for BIOS.aml

FixDSDTMask=0x30DF

 

 

RESOLVED.

With Clover rev 1942+ sleep/wake works fine without any conditions. In UEFI mode you need OsxAptioFixDrv new revision.



#36
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

PCI DeviceID substitution

 

In the case you have a device with unsupported DeviceID but near with supported you may

- use DSDT patch

- make LegacyXXX.kext

- correct xxx.kext/Contents/Info.plist to contain your DeviceID.

But now you can just write into Clover's config.plist some of follow settings

	<key>PCI</key>
	<dict>
		<key>FakeID</key>
		<dict>
			<key>ATI</key>
			<string>0x68181002</string>
			<key>IntelGFX</key>
			<string>0x01268086</string>
			<key>LAN</key>
			<string>0x436311ab</string>
			<key>NVidia</key>
			<string>0x0fe010de</string>
			<key>SATA</key>
			<string>0x25628086</string>
			<key>WIFI</key>
			<string>0x431214e4</string>
			<key>XHCI</key>
			<string>0x0</string>
		</dict>

Then these new device-id will be assigned to corresponding devices during DSDT patch.

In the example above you may see the follow tricks:

- AMDRadeonHD7850 has unsupported DeviceID=0x6819. We change here to 0x6818.

- NVidia GTX660 has DID=0x1183 while for AGPM we change it to 0fe0.

- Intel HD3000 DID=0x0122 works if we change it to 0x0126

- Dell Wireless 1595, DeviceID=0x4315 is not supported. FakeID=0x431214E4 in 10.6.8

- Marvell Yukon 8056, DeviceID=0x4353 is not supported. FakeID=0x436311ab

 

New format for Clover-2k

	<key>Devices</key>
	<dict>
		<key>FakeID</key>
		<dict>
			<key>ATI</key>
			<string>0x68181002</string>
			<key>IntelGFX</key>
			<string>0x01268086</string>
			<key>LAN</key>
			<string>0x436311ab</string>
			<key>NVidia</key>
			<string>0x0fe010de</string>
			<key>SATA</key>
			<string>0x25628086</string>
			<key>WIFI</key>
			<string>0x431214e4</string>
			<key>XHCI</key>
			<string>0x0</string>
		</dict>



#37
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Using Custom OS Icons

 

Since rev 2232 you may assign own icons to all your volumes even with the same OS.

Write  into config.plist

	<key>GUI</key>
	<dict>
		<key>CustomIcons</key>
		<true/>

Then place an image by copy-paste on volume info

Attached File  Screen shot 2013-10-10 at 15.26.27.png   54.59KB   77 downloads

And see the image in CloverGUI

Attached File  Screen shot 2013-10-10 at 15.14.46.png   617.64KB   56 downloads



#38
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Hibernation

 

Since revision 2514 we have working hibernation sleep/wake.

Conditions:

Clover rev2513+, recommended 2516+

Legacy booting. So we have working hibernation with CloverEFI but not with UEFI.

System 10.9.1+

We have a few successful reports with UEFI boot and with system 10.7.5. So may be, for your testing.

 

You have to set

sudo pmset -a hibernatemode 29

Also success with mode 21. Other numbers are waiting for further investigations.

Put computer to sleep. After a one minute it will switch off at all.

Switch on. Looks like ordinary boot and enter Clover GUI

Attached File  screenshot2.png   264.99KB   38 downloads

See the volume is hibernated.

Default boot by timeout or press enter.

You see progress bar at the bottom and voila! You are in system! It requires about 10 seconds that is much faster the usual login.

 

If you have a problem then you can press SPACE and choose "Cancel hibernate wake".

Or you can write into config.plist

	<key>Boot</key>
	<dict>
		<key>NeverHibernate</key>
		<true/>
	</dict>



#39
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Floating regions

 

The task is follow:

Some modern BIOSes tend to change addresses of OperatingRegions at every BIOS setting change as well as many BIOSes change regions at hardware change/

Example my desktop (look into BIOS DSDT)

September 23

OperationRegion (GNVS, SystemMemory, 0xDE6A5E18, 0x01CD)

September 30

OperationRegion (GNVS, SystemMemory, 0xDE6A4E18, 0x01CD)

February 5

OperationRegion (GNVS, SystemMemory, 0xDE4C7E18, 0x01CD)

See differences.

This is Floating Region. It may depends on how many setting in my NVRAM.

So, in this case using of fixed custom DSDT.aml is not possible. You will loose sleep/wake at least. Or some other dangerous problems.

A solution will be using always BIOS.aml+DSDT fix mask. But there are two problems:

1. Algorithm of DSDT fixing is not perfect.

2. You may want to add your custom features into DSDT. ACPImonitor, for example.

 

I propose new solution for that. Revision 2570+, preferred 2577+. 

You created your best custom DSDT.aml and place it into /EFI/CLOVER/ACPI/patched as usual.

Write into config.plist

	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>Fixes</key>
			<dict>
				<key>NewWay_80000000</key>
				<true/>
				<key>FixRegions_10000000</key>
				<true/>
			</dict>

And you will see in the boot.log something like

70:891  0:000  OperationRegion (GNVS...) corrected to addr=0xDE4C7E18

Enjoy!

 

One note.

If original region is 32bits value then your dsdt must contains also 32bit values. Do not mix 16 and 32 bits!



#40
Slice

Slice

    InsanelyMacaholic

  • Local Moderators
  • 2,953 posts
  • Gender:Male
  • Location:Moscow

Change Log with comments what and how

 

This is not an instruction but this is precisely what Clover can do compared to older revisions up to final 2652.

© copied from "Clover changes" thread at projectosx.com.

Attached File  ChangesHistory.rtfd.zip   223.78KB   25 downloads







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


8 user(s) are reading this topic

3 members, 5 guests, 0 anonymous users


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