Jump to content

Clover v.2 Instructions

Bootloader EFI Clover

  • Please log in to reply
43 replies to this topic

#1
ErmaC

ErmaC

    127.0.0.1

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

*
POPULAR

Slice is glad to present a new EFI bootloader.

Attached File  Clover.png   45.83KB   412 downloads

CLOVER
Now version 2 rEFIt based.


It is open source based on different projects: Chameleon, rEFIt, XNU, VirtualBox. The main is EDK2 latest revision.
I also want to thank all who help Slice with the development. Credits and copyrights remain in the sources.
http://cloverefiboot.sourceforge.net/

There is a WIKI 

http://clover-wiki.zetam.org/

Main features:

Spoiler


If you have a question please provide outputs from DarwinDumper (formed from Trauma tool). Thanks Trauma!
Continued by blackosx and STLVNUB.

-----------------

 

Slice:

I edited all posts in the thread to correspond to actual Clover revision.

Please install Clover at least 2652 and use new instructions.



#2
STLVNUB

STLVNUB

    InsanelyMac Legend

  • Coders
  • 1,098 posts
  • Gender:Male

COMPILATION

Now on GitHub: Grab it from link below
https://github.com/S...UB/CloverGrower

This is open-source project assuming that everybody can compile it if you want to change something.
More info at http://www.projectos...indpost&p=17480

XCode Command Line Tools are essential to build the GCC 4.8.* tool chain. ( I will always use latest version ) :wink_anim:

Q: CloverGrower, What is it?
A: Tool to download/compile and build the latest Clover package/iso. Packages are archived as they are built.

ALWAYS RUN CloverGrower.command FIRST, even when Upgrading.


*******************************


Edited by STLVNUB, 04 November 2013 - 06:13 AM.
Update


#3
Slice

Slice

    InsanelyMacaholic

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

DOWNLOADS


Installer
Attached File  Screen Shot 2012-11-24 at 9.55.18.png   157.49KB   805 downloads
I am sorry but the forum doesn't allow attachments larger then 10Mb while the new version is 12Mb.
So look for new revisions at the project home
http://sourceforge.n.../cloverefiboot/
Attached File  Clover_v2_r826.zip   9.09MB   2269 downloads

CD ISO bootable with Clover
Attached File  CloverISO-897.tar.lzma.zip   3.27MB   1546 downloads

Many previous revisions can be found here http://tools.inmac.org/clover/

Utility to install Clover from Windows http://cvad-mac.naro...diskutilityexe/

Additional foreign file system drivers for EFI.
Attached File  FS drivers.zip   70.08KB   3147 downloads

Manuals:
Russian language offline manual:

Attached File  Клевер цвета хаки 2652.pdf   2.6MB   24 downloads
English and Spanish see here http://clover-wiki.zetam.org/


Localization
If you want to add your native language to the program please translate the follow files
Attached File  TextsToTranslate.zip   7.76KB   653 downloads
and upload the result at this thread.


Edited by Slice, 14 May 2014 - 05:53 AM.
Update


#4
Slice

Slice

    InsanelyMacaholic

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

INSTALLATION


Using the installer
Start installer. Press "Continue" and "OK' as many times as needed.
Choose a partition to install
Attached File  Screen Shot 2012-09-15 at 11.51.36.png   166.07KB   4781 downloads
Customize what to install
Attached File  Screen Shot 2012-09-15 at 11.53.47.png   177.01KB   6108 downloads
Choose themes. Default one is black-green by blackosx.
Attached File  Screen Shot 2012-09-15 at 11.54.57.png   152.04KB   4568 downloads
C l8r themes preview.

Manual Installation
Spoiler


Warning

to use USB stick for first Clover installation and tests. There are cases where users are running install for the first time directly to HDD and then they mess with existing working Chameleon boot.



The best way to play with and test Clover (or any other booter) is to test from USB stick. Prepare MBR formatted USB stick with one FAT32 partition and then install Clover there. This stick can be used for standard BIOS Clover boot and for UEFI boot. Once Clover is set up on that stick and all is working good and you know what you are doing, then install it to HDD.


Edited by Slice, 24 November 2012 - 04:14 AM.
Update


#5
Slice

Slice

    InsanelyMacaholic

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

By dmazar: How to do UEFI boot Original post
 

How to do UEFI Boot


I'll repost some info regarding UEFI boot from there:

When trying UEFI boot, try with following combination of drivers in /EFI/CLOVER/Drivers64UEFI folder:

1. HFSPlus.efi, OsxFatBinaryDrv-64.efi

if this does not work, then

2. HFSPlus.efi, OsxFatBinaryDrv-64.efi, OsxLowMemFixDrv-64.efi
and then if this does not work then

3. HFSPlus.efi, OsxFatBinaryDrv-64.efi, OsxAptioFixDrv-64.efi (with slide=0 in boot args in config.plist)
and if even this does not work, then try:

4. HFSPlus.efi, OsxFatBinaryDrv-64.efi, OsxAptioFixDrv-64.efi (with slide=0 in boot args in config.plist), EmuVariableRuntimeDxe.efi (from here)

More about it:

1. HFSPlus.efi, OsxFatBinaryDrv-64.efi
This works on boards with Gigabyte Hybrid EFI. This is the best option for UEFI boot, in the sense that no special fixes are required. Any OSX should boot fine, unless some big change happens that will stop working boot here.

2. HFSPlus.efi, OsxFatBinaryDrv-64.efi, OsxLowMemFixDrv-64.efi
This works on Insyde H2O UEFI. Some small memory issue will be fixed by LowMemFix, and then everything should be equal to case 1.

3. HFSPlus.efi, OsxFatBinaryDrv-64.efi, OsxAptioFixDrv-64.efi (with slide=0 for ML)
This works for all other boards ... well, where works. This is not so good solution because it depends on current functioning of boot.efi and current structures that are passed between boot.efi (boot loader) and kernel, like boot args and device tree. Meaning: if structure of boot args changes, like it changed when Lion came out, which caused Chameleon to fail to boot Lion, this will again break Chameleon and UEFI boot with AptioFix - until somebody fixes it. This is the most annoying thing to me because the major point for having UEFI boot is to use boot.efi as bootloader and to avoid such things. Well, if this happens, the first solution will be to fall back to standard Clover until the thing is resolved. The small issue is that standard Clover is also dependent on kernel boot args when kernel and kext patching or kext injection is used - this would also need to be turned off in that case.

4. HFSPlus.efi, OsxFatBinaryDrv-64.efi, OsxAptioFixDrv-64.efi, EmuVariableRuntimeDxe.efi
This works on Dell Vostro, some ThinkPad's - some laptops with Phoenix UEFI. All mentioned in 3. is applicable here.

All other drivers may or may not be needed. Drivers listed above are required minimum. The best way to test if the driver is needed or not is to try without it - if the thing still works, then it is not needed. Well, more or less ... since for example normal boot works without FSInject, but that one can be needed sometimes.


Edited by Slice, 14 May 2014 - 05:56 AM.
Update


#6
ErmaC

ErmaC

    127.0.0.1

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

How to use - common words


OK.
In the following we will assume that you correctly installed Clover.
The default configuration that comes with the installer is usually good enough for most configurations,
so as a fist attempt just try to boot.
Remember choose a starting device in BIOS or CLOVERX64.EFI in the case of UEFI BIOS.

The boot process will proceed as follows:
Legacy BIOS: BIOS->MBR->PBR->boot->CLOVERX64.EFI-> ... system, namely boot.efi->mach_kernel->Login
UEFI BIOS: UEFI->CLOVERX64.EFI-> ... system

The file CLOVERX64.EFI located at /Volumes/YourHDD/EFI/CLOVER/ is a graphical menu to choose a system to boot (CloverGUI).
Attached File  MainMenu.png   106.71KB   1538 downloads
As you see there is a help calling by F1 key.
Attached File  Help.png   99.57KB   1900 downloads
This is a Russian example. There are also other languages and the choice depends on setting in your config.plist file

<key>SystemParameters</key>
<dict>
<key>prev-lang:kbd</key>
<string>en:0</string>

At this moment there are languages: en, ru, it, es, pt, de, id, fr, ua, pl.
There is no your language? Took "TextsToTranslate from Downloads section, translate it to your language and upload here. I will implement ASAP.

You can change some settings directly from GUI. This is for temporarily enable/disable some features that you are not sure
Attached File  Options.png   80.2KB   2102 downloads Attached File  CPU.png   84.33KB   1734 downloads Attached File  Graphics.png   68.39KB   1424 downloads Attached File  Kexts.png   67.94KB   1292 downloads

Now you can boot a system. Just press "Enter". Or you may press 'Space" and choose other method to boot
Attached File  Details.png   92.78KB   1117 downloads


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


#7
ErmaC

ErmaC

    127.0.0.1

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

Automatic DSDT fix


One of the the most important concerns in the hackintosh world is how to create a good DSDT.aml.
If you already have your own DSDT.aml, you can directly place it into /EFI/CLOVER/acpi/patched. Moreover, in case you have different OS versions on the same computer and you want each of them to boot with a different DSDT (wow! it's possible!), what you have to do is to place each DSDT.aml in the root partition of the corresponding OS version.

Order of searching is follow

1. Look for /booted_partition/DSDT.aml if not found then

2. Look for /clover_partition/EFI/CLOVER/OEM/your_motherboard_name/ACPI/patched/DSDT.aml, if not found then

3. Look for /clover_partition/EFI/CLOVER/ACPI/patched/DSDT.aml if not found then

4. Took OEM DSDT from BIOS of the computer.

If you don't have any good DSDT yet, you may allow Clover to create an autopatched DSDT for you. Namely, Clover will extract the DSDT as provided by the BIOS and consequently apply some patches. The specific set of patches that will be applied depends on your choice. The following example showcases how to apply one of the available patches by altering the configuration file config.plist:

	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Name</key>
			<string>DSDT.aml</string>
			<key>Fixes</key>
			<dict>
				<key>AddDTGP_0001</key>
				<true/>
				<key>AddMCHC_0008</key>
				<false/>
				<key>FakeLPC_0020</key>
				<false/>
				<key>FixAirport_4000</key>
				<true/>
				<key>FixDarwin_0002</key>
				<false/>
				<key>FixDisplay_0100</key>
				<true/>
				<key>FixFirewire_0800</key>
				<true/>
				<key>FixHDA_8000</key>
				<true/>
				<key>FixHPET_0010</key>
				<true/>
				<key>FixIDE_0200</key>
				<false/>
				<key>FixIPIC_0040</key>
				<true/>
				<key>FixLAN_2000</key>
				<true/>
				<key>FixSATA_0400</key>
				<false/>
				<key>FixSBUS_0080</key>
				<true/>
				<key>FixShutdown_0004</key>
				<true/>
				<key>FixUSB_1000</key>
				<true/>
				<key>NewWay_80000000</key>
				<true/>
				<key>FIX_RTC_20000</key>
				<true/>
				<key>FIX_TMR_40000</key>
				<true/>
				<key>AddIMEI_80000</key>
				<true/>
				<key>FIX_INTELGFX_100000</key>
				<false/>
				<key>FIX_WAK_200000</key>
				<true/>
				<key>DeleteUnused_400000</key>
				<true/>
				<key>FIX_ADP1_800000</key>
				<true/>
				<key>AddPNLF_1000000</key>
				<true/>
				<key>FIX_S3D_2000000</key>
				<true/>
				<key>FIX_ACST_4000000</key>
				<true/>
				<key>AddHDMI_8000000</key>
				<true/>
				<key>FixRegions_10000000</key>
				<true/>
			</dict>
		</dict>
 

To calculate them it is better to use an application by Cvad


If you want to see a result of patches then you can set

	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<true/>

Then you will found in /EFI/CLOVER/ACPI/origin the follow files

DSDT-or.aml - original DSDT.aml, before any patches;

DSDT-pa0.aml - patched DSDT.aml, first attempt. It will created immediately before system start even if the system panics.

DSDT-pa1.aml and next numbers until you can start system. Last file will be the best.

 

The patch will be applied even for custom DSDT and all loaded SSDT.

In some cases your DSDT already contains some Method(_DSM...). In this case you have to choose if you want to remain old _DSM  (you are sure it is good), or you want to drop OEM _DSM because it is for Windows and doesn't work in OSX. 

Choose

			<key>DropOEM_DSM</key>
			<dict>
				<key>ATI</key>
				<true/>
				<key>Firewire</key>
				<true/>
				<key>HDA</key>
				<true/>
				<key>HDMI</key>
				<true/>
				<key>IDE</key>
				<true/>
				<key>IntelGFX</key>
				<true/>
				<key>LAN</key>
				<true/>
				<key>LPC</key>
				<false/>
				<key>NVidia</key>
				<true/>
				<key>SATA</key>
				<true/>
				<key>SmBUS</key>
				<false/>
				<key>USB</key>
				<true/>
				<key>WIFI</key>
				<true/>
			</dict>

You may also make your custom binary patches for DSDT. Examples

			<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>Comment</key>
					<string>Add _SUN property for GIGE</string>
					<key>Find</key>
					<data>UFhTWAhfQURSAAhfUFJXEgYC</data>
					<key>Replace</key>
					<data>UFhTWAhfQURSAAhfU1VOCgQIX1BSVxIGAg==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>Rename GFX0 to IGPU</string>
					<key>Find</key>
					<data>R0ZYMA==</data>
					<key>Replace</key>
					<data>SUdQVQ==</data>
				</dict>
				<dict>
					<key>Comment</key>
					<string>Rename HDEF to AZAL</string>
					<key>Find</key>
					<data>SERFRg==</data>
					<key>Replace</key>
					<data>QVpBTA==</data>
				</dict>
			</array>

Length Find and Replace may be different

 

And one more problem with DSDT patching.

If you set FixDisplay=true it will create display device with real address.

But in some cases there is similar device with address 0xFFFF. The is a conflict.

As we found there are no common rules what to do so there is a setting

			<key>ReuseFFFF</key>
			<false/>

Set True or False and see a result. I can't know what is better for you.

Attached Files


Edited by Slice, 14 May 2014 - 06:34 AM.
Update


#8
ErmaC

ErmaC

    127.0.0.1

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

Instructions for GraphicsInjector


Historically the sources for GraphicsInjector came from Chameleon where it is named GraphicsEnabler.
It is easy to see is user tell about GE then it means he uses Chameleon else if he tell about GI then he uses Clover :)
But Clover runs forward.

Intel videocards: GMA950, X3100, HD300, HD4000 - proved.
You have just set

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

But one note. Some notebooks (like Dell Inspiron 1525) booted into black screen. You can use sleep-trick or erase Device(CRT) from DSDT.
The last thing will be performed by the Clover if you set DsdtFixMask with bit 0x0100 - "FixDisplay".

NewWay you should set FIX_INTELGFX_100000
For Intel HD4000 one more parameter is possible

<key>ig-platform-id</key>
<string>0x01620005</string>
Where 162 for desktop like iMac13 and 166 for MacBookPro and MacMini. Last digit is a version of graphics engine.
We can't confirm information about memory/pipes/connectors dependency.
Default value set by Clover always work.

NVidia - a wide set of supported video cards, and the database is continuously replenished by ErmaC.
There are parameters in config.plist
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<true/>
		</dict>
		<key>NVCAP</key>
		<string>04000000000003000C0000000000000A00000000</string>
		<key>display-cfg</key>
		<string>03010300FFFF0001</string>
		<key>VideoPorts</key>
		<integer>2</integer>
 

But the Clover is clever enough that you need no to set these parameters. Just one: Inject = true and this will be the best choice for you. I have many successful reports and no unsuccessful.

New NVidia cards named Kepler don't needed in Inject. They works without it.

ATI/AMD
This is a special conversation. I have GA AMD Radeon HD6670 and VFX HD5570 so I tested these technologies in the cases of 5xxx and 6xxx.
You may set nothing (GI = No) and enter desktop with a common ATIRadeonFramebuffer. It works including OpenGL, you may even test with OpenGL Extension Viewer but this is not very good way to go. If you call DVDPlayer it will crash.
If you set GI = Yes you will enter black screen or see empty desktop because all info appears to be on second invisible desktop.
You need ATIConnector patch. Original topic by bcc9.
As example for ATI HD6670 is my config

		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<true/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>DualLink</key>
		<integer>0</integer>
		<key>FBName</key>
		<string>Ipomoea</string>
		<key>InjectEDID</key>
		<true/>
		<key>LoadVBios</key>
		<true/>

And then I do connectors patch for the "Ipomoea" framebuffer.

	<key>KernelAndKextPatches</key>
	<dict>
		<key>ATIConnectorsController</key>
		<string>6000</string>
		<key>ATIConnectorsData</key>
		<string>000400000403000000010000210302040400000014020000000100000000040310000000100000000001000000000001</string>
		<key>ATIConnectorsPatch</key>
		<string>040000001402000000010000000004040004000004030000000100001102010500000000000000000000000000000000</string>

For Mobile Radeon there in necessity to do

<key>LoadVBios</key>
<string>Yes</string>
Yes, this is a key difference to launch mobility.

EDID
In some case you need to inject EDID string. Or may be you just know the better EDID then provided by manufacture.
<key>InjectEDID</key>
<string>Yes</string>
In this case EDID string obtained by BIOS will be accesible by OSX that is not always true.
If your monitor is non-DDC at all then you may inject some artificial EDID
<key>CustomEDID</key>
<data>AP///////wAyDADfAAAAAAASAQOAIRV4CunVmVlTjigmUFQAAAABAQEBAQEBAQEBAQEBAQEB3iGgcFCEHzAgIFYAS88QAAAY3iGgcFCEHzAgIFYAS88QAAAAAAAA/gBXNjU3RwAxNTRXUDEKAAAA/gAjMz1IZYSq/wIBCiAgAJo=</data>

AAPL,DualLink
For some older cards you should set DualLink=0 or 1. For example ATI HD1600. There must be =0 else you will see four screens.
<key>DualLink</key>
<string>1</string>

Edited by Slice, 14 May 2014 - 06:51 AM.
Update


#9
ErmaC

ErmaC

    127.0.0.1

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

ATIConnector patching

First of all I want to thank bcc9 for the method, pcj for implementing this patch and dmazar for making it working.
Instruction how to do.
1. Download radeon_bios_decoder and ati_personality.pl from bcc9 topic.

New one Attached File  ati-personality.pl.0.11.zip   6.63KB   439 downloads

2. Look into SystemProfiler to know what is your Radeon card. My DeviceID=0x6758 which is 6000 series. What is your series? Search through vanilla ATI kexts to find your deviceID or near to that.
For example, if your DeviceID=0x68B2 then you may found that Juniper included very similar DIDs.
See AMDRadeonAccelerator.kext/Contens/Info.plist
Attached File  Screen Shot 2012-09-16 at 15.37.12.png   53.98KB   1064 downloads
You must write your DeviceID here.
Also see ATI5000Controller.kext/Contents/Info.plist. The same rule: "if your deviceId is absent then write it near the similar one"
Example

<key>IOPCIMatch</key>
<string>0x68981002 0x68991002 0x68E01002 0x68E11002 0x68D81002 0x68C01002 0x68C11002 0x68D91002 0x68B21002 0x68B81002 0x68B01002 0x68B11002 0x68A01002 0x68A11002 </string>

Now you are sure your device is controlled by ATI5000.

3. Dump information with ati_personality.pl.
The interesting for you is the 5000 section.


Kext /System/Library/Extensions//ATI5000Controller.kext/Contents/MacOS/AMD5000Controller

Personality: Douc

ConnectorInfo count in decimal: 2

Disk offset in decimal 165856

0000000 02 00 00 00 00 05 00 00 09 03 00 00 21 03 02 02

0000010 00 04 00 00 04 02 00 00 00 03 00 00 11 02 01 01

0000020

And so on. There are several Framebuffers. What to choose? I think any. But the better will be (for my mind, may be I am wrong)
5000: Baboon for desktop, Galago for mobile.
6000: Ipomoea for desktop, Osmunda for mobile.

This is my example with HD6670 devID=0x6758 (Turks).
Connectors info:


Personality: Ipomoea

ConnectorInfo count in decimal: 3

Disk offset in decimal 180112

0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 01 05

0000010 00 08 00 00 04 02 00 00 00 01 00 00 11 02 04 03

0000020 10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 02

4. Next step. Dump your bios with the script radeon_bios_decoder from bcc9.
One moment. Where can you get your VideoBios? There are different ways. The simplest one is to start Clover and press F6.
You may find file /EFI/misc/c0000.bin in your Clover partition if it is FAT32 formatted.


iMac:test slice$ ./radeon_bios_decode <c0000.bin

ATOM BIOS Rom:

SubsystemVendorID: 0x1458 SubsystemID: 0x2557

IOBaseAddress: 0xe000

Filename: R667D32I.F1

BIOS Bootup Message:

GV-R667D3-2GI/F1



PCI ID: 1002:6758

Connector at index 0

Type [@offset 44282]: HDMI-A (11)

Encoder [@offset 44286]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 44356]: 0x92, OSX senseid: 0x3

Connector at index 1

Type [@offset 44292]: DVI-D (3)

Encoder [@offset 44296]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 44383]: 0x95, OSX senseid: 0x6

Connector at index 2

Type [@offset 44302]: VGA (1)

Encoder [@offset 44306]: INTERNAL_KLDSCP_DAC1 (0x15)

i2cid [@offset 44410]: 0x90, OSX senseid: 0x1

iMac:test slice$

All that we need is senseid for each output.
DVI-D: 06
VGA: 01
HDMI: 03
So replace the digits in the chosen connectors info. (red digits).
First digits (green) at every line are connector's type
0004 - DP
0008 - HDMI
1000 - VGA
Must be
0400 - DVI-D
0200 - LCD - for notebooks

0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 01 05
0000010 00 08 00 00 04 02 00 00 00 01 00 00 11 02 04 03
0000020 10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 02

Corrected table:
0000000 04 00 00 00 04 03 00 00 00 01 00 00 12 04 01 06
0000010 00 08 00 00 04 02 00 00 00 01 00 00 11 02 04 03
0000020 10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 01

I can also exchange 2nd and 3rd lines
0000000 04 00 00 00 04 03 00 00 00 01 00 00 12 04 01 06
0000010 10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 01
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 04 03


5. Now I can write initial table into ATIConnectorsData, and corrected table into ATIConnectorsPatch of my config.plist.


<key>KernelAndKextPatches</key>

<dict>

<key>ATIConnectorsController</key>

<string>6000</string>

<key>ATIConnectorsData</key>

<string>000400000403000000010000120401050008000004020000000100001102040310000000100000000001000000000002</string>

<key>ATIConnectorsPatch</key>

<string>040000000403000000010000100001061000000010000000000100000000000100080000040200000001000012040403</string>

6. This patch will work in two cases: if KernelCache is used, or if boot-args contain a key "WithKexts".
If for some reason kernelcache is not load then the patch will not be applied.
Remember that you do the patch with the chosen framebuffer, and it will not work if you set other frame buffer in the config.plist


<key>Graphics</key>

<dict>

<key>GraphicsInjector</key>

<string>Yes</string>

<key>FBName</key>

<string>Ipomoea</string>

It works for my two computers with HD6670 and with HD5570 giving me working DVDPlayer and all other functionality. I can play 4x4Evolution.

Some news.
0000000 04 00 00 00 04 03 00 00 00 01 00 00 12 04 00 06
0000010 10 00 00 00 10 00 00 00 00 01 00 00 00 00 01 01
0000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 02 03

If you have a problem with Sleep then change encoderid for VGA output to zero (red digits)
If you have a problem with HDMI plug&play then change HotPlugID to 05 (blue digits)

Now hackers says that HotPlugID must be in numeric order 00, 01, 02 ...  (blue digits)


Edited by Slice, 28 August 2013 - 01:58 AM.
Update


#10
Slice

Slice

    InsanelyMacaholic

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

Any kext patching


You may do many patches with this ability.
One funny sample

I look into kext VoodooHDA and found a string "Headphones" = 48 65 61 64 70 68 6F 6E 65 73 00
Attached File  ______________2012_09_08___20.20.59.png   63.63KB   1213 downloads
I want to rename it to "Telephones" ;) = 54 65 6C 65 70 68 6F 6E 65 73 00
So I write into config.plist the follow
<key>KextsToPatch</key>
<array>
<dict>
	<key>Name</key>
	<string>VoodooHDA</string>
	<key>Find</key>
	<data>SGVhZHBob25lcwA=</data>
	<key>Replace</key>
	<data>VGVsZXBob25lcwA=</data>
</dict>
</array>

Reboot and have the result
Attached File  ______________2012_09_08___20.28.41.png   64.42KB   1650 downloads

Now about more useful patches. One of them is ATIConnectors patch only for 5000 and 6000 controller under 10.7 or 10.8. In other case you should patch as any kext.
For example OS 10.6, ATI Radeon X1650 with non-usual DeviceID=0x71cd. You have to write this value into info.plist but not only.
You also should patch the binaries of ATIRadeonX1000.kext.
Do the follow
<dict>
	<key>Name</key>
	<string>ATIRadeonX1000</string>
	<key>Find</key>
	<string>81fa87710000</string>
	<key>Replace</key>
	<string>81facd710000</string>
</dict>

There are predefined patches

Edited by Slice, 27 May 2013 - 04:22 PM.
New format for rev1717+


#11
ErmaC

ErmaC

    127.0.0.1

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

CustomEDID

It is needed in two cases

1. There is non-DDC monitor.
2. This is DDC_monitor, but Apple's driver can't get EDID from them. While BIOS - yes.
For the second case we just set InjectEDID = yes
For the first case we should also write CustomEDID obtained from anywere into config.plist.
Attached File  Screen_shot_2012_09_12_at_14.01.07.png   87.12KB   1443 downloads
You may create your best custom EDID by ViewSonic EDID editor
just port it into OSX by Wineskin
This is my result (a file from lvs1974)
Attached File  Screen Shot 2012-09-16 at 20.25.39.png   58.03KB   1303 downloads
EDID sample to load by the program
128 BYTES OF EDID CODE:
         0   1   2   3   4   5   6   7   8   9
	  ________________________________________
  0  |  00  FF  FF  FF  FF  FF  FF  00  0D  AF
 10  |  26  15  00  00  00  00  09  10  01  03
 20  |  80  21  15  78  0A  C6  A9  9A  57  4E
 30  |  85  26  1E  50  52  00  00  00  01  01
 40  |  01  01  01  01  01  01  01  01  01  01
 50  |  01  01  01  01  BC  1B  00  A0  50  20
 60  |  17  30  30  20  36  00  4B  CF  10  00
 70  |  00  18  00  00  00  FE  00  4E  31  35
 80  |  34  49  32  2D  4C  30  32  0A  20  20
 90  |  00  00  00  FE  00  43  4D  4F  0A  20
100  |  20  20  20  20  20  20  20  20  00  00
110  |  00  FE  00  4E  31  35  34  49  32  2D
120  |  4C  30  32  0A  20  20  00  88

Edited by Slice, 17 September 2012 - 01:35 PM.
Update


#12
Slice

Slice

    InsanelyMacaholic

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

Hiding unnecessary menu entries


The Clover usually find many entries with possibility to boot. There are EFI entries and legacy boot sectors. If you think you don't need it then you may hide it.
The method by skoczi.
Was
Attached File  MainMenu.png   106.71KB   719 downloads
became
Attached File  Hiding.png   100.63KB   641 downloads

A full set of possible hiding as follow
Since rev1600 (?) there is new format for hiding.
<key>GUI</key>
<dict>
  <key>Volumes</key>
  <dict>
   <key>Legacy</key>
   <string>First</string>
   <key>Hide</key>
   <array>
    <string>VOLUME_NAME</string>
    <string>VOLUME_UUID</string>
    <string>TODO_HIDE_VOLUME_BY_TYPE/GROUP</string>
   </array>
  </dict>
  <key>HideEntries</key>
  <dict>
   <key>OSXInstall</key>
   <true/>
   <key>Recovery</key>
   <true/>
   <key>Duplicate</key>
   <true/>
   <key>WindowsEFI</key>
   <false/>
   <key>Grub</key>
   <false/>
   <key>Gentoo</key>
   <false/>
   <key>Ubuntu</key>
   <false/>
   <key>OpticalUEFI</key>
   <true/>
   <key>InternalUEFI</key>
   <true/>
   <key>ExternalUEFI</key>
   <true/>
  </dict>
</dict>

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


#13
ErmaC

ErmaC

    127.0.0.1

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

DeviceProperties Injection


This is a private Apple protocol but well known initially from VBox sources and corrected by next testing. We created some DeviceProperties array (so called EFIString by, for example, EFIStudio) and permit to boot.efi use it.
But we see next requirement
In Chameleon, due to netkas efforts, there is a setting PCIRootUID=0 or 1 to make injection working. What is the number? It apperas to be _UID property of Device (PCI0). It is enough for Chameleon but EFI always use PCIRootUID=0 no matter if you see in DSDT
	   Device (PCI0)
	    {
		    Name (_HID, EisaId ("PNP0A03"))
		    Name (_ADR, 0x00)
		    Name (_UID, 0x01)
		    Name (_BBN, 0x00)
We can set in config.plist PCIRootUID=1 in this case and this works at many configurations. But
as I see on screen boot.efi searches boot device at path Acpi(PNP0A08, 0) . It means always PCIRootUID=0 and always _HID=PNP0A08.
So we have to correct DSDT to
	    Device (PCI0)
	    {
		    Name (_HID, EisaId ("PNP0A08"))
		    Name (_CID, EisaId ("PNP0A03"))
		    Name (_ADR, Zero)
		    Name (_UID, Zero)
		    Name (_BBN, Zero)
And then we have to set PCIRootUID=0 or just forget it because 0 is a default value.
This DSDT patch always performed by Clover so you just have to control that all is good.

Clover performs automatic DeviceProperties generation. You may set Yes on No to do that.
  <key>StringInjector</key>
  <string>No</string>
If NO then automatic generation.
if YES then your custom string will be used.
Consider automatic injection:
LAN injection - always ON
USB: default YES
  <key>USBInjection</key>
  <string>Yes</string>
Graphics injection as said before. Default - yes.
  <key>GraphicsInjector</key>
  <string>Yes</string>
Sound injection. This is only the property "LayoutID". This injector will not make you working sound but help you to do that.
Instructions by dmazar
	    // enabled by default
	    // syntax:
	    // - HDAInjection=No - disables injection
	    // - HDAInjection=887 - injects layout-id 887 decimal (0x00000377)
	    // - HDAInjection=0x377 - injects layout-id 887 decimal (0x00000377)
	    // - HDAInjection=Detect - reads codec device id (eg. 0x0887)
	    //   converts it to decimal 887 and injects this as layout-id.
	    //   if hex device is cannot be converted to decimal, injects legacy value 12 decimal
	    // - all other values are equal to HDAInjection=Detect

Now we can consider manual producing DeviceProperties array. You may use EFIStudio as an example but it is deprecated.
You may set Clover to automatically produce some strings and then look in it from DarwinDumper report.
You may took those strings convert them to plist,
gfxutil -i hex -o xml dp.hex dp.plist
edit the plist, for example you know your PinConfiguration
Attached File  Screen shot 2012-09-17 at 12.14.01.png   33.18KB   847 downloads
Then convert the plist back to hex
gfxutil -i xml -o hex dp.plist new_dp.hex
And then copy this hex string into config.plist
  <key>StringInjector</key>
  <string>Yes</string>
  <key>DeviceProperties</key>
  <string>7a00000001000000010000006e0000000200000002010c00d041030a0000000001010600001b7fff040028000000500069006e0043006f006e00660069006700750072006100740069006f006e00730000000800000001080100180000006c00610079006f00750074002d00690064000000080000000c000000</string>
This way automatic patching will not be performed and your own string will be used.

Edited by Slice, 17 September 2012 - 08:20 AM.
Update


#14
ErmaC

ErmaC

    127.0.0.1

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

Development

 

You may use GloverGrover or CloverGroverPro. Here is instructions for manual development.

cd ~
mkdir src
cd src
svn co https://svn.code.sf.net/p/edk2/code/trunk/edk2 edk2
cd edk2
svn co svn://svn.code.sf.net/p/cloverefiboot/code/ Clover
cp -v ~/src/edk2/Clover/Patches_for_EDK2/BaseTools/Source/C/GenVtf/GenVtf.c
       ~/src/edk2/BaseTools/Source/C/GenVtf
cp -v ~/src/edk2/Clover/Patches_for_EDK2/BaseTools/Source/C/VfrCompile/*
~/src/edk2/BaseTools/Source/C/VfrCompile
make -C BaseTools/Source/C
cd Clover

./buildgettext.sh
./buildgcc.sh –x64 -all

cd ..
./edksetup.sh
cp ~/src/edk2/Clover/Patches_for_EDK2/build_rule.txt ~/src/edk2/Conf/
cp ~/src/edk2/Clover/Patches_for_EDK2/tools_def.txt ~/src/edk2/Conf/

./ebuild.sh -64
./ebuild.sh -mc
./ebuild.sh -ia32

One note. In svn repository there are no files HFSPlus.efi because of licensing. Took them here from download section.

Or you may use opensource VBoxHFS.efi.

To do this correct Clover.fdf from

      # foreign file system support
#INF  Clover/VBoxFsDxe/VBoxHfs.inf
INF  RuleOverride=BINARY Clover/HFSPlus/HFSPlus.inf

to

       # foreign file system support
INF  Clover/VBoxFsDxe/VBoxHfs.inf
#INF  RuleOverride=BINARY Clover/HFSPlus/HFSPlus.inf

Making package and CD image

cd ~/src/edk2/Clover/CloverPackage/
./makepkg
./makeiso 

All instructions below are obsolete!

Spoiler

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


#15
Slice

Slice

    InsanelyMacaholic

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

About kexts injection


©dmazar
When kext injection is working, then any caches should be ignored (kernelcache, Extensions.mkext) and boot.efi should load kernel and kexts separatelly - slower boot with lot of dots on a screen. Also, if any kexts are loaded, then they should be visible in system as they would normally be. For example, FakeSMC would write some line in kernel log and can be seen with kextstat | grep -i fake.
Plus, boot.log will have something like: FSInjection: OS=xx.x Injecting kexts from: &#39;xxxxx&#39; done!

If above is not happening, then this kext injection is not working.

A short info how this kext loading is working. Maybe it will help you to see what went wrong:
- FSInject.efi is loaded on startup from \efi\drivers - this is file system proxy driver that is just loaded initially. will get activated later if needed.
- volume selection screen is shown - you can mark the volume and press space to get boot options and then choose &quot;Boot Mac OS X with extra kexts (skips cache)&quot; (going into details to avoid confusion)
- this searches for appropriate folder where kexts could be located
--- EFI/CLOVER/OEM/xxx/kexts/xx.y (version speciffic) or
--- EFI/CLOVER/OEM/xxx/kexts/Other or
--- EFI/CLOVER/kexts/xx.y or
--- EFI/CLOVER/kexts/Other
- first one found is used, no metter if it is empty or not (possible mistake: if you are booting 10.8 and have kexts\10.8 which is empty and kexts\Other with FakeSMC, then kexts\10.8 will be used and no kexts will be added)
- if one is found, then FSInject.efi is activated - this replaces existing file system driver with our proxy implementation. this one is able to block OSX caches and inject drivers to /S/L/E.
- boot.efi is started - it can not load caches (blocked by FSInject), so it loads kernel and kexts from /S/L/E (FSInject will take care to report our extra kexts as being in /S/L/E)
- lot of dots should appear on screen during kext loading

So, this is what is required:
- FSInject.efi in /EFI/CLOVER/drivers
- kexts in appropriate folder

Kexts will be loaded always if not set boot-args=NoKexts
If you want to boot without kernelcache you may write manually boot-args=NoCache

 

There is a submenu in Details menu

- boot without cache

- boot without kexts

- boot without cache and kexts

By default all extra kexts loaded if there is no FakeSMC in the kernelcache, usual for installation.

Else we propose all kexts are in kernelcache.

Do this by

	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Detect</string>

This is default value. Other possible value "Yes" to load kexts always.

You can also may always ignore cache "NoCaches"="Yes". But this is wrong idea.


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


#16
ErmaC

ErmaC

    127.0.0.1

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

Instructions for P- and C-states generator


This method was initially developed by mojodojo in Chameleon and comes to Clover with some improvements.

  • Your DSDT must contain a Processor section like this
    Scope (\_PR)
    {
    Processor (CPU0, 0x00, 0x00001010, 0x06) {}
    Processor (CPU1, 0x01, 0x00001010, 0x06) {}
    }
    Do not copy my sample! It is hardware dependent.
  • Write into config.plist
    		<key>SSDT</key>
    		<dict>
    			<key>Generate</key>
    			<dict>
    				<key>CStates</key>
    				<true/>
    				<key>PStates</key>
    				<true/>
    			</dict>
    
    
  • Generated P and C states will be as SSDT tables additional to existing so why you should drop OEM tables to not conflict with new one. It will be better to drop some tables
    		<key>DropTables</key>
    		<array>
    			<dict>
    				<key>Signature</key>
    				<string>DMAR</string>
    			</dict>
    			<dict>
    				<key>Signature</key>
    				<string>SSDT</string>
    				<key>TableId</key>
    				<string>CpuPm</string>
    			</dict>
    			<dict>
    				<key>Length</key>
    				<integer>720</integer>
    				<key>Signature</key>
    				<string>SSDT</string>
    			</dict>
    		</array>
    
    
    But OEM tables may contain not only P and C section. For example I have three table and one of them is for SATA.
    So I extracted this table, name it as SSDT-8.aml and place into /EFI/CLOVER/acpi/patched - a place where we can load additional ACPI tables.
  • Generating P-states you may use additional settings
    <key>UnderVoltStep</key>
    <string>1</string>
    This is for Core2Duo and will not work for i3-i7.
    Undervoltage technology gives you more cool CPU. Reasonable values 0,1,2. If you overcool your CPU it may freeze. :cold:
    (I mean hangs...)


    <key>PLimitDict</key>
    <string>1</string>
    This value has the same sense as in PlatformPlugin.plist. This is limit to maximum P-state counting down from 0.
    That is 0 - no limit, 1 - maximum frequency will be limited by one step before maximum. 2 - two steps before maximum...
    This is a story.
    I have notebook Dell Inspiron 1525 with Core2Duo @2400MHz. It is too high for notebook! When I write this text I usually have 600MHz
    Attached File  Screen shot 2012-09-18 at 10.19.45.png   39.79KB   157 downloads
    But when I play a game my CPU go to maximum speed and the temperature becomes increasing. After 10 minutes it overrun 100C and the computers switched off. :surprised: because of overheating control.
    So I set PLimitDict=2 and now I never have CPU speed larger then 2000. PStates with 2200 and 2400 is prohibited.
    Now I can play the game infinitely long without overheating.

    NOTE! I encounter strange thing that Core2Quad works faster if PLimitDict=1. I can't explain this. So test different settings.
  • Generating C-states.
    			<key>UseSystemIO</key>
    			<false/>
    			<key>EnableC7</key>
    			<false/>
    			<key>EnableC6</key>
    			<true/>
    			<key>EnableC4</key>
    			<false/>
    			<key>EnableC2</key>
    			<false/>
    			<key>C3Latency</key>
    			<string>0x03E7</string>
    
    This technology is not proved to be fine. The settings above looks to be the best.

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


#17
ErmaC

ErmaC

    127.0.0.1

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

Patching DSDT to get Sleep working


Performed automatically if you set some non-zero mask. Yes, the mask will be applied also on your loaded custom DSDT.

As fas as I know the DSDT collection by tony is far from perfect.

But there is another question "How to correct PlatformPlugin to get Sleep and Speedstep working".

This is not related to Clover but I have to tell about to avoid questions "Why my sleep/restart/shutdown/speedstep is not working?"


When you choose how your hackintosh will be named, for example, MacBook4,1, then you may look a predefined setting for this model in the system

/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/MacBook4_1.plist

And you have what to do with this plist. See red text - a text to insert or correct.



  • <key>ConfigArray</key>
    <array>
    <dict>
    <key>WWEN</key>
    <true/>
    <key>model</key>
    <string>MacBook4,1</string>
    <key>restart-action</key>
    <dict>
    <key>cpu-p-state</key>
    <integer>0</integer>
    </dict>
    </dict>
    </array>


    This setting will be useful for Sleep, Restart and Shutdown. Check you have problems with one of them.

  • <key>CtrlLoopArray</key>
    <array>
    <dict>
    <key>Description</key>
    <string>SMC_CPU_Control_Loop</string>

    <key>PLimitDict</key>
    <dict>
    <key>MacBook4,1</key>
    <integer>0</integer>
    </dict>

    This is the PLimitDict that we already consider when generating P-state. You should check if it is present else you will not SpeedStep and will not have sleep working.

  • <key>CStateDict</key>
    <dict>
    <key>MacBook4,1</key>
    <string>CSD3</string>
    <key>CSD3</key>
    <dict>
    <key>C6</key>
    <dict>
    <key>enable</key>
    <true/>
    Remove this section at all!
    Having this section I see CPU always at maximum frequency.

  • <key>StepDataDict</key>
    <dict>
    <key>MacPro3,1</key>
    <string>SP1</string>
    <key>SP1</key>
    <data>
    qAYAAAAAAAEAAgQAACEAAAACAAAB//8A/wD/AP8A/wD/AAYAAP8BAAP/A...

This influence on how many steps will be in work.
See thread by flAked with all results. MSRDumper
For example I successfully insert this data from MacPro3,1 to plist for iMac12,1 and got better result.

Edited by .: ErmaC :., 18 September 2012 - 11:37 AM.
Update


#18
Slice

Slice

    InsanelyMacaholic

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

CPU settings and geekbench


No magics. Geekbench measures real CPU speed multiply by core count. Be sure your speedstep setting permit your CPU goes with higher speed, or may be with turbo.

GeekBenchScore = MaxCpuFrequency * CoreCount + RamFrequency/2 * RamChannels;

CoreCount = {2 for i3}, {3 for i5}, {4 for i7}

RamChannels = 2 if you place similar DIMMs into same colors slots. Else 1 channel.

I also saw a system with 3 channels memory.

Example: i3-2120@3.3GHz, 2channels RAM@1333MHz

GeekBench = 3300 * 2 + 1333/2 * 2 = 7933

The follow set of parameters

	<key>CPU</key>
	<dict>
		<key>BusSpeedkHz</key>
		<integer>133330</integer>
		<key>QPI</key>
		<integer>4800</integer>
		<key>Type</key>
		<string>0x0201</string>
	</dict>

Turbo = Yes if you CPU is supporting such technology which is not always true. See, for example
http://ark.intel.com...-Cache-3_30-GHz
Attached File  no_turbo.png   38.97KB   1389 downloads
Turbo property can't be changed. It may present or not. See boot.log

ProcessorType = 0x0201 This value corresponds to Yonah CPU. Do not set this key until something new will be found! Clover knows all CPU from Celeron M up to Haswell and can set this value automatically!

CpuFrequencyMHz = 3200 This value may be used if you don't know your BusSpeed. But this method is not preferable.

BusSpeedkHz = 133330 This value must be in the range 90 - 400MHz. Some manufacture like to write into DMI the value x4, for example at some ASUS motherboard I saw 1600MHz. This is wrong.
Common rule is follow
CPUspeed = BusSpeed * Multiplier
DMI contains a value in MHz that is not exact. A better value may be written in kHz.
My examples:
133MHz -> 133330kHz
100MHz -> 99790kHz
The system will run smoother and the system clock will be more accurate.

QPI = 4800 This value appears to be in SystemProfiler as Bus Speed or Processor Bus Speed or Something else in the future system. It is mirage for Apple. Let it be. Write some value here at your will. It is cosmetic and will not influence on somewhat.
Attached File  ProcessorSpeed.png   42.94KB   1413 downloads
 


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


#19
ErmaC

ErmaC

    127.0.0.1

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

ACPI tables loading

Rules are follow

  • Look into your boot.log to find an OEM name of your computer
    In my case
    running on Inspiron 1525
    ... with board 0U990C
    So I can use names "Inspiron 1525" or "0U990C".
  • All ACPI tables may be placed in the follow places
    /EFI/CLOVER/acpi/patched - common place
    /EFI/CLOVER/OEM/0U990C/acpi/patched - high priority. If the place exists then will not search in common place.
  • DSDT.aml may be placed at the root of booted partition. So different OSes may have different DSDT.
  • A full set of possible ACPI tables that can be loaded (with current revision 676)
    CHAR16* ACPInames[NUM_TABLES] = {
    L"SSDT.aml",
    L"SSDT-0.aml",
    L"SSDT-1.aml",
    L"SSDT-2.aml",
    L"SSDT-3.aml",
    L"SSDT-4.aml",
    L"SSDT-5.aml",
    L"SSDT-6.aml",
    L"SSDT-7.aml",
    L"SSDT-8.aml",
    L"SSDT-9.aml",
    L"APIC.aml",
    L"BOOT.aml",
    L"ECDT.aml",
    L"HPET.aml",
    L"MCFG.aml",
    L"SLIC.aml",
    L"SLIT.aml",
    L"SRAT.aml",
    L"UEFI.aml"
    };
  • Loading new ACPI table you probably want also to drop OEM tables.
    DropOemSSDT Yes
    DropAPIC No
    DropDMAR Yes
    DropMCFG No
    DropHPET No
    DropECDT No
  • DropDMAR=Yes is a key to resolve the problem with VT-d panics.

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


#20
ErmaC

ErmaC

    127.0.0.1

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

DSDTmini


This is universal DSDT for any Intel-based computer... Not working for now.
As we have good autopatch OEM DSDT this technology is no more needed to be developed.

Edited by ErmaC, 19 May 2013 - 03:33 PM.
Update






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


7 user(s) are reading this topic

4 members, 3 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