Popular Post ErmaC Posted September 14, 2012 Popular Post Share Posted September 14, 2012 Slice is glad to present a new EFI bootloader. CLOVERNow 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.https://sourceforge.net/projects/cloverefiboot/?source=directory There is a WIKI http://clover-wiki.zetam.org/ Main features: Boot into 10.4 - 10.8 OSX, Windows EFI and Linux EFI Boot into LegacyOS (WindowsXP, Linux, DOS) by their bootsectors This is EFI bootloader so it provides RuntimeServices for OS that impossible for Legacy Bootloaders Mostly Clover do automatic detection of hardware and set all properties by default. But user can change them by config.plist with Clover you may restart into other OS from Startup Disk prefPane Config autodetect by OEM product name UUID written into config.plist will be the same as in OS Autopatch OemDSDT for working OSX SMBIOS will be corrected to standard 2.6 ACPI will be corrected to standard 4.0. Custom DSDT will be loaded from booted partition or from EFI folder MADT table may be corrected to resolve problem with NMI on some hardware ACPI tables loading (SSDT-xx, APIC, BOOT, SLIC, SLIT, SRAT, UEFI...) Correctly set PowerProfile for laptops (notebooks), desktops, workstations Customizable RestartFix sleep/wake fixes PCIRootUID value (0,1) for device-injection for those who can't edit DSDT Graphics Properties Injector for ATI, NVidia and Intel for wide range of supported cards. Also customizable. Custom EDID for non-DDC monitors USB fix (LegacyOff, Ownership, Builtin, clock-id) up to USB 3.0 HDA injector, HDMI fix. Ethernet builtin injector CPU turbo P- and C-states generator PLimitDict and UnderVoltage for CPU Speedstep patch kernel on the fly for unsupported CPU like Atom and Ivy Bridge patch kexts inside kernelcache for unsupported hardware Extra kexts loading Security mode for FireWire Default boot after timeout Customizable GUI: themes support, own icons, fonts. There is a possibility to implement national languages and fonts. F1 - multilingual help Saving boot.log in OS and preboot.log from GUI by typing F2 Save original (OEM) ACPI tables by pressing F4 Test DSDT patching with F5 Save videoBIOS into EFI/misc by pressing F6 Saving screenshots from GUI typing F10 CD/DVD eject by F12 and refresh menu after CD insertion If you have a question please provide outputs from DarwinDumper (formed from Trauma tool). Thanks Trauma!Continued by blackosx and STLVNUB. Post#2 CloverGrower - create Clover by yourself Post#3 Downloads Post#4 Installation of the bootloader Post#5 How to do UEFI boot Post#6 How to use - common words Post#7 Calculator for Automatic DSDT fix Post#8 Instructions for GraphicsInjector Post#9 ATIConnector patching Post#10 Any kexts patching with some Samples Post#11 CustomEDID Post#12 Hiding unnecessary menu entries Post#13 Instruction for DSDT corrections to do DeviceInjection works Post#14 Development Post#15 Themes Post#16 About kexts injection Post#17 Instructions for P- and C-states generator Post#18 Patching DSDT to get Sleep working Post#19 CPU settings and geekbench Post#20 ACPI tables loading Post#21 DSDTmini Post#22 Custom SMBios Post#23 F.A.Q. Post#24 iCloudFix Post#25 Using mouse. Post#26 How to make orange icons to be metallic Post#27 How to make software RAID (by Magnifico) Post#28 How to modify InstallESD.dmg (by shiecldk) Post#29 Config.plist settings Post#30 Using extra kexts and skipping kernelcache Post#31 Choosing EFI drivers Post#32 Configuration files Post#33 Automatic config.plist creating Post#34 Custom DSDT patches Post#35 How to do sleep/wake working with UEFI BOOT Post#36 DeviceID substitution (FakeID) Post#37 Using Custom OS Icons Post#38 Hibernation Post#39 Floating regions Post#41 Property List Editor Post#42 Blocking Bad Kext Post#43 AAPL,slot-name Post#44 FakeCPUID for unsupported CPU Post#45 Multiple Boot Options - to write into UEFI BIOS boot menu Post#46 How to install Windows UEFI Post#47 How to speedup Clover boot Post#48 Info.plist patching Post#49 Arbitrary device injection Post#50 Non-Standard Legacy Boot Files Post#51 Reboot to Windows UEFI from Mac OSX Post#52 Deprecated Features, part 1 Post#53 Using UDK2018 Post#54 Device Properties Post#55 Scalable themes Post#56 How to search Clover mistakes (bisection) Post#57 Deprecated features, part 2 Post#58 Programming Code Style ----------------- Slice: I edited all posts in the thread to correspond to actual Clover revision. Please install Clover at least 2652 and use new instructions. 47 1 Link to comment Share on other sites More sharing options...
Slice Posted September 15, 2012 Share Posted September 15, 2012 DOWNLOADS Installer 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 homehttp://sourceforge.n.../cloverefiboot/CD ISO bootable with Clover Many previous revisions can be found here http://tools.inmac.org/clover/ Utility to install Clover from Windows http://cvad-mac.narod.ru/bootdiskutilityexe/ Additional foreign file system drivers for EFI.FS drivers.zip Manuals: Russian language offline manual: Клевер цвета хаки 3262.pdf Клевер цвета хаки 4871.pdf 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 filesTextsToTranslate.zip and upload the result at this thread. For some old UEFI BIOSes you need LegacyRegion driver that absent in regular Clover package Take it here LegacyRegion2Dxe.efi-IA32.zip LegacyRegion2Dxe.efi-X64.zip 19 Link to comment Share on other sites More sharing options...
Slice Posted September 15, 2012 Share Posted September 15, 2012 (edited) INSTALLATION Using the installer Start installer. Press "Continue" and "OK' as many times as needed. Choose a partition to install Customize what to install Choose themes. Default one is black-green by blackosx. C l8r themes preview. Manual Installation Installation ( Use fdisk440 instead of fdisk ) ============================================== Install fdisk440 first : ------------------------ sudo cp fdisk440 /usr/sbin/fdisk440 fdisk440 - The Chameleon team modded the Apple's fdisk to only update the first 440 bytes in the MBR by adjusting MBR_CODE_SIZE to 0x1B8. The modded fdisk was renamed fdisk440 by Tamás Kosárszky on 2010-02-19 to avoid confusion between Apple's fdisk and the Chameleon fdisk. This utility resolves Windows sleep problem. Chameleon modded sources with explanations is here http://forge.voodooprojects.org/p/chameleonApplications/source/tree/HEAD/trunk/fdisk.tproj Files Install : -------------------- - Install clover to the partition's root directory: cp BOOT / cp -r EFI / sudo cp -v etc/* /etc/ Active partition installation ----------------------------- Suppose that your partition is on /dev/disk0s2 HFS+ - Install boot0 to the MBR: sudo fdisk440 -f boot0 -u -y /dev/rdisk0 - Install boot1h2 to the partition's bootsector: sudo dd if=boot1h2 of=/dev/rdisk0s2 Attention! My boot1h2 differs from Chameleon's one and will works with both Clover and Chameleon. [b]You can't use Chameleon's boot1h with Clover-64.[/b] Use boot1h2 to boot a bootloaders boot1, boot2, boot3... Note: dd can't change boot sector of the system partition. You should start from other partition EFI Partition Install (FAT32) or to USB stick drive (disk1s1). --------------------------------- Suppose that your installation is on /dev/disk0s1 - Prepare EFI partition: sudo mkdir /Volumes/EFI sudo mount_msdos /dev/disk0s1 /Volumes/EFI/ - Install clover to the EFI partition's root directory: cp boot /Volumes/EFI/ sudo umount -f /Volumes/EFI/ - Install boot0 to the MBR: sudo fdisk440 -f boot0 -u -y /dev/rdisk0 - Install boot1f32alt to the partition's bootsector: sudo fdisk440 -f boot0 -u -y /dev/rdisk0 dd if=/dev/rdisk0s1 count=1 bs=512 of=origbs cp boot1f32alt newbs dd if=origbs of=newbs skip=3 seek=3 bs=1 count=87 conv=notrunc dd if=newbs of=/dev/rdisk0s1 count=1 bs=512 cp BOOT /Volumes/EFI/ Enter fdisk and set EFI partitoin as active partition. fdisk -e /dev/rdisk0 >f 1 >w >q USB stick installation ----------------------- Do not reformat factory formatted stick! sudo fdisk440 -f boot0 -u -y /dev/rdisk1 dd if=/dev/rdisk1s1 count=1 bs=512 of=origbs cp boot1f32alt newbs dd if=origbs of=newbs skip=3 seek=3 bs=1 count=87 conv=notrunc dd if=newbs of=/dev/rdisk1s1 count=1 bs=512 cp BOOT /Volumes/Kingston/ cp -r EFI /Volumes/Kingston/ 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 November 24, 2012 by Slice Update 8 Link to comment Share on other sites More sharing options...
Slice Posted September 15, 2012 Share Posted September 15, 2012 (edited) 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, then2. HFSPlus.efi, OsxFatBinaryDrv-64.efi, OsxLowMemFixDrv-64.efiand then if this does not work then3. 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.efiThis 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.efiThis 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.efiThis 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 May 14, 2014 by Slice Update 5 Link to comment Share on other sites More sharing options...
ErmaC Posted September 15, 2012 Author Share Posted September 15, 2012 (edited) 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->LoginUEFI BIOS: UEFI->CLOVERX64.EFI-> ... systemThe file CLOVERX64.EFI located at /Volumes/YourHDD/EFI/CLOVER/ is a graphical menu to choose a system to boot (CloverGUI).As you see there is a help calling by F1 key.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 Now you can boot a system. Just press "Enter". Or you may press 'Space" and choose other method to boot Edited May 14, 2014 by Slice Update 6 Link to comment Share on other sites More sharing options...
ErmaC Posted September 15, 2012 Author Share Posted September 15, 2012 (edited) 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 CvadIf 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. Edited May 14, 2014 by Slice Update 3 Link to comment Share on other sites More sharing options...
ErmaC Posted September 15, 2012 Author Share Posted September 15, 2012 (edited) 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_100000For 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/AMDThis 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.EDIDIn 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,DualLinkFor 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 May 14, 2014 by Slice Update 5 Link to comment Share on other sites More sharing options...
ErmaC Posted September 16, 2012 Author Share Posted September 16, 2012 (edited) 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 ati-personality.pl.0.11.zip2. 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.plistYou 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 IOPCIMatch0x68981002 0x68991002 0x68E01002 0x68E11002 0x68D81002 0x68C01002 0x68C11002 0x68D91002 0x68B21002 0x68B81002 0x68B01002 0x68B11002 0x68A01002 0x68A11002 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 All that we need is senseid for each output.DVI-D: 06VGA: 01HDMI: 03So replace the digits in the chosen connectors info. (red digits).First digits (green) at every line are connector's type0004 - DP0008 - HDMI1000 - VGAMust be0400 - DVI-D0200 - LCD - for notebooks0000000 00 04 00 00 04 03 00 00 00 01 00 00 12 04 01 050000010 00 08 00 00 04 02 00 00 00 01 00 00 11 02 04 030000020 10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 02Corrected table:0000000 04 00 00 00 04 03 00 00 00 01 00 00 12 04 01 060000010 00 08 00 00 04 02 00 00 00 01 00 00 11 02 04 030000020 10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 01I can also exchange 2nd and 3rd lines0000000 04 00 00 00 04 03 00 00 00 01 00 00 12 04 01 060000010 10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 010000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 04 035. 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>040000000403000000010000120401061000000010000000000100000000000100080000040200000001000011020403</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>Inject</key> <dict> <key>ATI</key> <true/> </dict> <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 060000010 10 00 00 00 10 00 00 00 00 01 00 00 00 00 01 010000020 00 08 00 00 04 02 00 00 00 01 00 00 11 02 02 03If 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 January 30, 2015 by Slice Update 9 Link to comment Share on other sites More sharing options...
Slice Posted September 16, 2012 Share Posted September 16, 2012 (edited) 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 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 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 Patch for AppleIntelCPUPowerManagement because of ASUS BIOS break MSR register 0xE2 Original topic by flAked <key>AsusAICPUPM</key> <string>Yes</string> Patch for AppleRTC preventing the CMOS reset after restart.Lion 10.7 Original topic by rayapMountain Lion 10.8 Original topic by rayap <key>AppleRTC</key> <string>Yes</string> Other known patches that is able to do by this method TRIM support. Original topic by scrax timeout on AHCI by bcc9Waiting for root device when kernel cache used; only with some disks +FIX Intel HD3000 connectors patch by bcc9 <dict> <key>Name</key> <string>AppleIntelSNBGraphicsFB</string> <key>Find</key> <data>AQIEABAHAAAQBwAABQMAAAIAAAAwAAAAAgUAAAAEAAAHAAAAAwQAAAAEAAAJAAAABAYAAAAEAAAJAAAA</data> <key>Replace</key> <data>AQIDABAHAAAQBwAAAwQAAAAEAAAJAAAAAgUAAAAEAAAHAAAABAYAAAAEAAAJAAAAAAAAAAAAAAAAAAAA</data> </dict> AppleAHCIport to change from External to Internal. #496 Original topic in Russian. AppleTyMCEDriver patch to use MacPro5,1 name. http://www.applelife...652#post-319876 <key>Name</key> <string>AppleTyMCEDriver</string> <key>Find</key> <data>cgoATWFjUHJvNCwxAE1hY1BybzUsMQBY</data> <key>Replace</key> <data>cgoAAAAAAAAAAAAAAAAAAAAAAAAAAABY</data> Edited May 27, 2013 by Slice New format for rev1717+ 5 Link to comment Share on other sites More sharing options...
ErmaC Posted September 16, 2012 Author Share Posted September 16, 2012 (edited) 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. 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) 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 September 17, 2012 by Slice Update 5 Link to comment Share on other sites More sharing options...
Slice Posted September 16, 2012 Share Posted September 16, 2012 (edited) 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.WasbecameA full set of possible hiding as followSince 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 February 25, 2015 by buoo Update Link to comment Share on other sites More sharing options...
ErmaC Posted September 17, 2012 Author Share Posted September 17, 2012 (edited) 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 requirementIn 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. Butas 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 toDevice (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 ONUSB: 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.plistedit the plist, for example you know your PinConfigurationThen convert the plist back to hexgfxutil -i xml -o hex dp.plist new_dp.hexAnd 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. GraphicInject has new syntax since Clover rev 2000+ <key>Inject</key> <dict> <key>ATI</key> <true/> <key>Intel</key> <false/> <key>NVidia</key> <false/> </dict> There are separate settings for different vendors. Edited August 20, 2015 by Slice Update 1 Link to comment Share on other sites More sharing options...
ErmaC Posted September 17, 2012 Author Share Posted September 17, 2012 (edited) Development You may use GloverGrover or CloverGroverPro. Here is instructions for manual development. EDITED 26.08.2015: edk2 revisions go to undefined direction. We want to use revision 18198. Else you may exclude "-r 19198" if you know how to overcome incompatibilities. cd ~ mkdir src cd src svn co -r 18198 https://svn.code.sf.net/p/edk2/code/trunk/edk2 edk2 cd edk2 svn co svn://svn.code.sf.net/p/cloverefiboot/code/ Clover make -C BaseTools/Source/C cd Clover ./buildgettext.sh ./buildgcc-4.9.sh ./buildnasm.sh cd .. ./edksetup.sh cp -R Clover/Patches_for_EDK2/* ./ ./ebuild.sh ./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 use Apple's driver you may 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 mtoc.NEW.zip Edited August 26, 2015 by Slice Update for rev 3000+ 5 Link to comment Share on other sites More sharing options...
Slice Posted September 17, 2012 Share Posted September 17, 2012 (edited) About kexts injection ©dmazarWhen 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: 'xxxxx' 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 "Boot Mac OS X with extra kexts (skips cache)" (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 loadingSo, 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=NoKextsIf 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. Kext injection in ElCapitan will work since rev 3259. Edited August 26, 2015 by Slice Update 3 Link to comment Share on other sites More sharing options...
ErmaC Posted September 18, 2012 Author Share Posted September 18, 2012 (edited) 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 thisScope (\_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. (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 600MHzBut 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. 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 May 14, 2014 by Slice Update 4 Link to comment Share on other sites More sharing options...
ErmaC Posted September 18, 2012 Author Share Posted September 18, 2012 (edited) 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. ConfigArray WWEN model MacBook4,1 restart-action cpu-p-state 0 This setting will be useful for Sleep, Restart and Shutdown. Check you have problems with one of them. CtrlLoopArray Description SMC_CPU_Control_Loop… PLimitDict MacBook4,1 0 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. CStateDictMacBook4,1CSD3CSD3C6enableRemove this section at all!Having this section I see CPU always at maximum frequency. StepDataDict MacPro3,1 SP1 SP1 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 September 18, 2012 by .: ErmaC :. Update 4 Link to comment Share on other sites More sharing options...
Slice Posted September 18, 2012 Share Posted September 18, 2012 (edited) 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 examplehttp://ark.intel.com...-Cache-3_30-GHzTurbo 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 will be used in System Profiler and About window. No more.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 followCPUspeed = BusSpeed * MultiplierDMI contains a value in MHz that is not exact. A better value may be written in kHz.My examples:133MHz -> 133330kHz100MHz -> 99790kHzThe 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. Edited August 20, 2015 by Slice Update 3 Link to comment Share on other sites More sharing options...
ErmaC Posted September 18, 2012 Author Share Posted September 18, 2012 (edited) ACPI tables loadingRules are follow Look into your boot.log to find an OEM name of your computerIn my caserunning on Inspiron 1525 ... with board 0U990CSo 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" };Since rev3000+ there is no more such list.You have to choice:- or all *aml files will be loaded from the /patched folder except dsdt*.aml files. Loading order is not guaranted- or you have to write into config.plist your own list what to load <key>ACPI</key> <dict> <key>SortedOrder</key> <array> <string>SSDT-2.aml</string> <string>SSDT-1.aml</string> <string>SSDT-5.aml</string> <string>SSDT-6.aml</string> </array> </dict> In this case only these tables will be loaded. Loading new ACPI table you probably want also to drop OEM 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> DropDMAR=Yes is a key to resolve the problem with VT-d panics. Edited February 2, 2015 by Slice Update for rev 3000+ 1 Link to comment Share on other sites More sharing options...
ErmaC Posted September 18, 2012 Author Share Posted September 18, 2012 (edited) 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 May 19, 2013 by ErmaC Update Link to comment Share on other sites More sharing options...
Slice Posted September 18, 2012 Share Posted September 18, 2012 (edited) 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.plistTo be filled ....Example n.1 From smbios.plist (Chameleon) <?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>SMbiosdate</key> <string>08/03/10</string> <key>SMbiosvendor</key> <string>Apple Inc.</string> <key>SMbiosversion</key> <string>MP31.88Z.006C.B05.0903051113</string> <key>SMboardproduct</key> <string>Mac-F2268DC8</string> <key>SMfamily</key> <string>MacPro</string> <key>SMmanufacturer</key> <string>Apple Inc.</string> <key>SMproductname</key> <string>MacPro3,1</string> <key>SMserial</key> <string>ElEvEnChArS</string> <key>SMsystemversion</key> <string>1.3</string> </dict> </plist> to confing.plist (Clover).... <key>SMBIOS</key> <dict> <key>BiosVendor</key> <string>Apple Inc.</string> <key>BiosVersion</key> <string>MP31.88Z.006C.B05.0802291410</string> <key>BiosReleaseDate</key> <string>08/03/10</string> <key>Manufacturer</key> <string>Apple Inc.</string> <key>ProductName</key> <string>MacPro3,1</string> <key>Version</key> <string>1.3</string> <key>Family</key> <string>MacPro</string> <key>SerialNumber</key> <string>ElEvEnChArS</string> <key>SmUUID</key> <string>00000000-0000-X000-X000-XXXXXXXXXXXX</string> <key>BoardManufacturer</key> <string>Apple Inc.</string> <key>BoardSerialNumber</key> <string>C02032101R5DC771H</string> <key>Board-ID</key> <string>Mac-F42C88C8</string> <key>BoardVersion</key> <string>Proto1</string> <key>Mobile</key> <string>No</string> <key>LocationInChassis</key> <string>Part Component</string> <key>ChassisManufacturer</key> <string>Apple Inc.</string> <key>ChassisAssetTag</key> <string>P6TDeluxeV1</string> <key>FirmwareFeatures</key> <string>0xX000XXXX</string> </dict> .... Edited May 14, 2014 by Slice Update 6 Link to comment Share on other sites More sharing options...
ErmaC Posted September 18, 2012 Author Share Posted September 18, 2012 (edited) 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 .... so I invite anyone to write simple questions and answers that we can include in the Clover F.A.Q. post. Edited November 27, 2012 by ErmaC Update Link to comment Share on other sites More sharing options...
Slice Posted September 18, 2012 Share Posted September 18, 2012 (edited) 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 February 24, 2013 by Slice Update 4 Link to comment Share on other sites More sharing options...
ErmaC Posted September 18, 2012 Author Share Posted September 18, 2012 (edited) ... reserved Edited November 28, 2012 by ErmaC Update 1 Link to comment Share on other sites More sharing options...
Slice Posted October 9, 2012 Share Posted October 9, 2012 (edited) 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/CLOVERdrivers64PS2MouseDxe.efiUSBMouseDxe.efior 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.pngInstaller 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 May 14, 2014 by Slice Update 2 Link to comment Share on other sites More sharing options...
Slice Posted November 20, 2012 Share Posted November 20, 2012 (edited) 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> </array> </dict> It works! Drives are metallic, DVD player works. Edited January 28, 2015 by Slice Update 2 Link to comment Share on other sites More sharing options...
Recommended Posts