Popular Post pokenguyen Posted May 14, 2014 Popular Post Share Posted May 14, 2014 ALL IN ONE GUIDES FOR HACKINTOSH Hi friends! Here are all the guides that I've written based on my experience with the help of my friends. Some are based on existing guides, but I have redefined to suit more system. Most of the guides are about Mavericks. I'm looking forward to receive your feedback to make them better. Thank you! Pre installation The right hardware for your HackintoshChecking your hardware before installing OS XInstalling Mavericks/Yosemite using Chameleon (Legacy BIOS)Chameleon’s common bootflag Installing Mavericks using Clover (UEFI) Installing Yosemite using Clover (UEFI)How to boot into Clover UEFI Ozmosis modded BIOS Repository Post installation Install Chameleon bootloader – speedstep and installing kexts (Legacy BIOS)Install Clover bootloader – speedstep and installing kexts (UEFI)Install Clover Legacy bootloader (Legacy BIOS) How to check your CPU’s speedstep QE/CI for 1st Generation Intel HD Graphics Request for AppleHDA patching How to update OS X on your Hackintosh Dualboot Windows and OS X using ChameleonDualboot Windows and OS X using Clover UEFI Sync time between Windows and OS XHow to fix iCloud/iMessage/Facetime on your Hackintosh DSDT/SSDT: Basic knowledgeDSDT/SSDT: Edit using MacIASLDSDT/SSDT: Common DSDT patchesDSDT/SSDT: Enable battery by patching your DSDT using pre-made patches ( Laptop-exclusive ) Clover Config: Tweaking Clover menu entriesTroubleshooting Boot0: error while using ChameleonIssues while booting into OS XTouchpad/Keyboard won’t work after using Hackintosh for a while ( Laptop-exclusive )Advance techniques Convert MBR to GPT/Windows Legacy to Windows UEFI How to patch AppleHDA Everything you need to know about NVRAM How to patch framebuffer AMD GPUPatched Framebuffer Repository DSDT/SSDT: Everything you need to know SSDTDSDT/SSDT: Disable dedicated GPU to extend battery life (Laptop-exclusive)DSDT/SSDT: Brightness fix for Intel HD3000/4000/4400/4600 (Laptop exclusive) Clover Config: Convert your patched AppleHDA to Clover patching-on-the-flyDownload links Hackintosh Vietnam ToolChameleon bootloaderClover bootloader ******Special thanks to vusun123, who helped me completing and translating from original Vietnamese guides to English guides******* 43 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 14, 2014 Author Share Posted May 14, 2014 The right hardware for your Hackintosh Here are some useful information when buying a laptop or building a Hackintosh, or probably been asking yourself “Is my PC fully support or what ?”. The GPU is considered the most important part of the Hackintosh ( if it can’t work you can’t see the screen or the animation’s laggy as hell ). CPU All CPUs starting from Intel Core 2 Duo up to now (Haswell) is supported, except for Pentium Haswell, it’s reported as not compatible with Mavericks. Be careful when buying these CPUs. Most AMD CPUs are supported thanks to the modded kernel allowing AMD CPUs to run OS X, more info can be found here. Note that Intel Pentium D and some unsupported Intel CPU can use this AMD kernel as well. Integrated GPU (iGPU) With Mavericks, these iGPUs are native support: Intel HD Graphics on 1st Generation Intel Core i Processor (Arrandale, need some kexts modding ) Intel HD 3000 on 2nd Generation Intel Core i Processor ( Sandy Bridge ) Intel HD 4000 on 3rd Generation Intel Core i Processor ( Ivy Bridge ) Intel HD 4400 (laptop only) /4600/5000/Iris on 4th Generation Intel Core i Processor ( Haswell ) Please note that desktop HD4000 and above only works with QE/CI if you connect by DVI/HDMI/DP ports, no QE/CI on VGA port! These iGPUs are not supported by OS X Mavericks: Intel MHD4500/X3100 and earlier Intel HD Graphics on 2nd Generation Intel Pentium/Celeron and later Intel HD 2000 Intel HD 2500 (Rarely works) Intel HD 4400 Desktop (Rarely works) Discrete GPU Please note that laptops with AMD Switchable Graphics or nVidia Optimus with both Intel HD + AMD/nVidia card will only be able to use Intel HD, unless you have the option to turn off Intel HD in BIOS. These GPUs are supported (the list may be incompleted or not correct at some points, please inform me about the GPU that works for you but not on the list or the one not works): nVidia 7000 Series nVidia 8000 Series nVidia 9000 Series nVidia GT 200 Series nVidia GT 400 Series nVidia GT 500 Series nVidia GT 600 Series nVidia GT 700 Series ( stay away from the GTX 750 and GTX 750Ti which use the new Maxwell architecture which hasn’t been confirmed working or not ) nVidia GTX Titan ( the Z version hasn’t been tested yet ) nVidia Quadro 4000 nVidia GT 520M, 540M and 630M ( laptop with discrete GPUs ) nVidia GTX 675M, 760M, 765M, 770M nVidia NVS 5200M nVidia Quadro 1000M, 2000M AMD 4000 Series AMD 5000 Series AMD 6600, 6700, 6800 Series AMD 7750, 7770, 7870, 7950, 7970 AMD R7-200 R9-200 Series ( supported on OS X 10.10) AMD 4650M, 5470M, 7650M These GPUs are not supported (the list may be incompleted or not correct at some points , please inform me about the GPU that didn’t works for you but not on the list or the one works): AMD 6400 Series AMD 6500 Series AMD 6900 Series Note that laptops that use CPU ES (Engineering Sample) or use Samsung panel can’t enable QE/CI. RAM The minimum requirements for Mavericks is 2Gb of RAM, 4GB is enough to run things smoothly. If you want to run virtual machines or multiple softwares, 8GB of RAM or more is recommended. AudioMost audio codecs as of now is supported through VoodooHDA, but the sound can be not so nice comparing to Windows. We can patch AppleHDA to overcome VoodooHDA’s weakness (need advance techniques). Most of codecs that can be patched, except some stubborn chipset. If you need high quality audio, it's best to buy a Mac-compatible DAC or soundcard. Ethernet Most ethernet chips are supported except for these: Realtek 8169 (Random kernel panic) Ethernet Killer (Only the Atheros Killer E2200 is usable) Wireless card A pain for laptop users is that most built-in wireless cards aren’t supported. You can always find and replace your unsupported one. Here is the list of supported and unsupported card ( Yellow means work with WifiInjector kext, Green means work OOB, red means unsupported, HMB cards are cards also have Bluetooth )Or you can use a wifi dongle which is supported by OS X, but it also has downsides like battery draining, weak signal or causing sleep issues. 16 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 14, 2014 Author Share Posted May 14, 2014 Checking your hardware before installing OS X On OS XUse DPCI Manager ( inside Hackintosh Vietnam Tool ) to check the hardware’s info PCI List tab: List of all PCI devices on the PC. You can check the ethernet/wireless card’s name and Vendor/Device ID On Windows First of all, install all drivers for your PC. Go to Device Manager, double-click the device you need to check, click Details, choose Hardware IDs to check the Vendor/Device ID. If the name isn’t showing, you can go to http://www.pcidatabase.com/ to check it. For example:Audio: IDT (111D) 7605 Wireless card: Atheros (168C) 9280 (002A) Touchpad: Synaptics (SYN) 9 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 15, 2014 Author Share Posted May 15, 2014 Installing Mavericks/Yosemite using Chameleon (Legacy BIOS) You need a Mavericks installer for Mac, it can be downloaded from Appstore for free. Note that with Haswell CPUs you need a 10.9 installer or above. This guide is done under OS X, if you don’t own a Mac then you can always create a virtual machine. Create a Mavericks/Yosemite USB Installer Step 1: You need a 8GB USB stick, format it with Disk Utility with the following options: Partition: 1 or 2 partitions Format: Mac OS Extended ( Journaled ) for the partition that contains the installer Options: Master Boot Record (MBR) Hit Apply Step 2: Right click the “Install OS X Mavericks.app” or "Install OS X Yosemite.app" you got from Appstore, click Show Package Contents, open Contents, open SharedSupport, double click “InstallESD.dmg” to mount the image file. Step 3: Mount the hidden “BaseSystem.dmg” with this command using Terminal: open /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg The image will be mounted as “OS X Base System” Step 4: Pick the “Restore” tab in Disk Utility, drag and drop the “OS X Base System” to “Source”, drag and drop the installer partition you create earlier to “Destination”, hit “Restore” Step 5a (Mavericks): After the process is done, go to your USB’s “OS X Base System” partition ( don’t mistake the partition here, you can highlight and press Spacebar to check the size of the partition ), go to System/Installation and delete the alias “Packages”, then go to “OS X Install ESD” partition, copy the “Packages” to the folder System/Installation of you USB Download Pacifist. Go to the folder System/Installation/Packages of your USB, right click the BaseSystemBinaries.pkg and Open With Pacifist. After Pacifist has done loading the file, locate “mach_kernel”, drag and drop it to the root of your USB’s installer partition. Step 5b (Yosemite): Change the USB name to "Yosemite", open terminal and type these command: cp "/Volumes/OS X Install ESD/BaseSystem.dmg" /Volumes/Yosemite/ cp -a "/Volumes/OS X Install ESD/BaseSystem.chunklist" /Volumes/Yosemite/ rm /Volumes/Yosemite/System/Installation/Packages cp -a /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/Yosemite/System/Installation/Packages mkdir -f /Volumes/Yosemite/System/Library/Kernels Download kernel for 10.10 here and copy it to /System/Library/Kernels on Yosemite USB. Step 6: Download the latest Chameleon here, open it and target the installer partition, install Chameleon. Step 7: Download this Extra.zip, unzip and copy the Extra folder to the root of your USB installer partition. Open Chameleon Wizard ( can be found in Hackintosh Vietnam Tool ), select “SMBios” tab, hit Edit At the “Select” section, click it and a drop down list of all Macs and its equivalent specs appears. Pick a SMBios that is suitable for your PC, hit Save as and save it to the folder Extra of your USB installer partition. Step 8: Haswell CPUs need a modded kernel, unzip and copy it to the root of your USB’s installer partition with Mavericks, or /System/Library/Kernels in USB with Yosemite.AMD CPUs need a modded kernel exclusively for them, unzip and copy it to the root of your USB’s installer partition. Step 9: By default OS X can only be installed to a GPT style drive. If you want to install to a MBR style drive, you need to patch the installer to allows installing to MBR style drive. Download MBR patch for Mavericks or MBR patch for Yosemite and unzip, copy OSInstall.mpkg and overwrite the file in this folder of the USB: /System/installation/Packages copy OSInstall and overwrite the file in this folder of the USB: /System/Library/PrivateFrameworks/Install.framework/Frameworks/OSInstall.framework/Versions/A/ Installing Mavericks/Yosemite Step 1: Boot from the USB installer, highlight the OS X Base System partition, enter the right bootflag Step 2: If the bootflag is correct, you should arrive at the installation windows. Hit Spacebar if any notifications about bluetooth keyboard/mouse appears. Select menu Utilities, select Disk Utility Step 3: Select the partition you want to install OS X to, switch to Erase tab, do the following options: Format: Mac OS Extended (Journaled) Name: Pick anything you want Hit Erase Step 4: After the formatting process is done, close Disk Utility, hit Continue, hit Agree. Select the formatted partition then hit Install Step 5: For Haswell and AMD CPUs, you need to copy the modded kernel over to the installed partition. Reboot into the installer, select menu Utilities, select Terminal and enter this command ( replace Hackintosh with your OS X partition ) Mavericks: cp /mach_kernel "/Volumes/Hacintosh/mach_kernel" Yosemite: cp /System/Library/Kernels/kernel "/Volumes/Hacintosh/System/Library/Kernels/kernel" Reboot into your newly installed OS X partition with the bootflag you just used to enter OS X 13 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 15, 2014 Author Share Posted May 15, 2014 Chameleon’s common bootflag When booting into the USB installer or the newly installed OS X partition, you will encounter random errors. You have to enter the correct bootflag to be able to boot. The two most common flags are: -v -f Depends on your GPU, you will have to enter many other flags. Here’s the list, note that you should use the latest Chameleon bootloader: -f: Ignore all cache and force OS X to reload the kexts inside System/Library/Extensions and Extra/Extensions. Remove this flag after you have installed all the additional kexts needed.UseKernelCache=No: Disable kernel cache.-v: Show verbose screen when booting or shutting down, useful for debugging errors.-x: Boot into safe mode, won’t load graphics kexts, can overcome the GPU related error on some PC.dart=0: Avoid conflict when vt-d is enabled in BIOS. Most Dell laptops need this.cpus=1: Avoid lapic kernel panic which causes auto restart. Some HP laptops and AMD CPUs need this.GraphicsEnabler=Yes/No: If Yes, Chameleon will auto-detect the GPU and inject the needed information into OS X in order to load the right kexts; if No, Chameleon will inject the GPU’s original information, use this when Yes isn’t working.InjectIntel-ig=x: x is the id of Intel’s iGPU, use to inject ig-platform-id for HD 4000/4400/4600/5000/Iris.IntelAzulFB=x: x ranged from 0 to 15, inject available ig-platform-id from Chameleon for HD4400/4600/5000/Iris.IntelCapriFB=x: x ranged from 0 to 11, inject available ig-platform-id from Chameleon for HD 4000.EnableDualLink=Yes/No: Use to inject Dual Link information for Intel’s iGPU. Use No for 1366x768 resolution; use Yes for 1600x900 resolution or higher.AtiConfig=xxxxxx: Set the personality for your AMD card. It's required to get some AMD card working.PCIRootUID=0/1: Some PCs set the default UID in the DSDT as “Name (UID, <value>)” which can cause black screen when booting ( especially PCs use discrete GPU ). Changing the value will help fixing the problem.npci=0x2000/0x3000: Use it ì you're stuck at PCI Configuration begins. kext-dev-mode=1: Enable loading unsigned kexts in /System/Library/Extensions in 10.10.nv_disable=1: Disable nVidia driver, use it if you have problem with nVidia graphics card in booting.nvda_drv=1: Use nVidia Web Driver instead of vanilla kexts. 1st Generation Intel HD Graphics -f -v -f -v -x Intel HD 30001366x768 resolution: -f -v GraphicsEnabler=Yes EnableDualLink=No -f -v GraphicsEnabler=No EnableDualLink=No 1600x900 resolution or higher: -f -v GraphicsEnabler=Yes EnableDualLink=Yes -f -v GraphicsEnabler=No EnableDualLink=Yes Intel HD 4000Desktop: -f -v GraphicsEnabler=Yes IntelCapriFB=10 Laptop with 1366x768 resolution: -f -v GraphicsEnabler=Yes IntelCapriFB=3 Laptop with 1600x900 resolution or higher: -f -v GraphicsEnabler=Yes IntelCapriFB=4 Intel HD 4400/4600Desktop: -f -v GraphicsEnabler=Yes IntelAzulFB=10 Laptop: -f -v GraphicsEnabler=Yes IntelAzulFB=12 Intel HD 5000/Iris: -f -v GraphicsEnabler=Yes InjectIntel-ig=08000931 nVidia - AMD: -f -v GraphicsEnabler=Yes -f -v GraphicsEnabler=No -f -v GraphicsEnabler=Yes PCIRootUID=0 -f -v GraphicsEnabler=No PCIRootUID=0 -f -v GraphicsEnabler=Yes PCIRootUID=1 -f -v GraphicsEnabler=No PCIRootUID=1 Sandy-E/Ivy-E: npci=0x2000 AMD CPU: cpus=1 cpus=1 npci=0x2000 9 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 15, 2014 Author Share Posted May 15, 2014 Installing Mavericks using Clover (UEFI) You need a Mavericks installer for Mac, it can be downloaded from Appstore for free. Note that with Haswell CPUs you need a 10.9 installer or above. This guide is done under OS X, if you don’t own a Mac then you can always create a virtual machine.Create a Mavericks USB InstallerStep 1: You need a 8GB USB stick, format it with Disk Utility with the following options: Partition: 2 partitions Partition 1: name it Clover, Format MS-DOS (FAT), size larger than 300MB Partition 2: name it Untitled, Format Mac OS Extended ( Journaled ), size larger than 6.5GB Options: Master Boot Record (MBR) Hit Apply Step 2: Download this Clover.zip, unzip and copy the EFI folder to the root of the CLOVER partition. Use Hackintosh Vietnam Tool to create the suitable config.plist for your PC: - CPU: Select your CPU - Graphics: Select your graphics - SSDT: Generate Install to current HDD, then copy the generated config.plist on the desktop IN YOUR HDD to the folder EFI\Clover of the CLOVER partition. At this point you have 2 choices of creating the installerChoice 1 (will create a Recovery partition after installation, note that some PCs can hang on the white screen if using this choice )Step 3: Download OS X Mavericks from the Appstore, check if the “Install OS X Mavericks.app” is in the folder Application. Open Terminal and run this command ( note that Untitled is a HFS+ partition ) sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ OS\ X\ Mavericks.app --nointeraction Choice 2 ( Won’t create the Recovery partition after installation )Step 3: If you don’t have the “Install OS X Mavericks.app”, only the InstallESD.dmg, follow step 2 to step 6 from the Chameleon guideInstalling MavericksStep 1: Boot from the USB installer, select “Boot OS X Install from Install OS X Mavericks”Step 2: If the config.plist is correct, you should arrive at the installation windows. Hit Spacebar if any notifications about bluetooth keyboard/mouse appears. Select menu Utilities, select Disk UtilityStep 3: Select the partition you want to install OS X to, switch to Erase tab, do the following options: Format: Mac OS Extended (Journaled) Name: Pick anything you want Hit Erase Step 4: After the formatting process is done, close Disk Utility, hit Continue, hit Agree. Select the formatted partition then hit Install Note- If you follow choice 1, the installation process will be stuck at “1 second remaining” for a while, don’t panic. It will automatically restart and you will have to reboot into the installer again in order to begin the REAL installation process.- If you follow choice 2, you will simply be installing OS X just like Chameleon.Step 5: After installation process is done, reboot into the USB Installer and boot into your newly created OS X partition. 12 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 15, 2014 Author Share Posted May 15, 2014 How to boot into Clover UEFI Different from OS and legacy bootloader, Clover UEFI doesn’t use boot record on the drive or an active partition. UEFI will scan for the 1st FAT32 partition and search for the .efi file which contains the bootloader to execute. That’s why most UEFI system needs the drive to be formatted to GPT style, because there will always be an EFI partition in FAT32 sitting at the beginning of the drive. Each systems has its rules of searching the .efi file.Turn off Secure BootThis must be turned off in the BIOS, or else Clover can’t boot.1/ Boot from Bootx64.efiThis is the simplest and most accurate way. The system will execute EFI\BOOT\BOOTX64.efi in the 1st EFI or FAT32 partition. When installing Clover UEFI you already had this file. And this is also the least successful method.2/ Boot from EFI fileSome HP laptops or other brands have this choice. You can choose an efi file to boot from by entering boot option menu, “Boot from EFI” file then browse the efi file to executeNote that this method doesn’t save the path, so it can only be used when booting from an USB3/ Add Boot optionMost systems allow adding boot option in BIOS/UEFI. For example: 4/ Boot from Bootmgfw.efiThis method is very popular on many PCs. The system will search for the Windows’s UEFI bootloader in the following path:/EFI/Microsoft/Boot/bootmgfw.efiYou can create your own /EFI/Microsoft/Boot on the EFI partition, copy the file CloverX64.efi in the folder /EFI/Clover to the folder above and rename to bootmgfw.efi. If you already had Windows UEFI installed, you need to rename the existing bootmgfw.efi to bootmgfw-orig.efi before doing the above step. 11 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 15, 2014 Author Share Posted May 15, 2014 Install Chameleon bootloader – speedstep and kexts (Legacy BIOS) Install Chameleon bootloaderMethod 1 Open Hackintosh Vietnam Tool and select the following options in the “Chameleon” section: Install Chameleon: install Chameleon onto the current OS X partition Config: Select a suitable configuration for your GPU SMBios: Select a suitable SMBios for your CPU based on the descriptions below Method 2Step 1: Download the latest Chameleon bootloader, open the package, keep hitting next until the option “Customize” appear, select it and choose the following options: Standard: Install Chameleon bootloader FileNVRAM: Save nvram information on the drive, enable iMessage/Facetime Kernel Patcher: Only select this when you have lapic kernel panic when booting Step 2: Open Chameleon Wizard ( can be found in Hackintosh Vietnam Tool ), switch to the tab “org.chameleon.boot”, select all the bootflags needed for your PC, then hit Save as and save it to the folder Extra of your OS X partition.Step 3: Switch to the tab “SMBios”, select Edit, select the suitable SMBios in the “Premade SMBios” section, randomize the serial number, then hit Save as and save it to the folder Extra of your OS X partition.Speedstep To avoid unnessesary errors caused by kexts, it’s best to make your CPU run smoothly right after installing OS X. You need: These vanilla kexts: AppleIntelCPUPowerManagement, AppleACPIPlatforms inside System/Library/Extensions. For Haswell systems you also need vanilla mach_kernel on your OS X partition Remove all CPU Power Management Disable related kexts like NullCPUPowerManagement, Disabler If you follow the previous instruction, you have met all the conditions. Depends on your CPU, you will have to make your own configuration. Use Chameleon Wizard to open the plist file inside the Extra folder and do the following things ( Checked means True, unchecked means False )Core 2 Duo/ 1st Generation Core i3/i5/i7 (Arrandale) Org.chameleon.boot.plist: DropSSDT=False GeneratePStates=True GenerateCStates=True SMBios.plist: Select the suitable SMBios for your PC. In this case, iMac 11,x for desktop and Macbook Pro 6,x for laptop2nd and 3rd Generation Pentium (Sandy Bridge/Ivy Bridge) Org.chameleon.boot.plist: DropSSDT=True GeneratePStates=True GenerateCStates=True Open Hackintosh Vietnam Tool and select the following options: Chameleon > SMBios: Select the suitable SMBios for your Sandy Bridge/Ivy Bridge system Kexts > CPU Power Management > Patch AICPUPM: Patch AppleIntelCPUPowerManagement.kext to work with locked wrmsr BIOS. If you had already patch your BIOS to unlock MSR0xE2, this is not for you 2nd and 3rd Generation Core i3/i5/i7 (Sandy Bridge/Ivy Bridge) Org.chameleon.boot.plist: DropSSDT=True GeneratePStates=False GenerateCStates=False Open Hackintosh Vietnam Tool and select the following options: Chameleon > SMBios: Select the suitable SMBios for your Sandy Bridge/Ivy Bridge system Kexts > CPU Power Management > Patch AICPUPM: Patch AppleIntelCPUPowerManagement.kext to work with locked wrmsr BIOS. If you had already patch your BIOS to unlock MSR0xE2, this is not for you Tools > SSDT Generator: Create ssdt.aml in the Extra folder that is suitable for your CPU 4th Generation Pentium (Haswell) Org.chameleon.boot.plist: DropSSDT=True GeneratePStates=True GenerateCStates=True Open Hackintosh Vietnam Tool and select the following options: Chameleon > SMBios: Select the suitable SMBios for your Sandy Bridge/Ivy Bridge system Kexts > CPU Power Management > Patch mach_kernel: Patch mach_kernel to work with locked wrmsr BIOS. If you had already patch your BIOS to unlock MSR0xE2, this is not for you 4th Generation Core i3/i5/i7 (Haswell) Org.chameleon.boot.plist: DropSSDT=True GeneratePStates=False GenerateCStates=False Open Hackintosh Vietnam Tool and select the following options: Chameleon > SMBios: Select the suitable SMBios for your Sandy Bridge/Ivy Bridge system Kexts > CPU Power Management > Patch mach_kernel: Patch mach_kernel to work with locked wrmsr BIOS. If you had already patch your BIOS to unlock MSR0xE2, this is not for you Tools > SSDT Generator: Create ssdt.aml in the Extra folder that is suitable for your CPU Sandy Bridge-E/Ivy Bridge-E (LGA socket 2011) + X79 motherboard Org.chameleon.boot.plist: DropSSDT=True GeneratePStates=False GenerateCStates=False Open Hackintosh Vietnam Tool and select the following options: Chameleon > SMBios: Select the suitable SMBios for your Sandy Bridge/Ivy Bridge system Kexts > CPU Power Management > Patch AICPUPM: Patch AppleIntelCPUPowerManagement.kext to work with locked wrmsr BIOS. If you had already patch your BIOS to unlock MSR0xE2, this is not for you Kexts > CPU Power Management > Enable Sandy Bridge-E/Ivy Bridge-E PM: Support speedstep for these CPUs Tools > SSDT Generator: Create ssdt.aml in the Extra folder that is suitable for your CPU Installing Kexts To make everything run smoothly on your hackintosh, you need to install suitable kexts ( the same as drivers on Windows ). As of now Hackintosh Vietnam Tool has a lot of kexts for many devices. You just need to open the package and select the proper kexts for your PC in the “Kexts” section.Note that only select what your PC needs, read the descriptions to know what you are installing.Select all will probably corrupt your machine!!! System FakeSMC: Emulate SMC keys on OS X, read all info about sensors in your PC. The most important kext on a hackintosh Patch AppleRTC: Patch AppleRTC.kext to prevent CMOS reset when rebooting CPU Power Management Patch mach_kernel: Prevent kernel restart due to locked MSR0xE2 on Haswell systems Patch AICPUPM: Patch AppleIntelCPUPowerManagement.kext to work with locked wrmsr BIOS Enable Sandy Bridge-E/Ivy Bridge-E PM: Support speedstep for Sandy Bridge-E/Ivy Bridge-E CPUs NullCPUPowerManagement: Disable CPU Management, meaning disable speedstep DisableTurboBoostBattery: Exclusively for laptops with Turbo Boost technology, turns off turbo boost when not plugging in a power adapter to extend battery life BatteryACPIBatteryManager: Show info about battery. Some laptops need to patch DSDT first to make this worksNetwork WifiInjector: Inject supported wireless and bluetooth cards’s info into OS X’s vanilla kexts BCM94352 5Ghz: Patch kext to support 5Ghz for BCM94352 BTFirmwareUploader: Enable supported bluetooth cards NullEthernet: Emulate ethernet port on some laptops without one, enable iCloud services Realtek/Broadcom/Atheros/Intel Ethernet: Select depends on your PC Graphics ACPIBacklight: Enable brightness levels and smooth animation. Laptop exclusive and needs DSDT patching HD 3000 VGA port: Enable VGA port for HD 3000, but may disable other DP/HDMI ports HD 4000 HDMI/DP port: Enable HDMI and DP ports for HD 4000 Sound VoodooHDA: Universal solution for almost all PCs, but sound quality is low and may cause unknown issues Patch AppleHDA: Patch AppleHDA based on some some systems, required vanilla AppleHDA.kext in System/Library/Extensions and inject audio ID in the DSDT Trackpad and Keyboard: Select the suitable one for your PC USB 3.0: Select if you have 3.0 USB port If your device isn’t in the tool, you can search for the kext and use Kext Wizard or Kext Utility ( can be found in Hackintosh Vietnam Tool’s “Tools” section ) to install it. Note that you can’t install the kext just by copying it to System/Library/Extensions.Reboot You have to finish all 3 steps above before attempting to reboot, or else you will face kernel panic or other problems. After successfully rebooted into OS X, you can check speedstep and other devices. 8 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 15, 2014 Author Share Posted May 15, 2014 Install Clover bootloader – speedstep and kexts (UEFI) Install Clover bootloader and setup SpeedstepStep 1: Download the latest Clover bootloader, open the package, keep hitting next until the option “Customize” appear, select it and choose the following options: Install for UEFI booting only: Install Clover UEFI onto the EFI partition (it must be the first partition of the drive aka disk0s1 as OS X read it) Drivers64UEFI > EmuVariableUEFI-64.efi: Emulate NVRAM for OS X, this may not be needed on your system if you have native NVRAM ( you can try by not select this option ) Drivers64UEFI > OSXAptioFixDrv-64.efi: Fix memory issues on most UEFI systems, this may not be needed on your system ( you can try by not select this option ) Install RC Scripts on targeted volume: Install RC Script onto OS X, use to run commands inside NVRAM when booting and save NVRAM when shutting down Install Clover Preference Pane: Use to tweak NVRAM information, comes with Clover updater Hit Continue and install Clover Step 2: Download HFSPlus.efi.zip, unzip and copy the file to EFI/Clover/drivers64UEFI of the EFI partition, then delete VboxHFS-64.efi.Step 3: Open Hackintosh Vietnam Tool select the following options:For Core i3/i5/i7/Xeon: Clover Config: Generate config.plist that is suitable for your PC. Note that you have to select Custom in the SSDT section. The config.plist file will be created on the desktop Tools > SSDT Generator: Generate ssdt.aml suitable for your CPU inside folder Extra of the OS X partition After the process is done, copy config.plist to EFI/Clover and /Extra/ssdt.aml to EFI/Clover/ACPI/patched of the EFI partitionFor Pentium: Clover Config: Generate config.plist that is suitable for your PC. Note that you have to select Generate in the SSDT section. The config.plist file will be created on the desktop After the process is done, copy config.plist to EFI/Clover of the EFI partitionInstalling KextsTo make everything run smoothly on your hackintosh, you need to install suitable kexts ( the same as drivers on Windows ). As of now Hackintosh Vietnam Tool has a lot of kexts for many devices. You just need to open the package and select the proper kexts for your PC in the “Kexts” section. Note that only select what your PC needs, read the descriptions to know what you are installing.Select all will probably corrupt your machine!!!System FakeSMC: Emulate SMC keys on OS X, read all info about sensors in your PC. The most important kext on a hackintosh Patch AppleRTC: Patch AppleRTC.kext to prevent CMOS reset when rebooting CPU Power Management Patch mach_kernel: Prevent kernel restart due to locked MSR0xE2 on Haswell systems Patch AICPUPM: Patch AppleIntelCPUPowerManagement.kext to work with locked wrmsr BIOS Enable Sandy Bridge-E/Ivy Bridge-E PM: Support speedstep for Sandy Bridge-E/Ivy Bridge-E CPUs NullCPUPowerManagement: Disable CPU Management, meaning disable speedstep DisableTurboBoostBattery: Exclusively for laptops with Turbo Boost technology, turns off turbo boost when not plugging in a power adapter to extend battery life Battery ACPIBatteryManager: Show info about battery. Some laptops need to patch DSDT first to make this works Network WifiInjector: Inject supported wireless and bluetooth cards’s info into OS X’s vanilla kexts BCM94352 5Ghz: Patch kext to support 5Ghz for BCM94352 BTFirmwareUploader: Enable supported bluetooth cards NullEthernet: Emulate ethernet port on some laptops without one, enable iCloud services Realtek/Broadcom/Atheros/Intel Ethernet: Select depends on your PC Graphics ACPIBacklight: Enable brightness levels and smooth animation. Laptop exclusive and needs DSDT patching HD 3000 VGA port: Enable VGA port for HD 3000, but may disable other DP/HDMI ports HD 4000 HDMI/DP port: Enable HDMI and DP ports for HD 4000 Sound VoodooHDA: Universal solution for almost all PCs, but sound quality is low and may cause unknown issues Patch AppleHDA: Patch AppleHDA based on some some systems, required vanilla AppleHDA.kext in System/Library/Extensions and inject audio ID in the DSDT Trackpad and Keyboard: Select the suitable one for your PCUSB 3.0: Select if you have 3.0 USB portFixes > Hibernate > Disable Hibernate: Turn off Hibernation mode, a must when using CloverIf your device isn’t in the tool, you can search for the kext and use Kext Wizard or Kext Utility ( can be found in Hackintosh Vietnam Tool’s “Tools” section ) to install it. Note that you can’t install the kext just by copying it to System/Library/Extensions.RebootYou have to finish all 2 steps above before attempting to reboot, or else you will face kernel panic or other problems. After successfully rebooted into OS X, you can check speedstep and other devices. 8 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 15, 2014 Author Share Posted May 15, 2014 Dualboot Windows and OS X using Chameleon Install Windows after installing OS X Step 1: Open Disk Utility, create a MS-DOS FAT partition for Windows Step 2: Boot into Windows installer, when arrive at the install screen select Repair your computer Step 3: Open Command Prompt and type these commands: diskpart select disk 0 list partition (show a list of partitions on the drive, remember the number of the partition that you are supposed to install Windows to) select partition x (x is the partition for Windows) format fs=ntfs label="Windows" quick active Step 4: Reboot into Windows installer again, install Windows as asual Step 5: Boot into Windows, run Command Prompt as Administrator and type these commands: diskpart select disk 0 list partition (show a list of partitions on the drive, remember the number of the OS X partition) select partition x (x is the OS X partition) active Now you are ready to dualboot both OS Install OS X after installing Windows Step 1: Create a partition for OS X Step 2: Run Command Prompt as Administrator and type these commands: diskpart select disk 0 list partition (show a list of partitions on the drive, keep in mind the number of the partition that you are supposed to install OS X to) select partition x (x is the OS X partition) active Step 3: Follow the instruction in the guide to install OS X 8 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 15, 2014 Author Share Posted May 15, 2014 Dualboot Windows and OS X using Clover After installing Windows UEFI and OS X using Clover UEFI, there will be options to boot into OS X or Windows. On many systems, Windows UEFI will take over Clover UEFI’s boot order. To fix this: Method 1 Enter the BIOS, add /EFI/Clover/Cloverx64.efi to the Boot option, make it as top priority of the boot sequence Method 2 Use an USB with Clover UEFI and boot into OS X, do the following things: Use Clover Configurator to mount the EFI partition ( Extra > Mount EFI ) Rename bootmgfw.efi in /EFI/Microsoft/Boot to bootmgfw-orig.efi Copy Cloverx64.efi in /EFI/Clover to /EFI/Microsoft/Boot and rename it bootmgfw.efi 9 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 16, 2014 Author Share Posted May 16, 2014 How to update OS X on your Hackintosh When updating OS X, make sure you backup these files: AppleHDA (patched, not vanilla) Patched graphic kexts for extended ports (if you patched them) Clover bootloader: Update OS X from the Appstore or use the combo update from Apple site After the update process is done, you can repatch AppleHDA or overwrite your old AppleHDA for sound (If you patch AppleHDA on-the-fly then the sound will be back right after updating) If you have patched the graphic kexts for extended ports, please repatch it Open Hackintosh Vietnam Tool, Fixes > Hibernate mode > Disable hibernate. This will disable hibernation after updating, or else you can't wake your PC after sleep Chameleon bootloader: Ivy Bridge and earlier: Before updating: install NullCPUPowerManagement.kext ( inside Hackintosh Vietnam Tool ) Update OS X from the Appstore or use the combo update from Apple site After updating: Open Hackintosh Vietnam Tool, Kexts > CPU Power Management > Patch AICPUPM. This will patch your AppleIntelCPUPowerManagement.kext After the update process is done, you can repatch AppleHDA or overwrite your old AppleHDA for sound If you have patched the graphic kexts for extended ports, please repatch it Delete NullCPUPowerManagement.kext inside System/Library/Extensions Rebuild cache using Kext Wizard or Kext Utility, then restart Haswell systems: Before updating: Download a pre-patched mach_kernel for the equivalent version of OS X, unzip and rename it to mach_kernel2, copy it to the root of your OS X partition Update OS X from the Appstore or use the combo update from Apple site After updating: Boot into your OS X partition with the flag “mach_kernel2” Open Hackintosh Vietnam Tool, Kexts > CPU Power Management > Patch mach_kernel. This will patch mach_kernel Repatch AppleHDA or overwrite your old AppleHDA for sound If you have patched the graphic kexts for extended ports, please repatch it Rebuild cache using Kext Wizard or Kext Utility, then restart For users who use Mac Pro SMBios (in addition to above) Before updating: Backup your SMBios.plist Change your current SMBios to Mac Mini or iMac Update OS X from the Appstore or use the combo update from Apple site After updating: Put your old SMBios.plist back Delete AppleTyMCEDriver.kext inside System/Library/Extensions 4 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 19, 2014 Author Share Posted May 19, 2014 How to check your CPU’s speedstep DPCI Manager Open DPCI Manager, click P States, enter your password and hit OK at any errors prompted, then you can check your CPU’s speedstep. You will have to wait for a few minutes to see all possible steps, >3 is fine. Piker's AppleCPUPowerManagementInfo This is a kext exists solely for the purpose of checking speedstep, you can run the kext without having to install it by following these steps: Step 1: Download the kext here, unzip and put the kext on your desktop Step 2: Repair the kext’s permission and load it by type these commands in Terminal: cd ~/Desktop/ sudo chown -R root:wheel ./AppleIntelCPUPowerManagementInfo.kext sudo chmod -R 755 ./AppleIntelCPUPowerManagementInfo.kext sudo kextload ./AppleIntelCPUPowerManagementInfo.kext Step 3: Open Console, select All Messages and type AICPUPM in the Filter box, wait for a few minutes Step 4: When the steps won’t increase any further, unload the kext by typing this command in Terminal: sudo kextunload AppleIntelCPUPowerManagementInfo.kext 5 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 19, 2014 Author Share Posted May 19, 2014 Sync time between Windows and OS X After dualbooting or multibooting successfully, the time information between OS X and Windows will not match each other. To fix this: Boot into OS X, set the timezone and time correctly Boot into Windows, do not attempt to update time by using “Adjust Date/Time”. Open Registry Editor Locate HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation. Right click in the blank space of the right pane, select New > DWORD (32-bit) value, name it RealTimeIsUniversal. Double click the newly created file and change the value to 1. Save and reboot into OS X Wait 1-2 minutes, then reboot into Windows. Now the time information between the 2 OS is matched 4 Link to comment Share on other sites More sharing options...
pokenguyen Posted May 19, 2014 Author Share Posted May 19, 2014 How to fix iCloud/iMessage/Facetime on your Hackintosh In order for these services to work, you need to do the following things: 1. Working NVRAM For Chameleon: You need FileNVRAM.dylib installed in /Extra/modules. Download it here. Note that there are 2 versions: 1.1.2 and 1.1.3, you should try both. For Clover UEFI: To check for NVRAM http://www.insanelymac.com/forum/topic/298027-guide-aio-guides-for-hackintosh/page-2?do=findComment&comment=2029552 2. Set your Ethernet to en0 You need an ethernet device that is recognized by OS X and set it to en0. Use DPCI Manager to check it ( inside Hackintosh Vietnam Tool ) By default all network devices ( such as ethernet, wireless, smartphone’s Hotspot ), will be set to en0, en1, en2, … by which device is recognized first. You need to reset the network configuration in order to set ethernet to en0: Go to /Library/Preferences/SystemConfiguration/ and delete these files/folders: CaptiveNetworkSupport Com.apple.airport.preferences.plist Com.apple.eapolclient.configuration.plist NetworkInterfaces.plist Go to System Preferences > Network, select all available connections and hit the Minus button to delete them, then hit Apply. Reboot Go to System Preferences > Network, hit the Plus button to add the devices back, but be sure to add Ethernet first Open DPCI Manager to check if the Ethernet is set to en0 Note that is you are using Macbook Air SMBios, setting Wireless card to en0 will work just like setting Ethernet to en0 3. Use Correct MLB Information: http://www.insanelymac.com/forum/topic/303073-pattern-of-mlb-main-logic-board/ 11 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 8, 2014 Author Share Posted June 8, 2014 DSDT/SSDT: Basic knowledge What is DSDT/SSDT? The Advanced Configuration and Power Interface (ACPI) defines a large number of tables that provide the interface between an ACPI-compliant operating system and system firmware. These allow description of system hardware in a platform-independent manner in ACPI Machine Language (AML). The DSDT (Differentiated System Description Table) is the main table in the ACPI part of a computer's BIOS, defines most of main devices in system. The SSDT (Secondary System Description Table) has same structure with DSDT, but it's usually smaller and defines some specific devices. By default, bootloaders will get all OEM tables from BIOS/UEFI and transfer it to OSes. Why do we have to patch DSDT/SSDT on hackintosh? Unlike Windows or Linux, OS X has an incomplete ACPI implementation which supports only a subset of DSDT in Mac models only. On Hackintosh system, some devices are not defined compatible with OS X, and they can't work correctly. Patching the DSDT allows the user to better support their hardware.Most bootloaders allow user to replace the OEM table in BIOS/UEFI by tables defined in .aml files. Dumping original DSDT/SSDT from your systemBefore patching your DSDT/SSDT you need to get them under the AML format ( ACPI Machine Language ). There are many ways to get them:Windows:Run RW-Everything, go to Access > ACPI Tables, select DSDT tab, Save as Binary, choose All File (*.*) in “Save as type” section add .aml extension to the file.Repeat with all remaining SSDT tables LinuxRun these commands: cd ~/Desktop sudo apt-get update sudo apt-get install acpidump sudo acpidump > acpidump.out sudo acpixtract -a acpidump.out Linux will dump all available DSDT/SSDT tables to your Desktop. You just need to look for the DSDT and SSDTs, rename the extension from .dat to .aml (AML) and save it onto your USB.OS X (Only Clover bootloader)At Clover entry menu, hit F4, then boot into OS X, all available ACPI table will be dumped into /EFI/Clover/ACPI/origin/Decompile original DSDT/SSDTAll DSDT and SSDT tables can’t be edited directly, we need to recompile it to a .dsl text format in order to edit. Since DSDT and SSDTs have a connection with each others, you need to have all of them to recompileDownload latest iasl ( Intel’s compiler and decoder ), unzip and copy the iasl file to Desktop,copy all DSDT/SSDTs in .aml extension to Desktop. Open Terminal and run these commands: cd ~/Desktop ./iasl -da DSDT.aml SSDT*.aml All DSDT/SSDTs will be decompiled in .dsl text format.Note that if the above commands gives you error, it’s because of some SSDT tables have duplicate names. Check the log and delete the SSDT which gives the error.Add edited DSDT/SSDTs to the bootloaderAfter editing and compiling it from .dsl to .aml, you can get the bootloader to use them by putting them in the right directory:Chameleon: /ExtraClover: /EFI/Clover/ACPI/patchedNote: If you have multiple SSDT that is needed to be loaded, rename them as: SSDT.aml, SSDT-1.aml, SSDT-2.aml, … and so on.Bootloader will “drop” all original DSDT from the system to load the edited ones when booting up. For dropping SSDT, you need to select DropSSDT=True ( Chameleon ) or Drop OEM SSDT=True ( Clover ) 15 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 8, 2014 Author Share Posted June 8, 2014 DSDT/SSDT: Edit with MacIASL After dumping and decompiling DSDT/SSDTs to .dsl text format, you need to use MacIASL to edit them and compile them into .aml format. MacIASL’s main features: Automatically dumping and decompiling system’s ACPI tables: File > New from ACPI > choose table Show bugs in tables with Compile button Apply patches Compile into .aml format: File > Save as > File format: ACPI Machine Language Binary Adding DSDT repos: There are many DSDT patch repos on the internet, you just need to add its address to MacIASL in order to access them ( require internet connection ). To add a repo, select MacIASL > Preferences > Source > click the “ + “ button, add the name and URL to the repo. Here are some useful repos: PJALM Desktop patch: http://pjalm.info/repos/asus/ http://pjalm.info/repos/gigabyte/ http://pjalm.info/repos/msi/ http://pjalm.info/repos/asrock/ http://pjalm.info/repos/zotac/ http://pjalm.info/repos/intel6/ http://pjalm.info/repos/intel7/ http://pjalm.info/repos/general/ http://pjalm.info/repos/graphics/ HP Probook patch: http://raw.github.com/RehabMan/HP-ProBook-4x30s-DSDT-Patch/master Laptop patch: http://raw.github.com/RehabMan/Laptop-DSDT-Patch/master Fix errors after decompiling You may get errors when compiling the decompiled DSDT/SSDT DSL files. This happens because of these: Use the incorrect ACPI version to compile Some systems use ACPI 4.0 while some use ACPI 5.0 which leads to errors ( i.e use ACPI 5.0 to compile a 4.0 DSDT ). To determine which ACPI version is compatible with your DSDT, try compiling with both, then use the one that give you less errors. To switch ACPI 4.0/5.0 with MacIASL, go to Preferences and select the version you want, then compile again. Missing information when compiling They're common problem on systems with multiple SSDTs , especially Haswell systems. A DSDT/SSDT file can use the Object/Methods which are defined in other DSDT/SSDT files, and decompiler can't recognize right function structure if you only decompile 1 file at a time. You have to decompile dsdt/ssdt with reference to other dsdt/ssdt files. Follow this guide to decompile them Some common DSDT/SSDT errors Syntax errors Some syntax errors like _PLD, TNOT, FPED, etc… can be patched by using patches in Rehabman’s DSDT repo Incorrect syntax identification Some syntax can’t be identified when compiling, because they do not exist in any DSDT/SSDT, which can cause some errors related to function structure: In the above image, the error is in those lines: Return (MDBG) Arg0 Why does this happen? The correct structure for MDBG is a method with 1 argument, but it's not defined in any .aml files, so the IASL just GUESS it as a VARIABLE instead of METHOD. We can fix it by changing it to correct structure: Return (MDBG(Arg0)) However, you can just remove both lines and it's still fine, and even better! Why? As I explained, the cause of the error is that the MDBG method is found in any DSDT/SSDT, and any call to that MDBG in real time will FAIL, which leads to functions containing MDBG will FAIL too! Incorrect OperationRegion structure This error is the result of above errors, which lead to wrong decompiled structure of OperationRegion: We have to reconstruct it: OperationRegion (VAR1, VAR2, VAR3, VAR4) Field (VAR1, VAR2, VAR3, VAR4) { .... } For example, to fix the error in above image: OperationRegion (HRPE, SystemMemory, \_GPE.MMTB, 0x04) Field (HRPE, DWordAcc, Lock, Preserve) { VDPC, 32 } Forget about warnings and remarks, they won't affect much. 9 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 10, 2014 Author Share Posted June 10, 2014 DSDT/SSDT: Some popular DSDT patches Here are some popular patches that can be applied on most systems:Requirements:- Extract and decompile OEM DSDT- Fix all errors by MacIASL- Add RehabMan Laptop patch RepoTo apply one patch, click patch button in MacIASL, select the corresponding patches on the left column then press Apply. You may need to use Compile button to check for errors.Intel Graphics Patches [2.01] -> [2.07]Inject ig-platform-id, dual-link, hda-gfx to Intel HD graphics devices in DSDT. After using the patch, you don't need to use boot flag at boot anymore.Basic brightness fix [2.09]Add basic brightness device to system.Advanced Brightness fix [2.10] -> [2.11]These are brightness fixes for HD3000/HD4000/HD4400/HD4600, and use with RehabMan's ACPIBacklight.kext. It fixes the uneven brightness problem of those Intel HD, enable smooth transition, fade effect when turn on/off display.Before applying those fixes, you have to rename GFX0 device to IGPU.Rename GFX0 to IGPU [2.12] -> [2.13]Rename IntelHD device in DSDT from GFX0, VID to standard OS X name: IGPU. It will load AGPM (Apple Graphics Power Management) to enable power management and speedstep for those onboard graphics.Note that those DSDT patches sometimes can rename wrong external graphics devices and create compile errors. If you have this problem, try to identify Intel HD device in DSDT and rename them manually. GFX0 or VID for Intel HD is usually direct child of PCI device, while external graphics devices is usually grandchild of PCI0.For example: \_SB_.PCI0.GFX0.TCHE -> IntelHD, rename to \_SB.PCI0.IGPU.TCHE \_SB_.PCI0.RP05.PEGP.GFX0 -> Not IntelHD, don't rename \_SB_.PCI0.PEGP.GFX0 -> Not IntelHD, don't rename USB (EHCI) Patches [3.1] -> [3.4]Inject apple power information to USB 2.0 and USB 3.0 ports in DSDT, it will help OS X to manage power of those devices, and can fix sleep problems related to USB devices.IRQ Fix [7.01]Remove IRQ in some devices to prevent IRQ conflicting, which can cause some devices like FireWire, USB, Audio not working.SMBUS [7.02]Name smbus device to SMBUS, fix some warning message.RTC FIx [7.03]Reduce the length of RTC device, prevent OS X writing values to device. It can fix CMOS reset problem on sleep, shutdown, restart.Shutdown Fix v2 [7.05]Remove all original call statements when you shutdown, it can help some system to shutdown completely.HPET Fix [7.06]Ensure all functions in HPET devices to return value successfully, it can help some system which can't load HPET properly in OS X.OS Check Fix [7.07]Some system limit the function of devices if the current booting OS X is old. The fix will make your system think OS X is Windows Vista, and enable some advanced funtions.AC Adapter Fix [7.08]Help loading AppleACPIACAdapter to manage AC.Add MCHC [7.09]Same as SMBUS patchFix _WAK Arg0 v2 [7.11]Set Arg0 = 3 when calling _WAK function. It can help fixing unstable wake from sleep in OS X.Fix PNOT/PPNT [7.13]PNOT/PPNT functions can contains some CPU call in OEM SSDT. If those OEM SSDT tables are dropped by bootloader, it can make those PNOT/PPNT fail, and functions calling PNOT/PPNT fail too. The patch will clear the content of those PNOT/PPNT and help other function operate correctly.Add IMEI [7.14]Same as SMBUS patchAudio Layout 12 [8.1]Set layout id to Audio device to load patched AppleHDA. You can replace 12 number in the patch to your desired layout id before applying the patch.For example, default is layout 12 "layout-id", Buffer() { 12, 0x00, 0x00, 0x00 },\n If you want to use layout 28: "layout-id", Buffer() { 28, 0x00, 0x00, 0x00 },\n 8 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 11, 2014 Author Share Posted June 11, 2014 Boot0: error while using Chameleon This is the most common error after installing legacy bootloader like Chameleon on HDD which use Advanced Format 4 ( SSD doesn’t have this problem ). To solve this: Download boot1h.zip, unzip it and copy boot1h file to the OS X USB Installer Boot into the installer, open Disk Utility and unmount the OS X partition ( important ) Close Disk Utility, open Terminal and type diskutil list In the Terminal window, there will be a list of all partitions available on the PC. Check and remember your OS X partition’s identifier Depend on your OS X partition’s identifier, type these: cd / dd if=boot1h of=/dev/identifier For example: dd if=boot1h of=/dev/disk0s2 Reboot and the error will be gone 3 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 11, 2014 Author Share Posted June 11, 2014 DSDT/SSDT: Enable battery by patching your DSDT using pre-made patches Requirements:- Extract and decompile OEM DSDT- Fix all errors by MacIASL- Add RehabMan Laptop patch Repo Credits to RehabMan: Because the battery hardware in PCs is not compatible with Apple SMbus hardware, we use ACPI to access battery state when running OS X on laptops. Generally I recommend you use ACPIBatteryManager.kext, available here: https://bitbucket.org/RehabMan/os-x-acpi-battery-driver/downloadsLater releases of AppleACPIPlatform are unable to correctly access fields within the EC (embedded controller). This causes problems for ACPIBatteryManager as the various ACPI methods for battery fail (_BIF, _STA, _BST, etc). Although it is possible to use an older version of AppleACPIPlatform (from Snow Leopard), it is desirable to use the latest version of AppleACPIPlatform because with computers that have Ivy Bridge CPUs it enables native power management for those computers. To use the latest version, DSDT must be changed to comply with the limitations of Apple's AppleACPIPlatform.In particular, any fields in the EC larger than 8-bit, must be changed to be accessed 8-bits at one time. This includes 16, 32, 64, and larger fields. Using pre-made patches RehabMan has collected lots of battery patches for many laptops, and you can have a chance to apply other similar laptop's patches. To apply a pre-made patches to your dsdt: - Open DSDT.dsl, select Patch > look for 4.0 Battery Patches in the left column, there will be a list of pre-made battery patches for laptops. - Select your laptop patch. If you don't your model, you can try one of similar laptop patches (same brand, same laptop line). The patch with more Changes is usually the better one for your laptop. - Press Apply. - Press Compile to check for error, the common errors after applying the patches is "XXXXX not accessible". For example: ^^EC0.BSVO not accessible Open the patch you just applied again and look for the not accessible field. In example, the BVSO is divided in BVO1 and BVO2. into scope label _SB.PCI0.LPCB.EC0 code_regex BSVO,\s+16 replace_matched begin BVO0,8,BVO1,8 end; You have to find all BSVO in dsdt and replace it by B1B2(BVO0,BVO1), note that you have to add the scope identifier too. For example: ^^EC0.BSVO -> B1B2(^^EC0.BVO0,^^EC0.BVO1) Some laptop does not need to patch battery because all fields are already in 8-bit. However, you can't access the battery indicator because there are many BAT devices in DSDT (BAT0, BAT1, BAT2,...) and they confuse the OS X battery driver. You need to disable all unnecessary BAT devices and keep the working one (usually BAT0) by apply the patch: # Disable BAT1 and BAT2 devices into method label _STA parent_label BAT1 replace_content begin Return (Zero) end; into method label _STA parent_label BAT2 replace_content begin Return (Zero) end; - Apply patch [7.11] Fix Mutex with non-zero SyncLevel.- Download and install ACPIBatteryManager https://bitbucket.org/RehabMan/os-x-acpi-battery-driver/downloads. 11 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 13, 2014 Author Share Posted June 13, 2014 Clover Config: Tweaking Clover menu entries OS entries on Clover menu screen can be hidden, renamed by editing config.plist. Step 1: Get the entry partition’s UUID by opening boot.log in /Library/Logs/CloverEFI/ ( this file is created only if you selected Install RC Scripts to target partitions upon installing Clover ). Locate Volume section. Compare existing partitions on your HDD/SSD with the log by typing this in Terminal: diskutil list Or simply remember the line “Boot Windows from Legacy HD3”, “Boot OS X from Macintosh” on the Clover menu screen to find the entry partition’s name. Get its UUID then save it on a text file Step 2: Open Clover Configurator, import the current config.plist, switch to tab GUI. If you want to hide all Legacy entries ( Boot … from Legacy HD… ), select Custom in Scan, then uncheck Legacy. To edit entries manually, select the + button in Custom Entries (for UEFI entries like Windows UEFI, Linux UEFI, OS X ) or Custom Legacy ( for Legacy entries like Windows Legacy, Linux Legacy,…): Volume: enter the entry partition’s UUID in step 1 Path: if the partition contains multiple entries, type the correct path to it ( separate by “\” ) Title/Full Title: check it to switch to Full Title, type the desired name which will shown on Clover menu screen. Hidden: Hide the entry from Clover menu screen. Select Always if you want to remove the entry from Clover boot screen. Disabled: Disable the custom entry. InjectKexts: Automatically inject kexts in /EFI/Clover/kexts/ to this entry NoCache: Don’t use cache for this entry Type: Identify the type of OS Note: Entry partition’s UUID must be identified correctly. For example, Windows UEFI and Linux UEFI’s boot entries is stored in EFI partition ( because Windows’s bootmgfw.efi is located in \EFI\Microsoft\Boot, not in Windows partition, the same applies to Linux ). OS X boot entry is stored in \System\Library\CoreServices\boot.efi ). If the Volume check mark is blank then Clover will identify the entry base on Type, and vice versa. 6 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 13, 2014 Author Share Posted June 13, 2014 Everything you need to know about NVRAM What is NVRAM ? NVRAM is not popular to PC users but it is very familiar to Mac users. NVRAM is a type of RAM that retains data after the host device's power is turned off. ( in contrast to RAM ). NVRAM is used to store values like: brightness, volume, computer name, Find My Mac’s ID, etc… In Windows and Linux these values aren’t stored in NVRAM but on the HDD, as most PCs don’t have NVRAM. OS X utilizes NVRAM to run many services like iMessage, FaceTime, boot device, etc… NVRAM on PC NVRAM, like UEFI, is implemented many new PC models, and many OSes like Windows and Linux start using it. For example, Windows in UEFI mode uses NVRAM to check if Secure Boot is enabled or not. But everything does not work smoothly in the world of PC. In the beginning of the migration from Legacy BIOS to UEFI, many PCs are badly damaged due to unstable NVRAM. Notably many Samsung PCs got bricked due to bad NVRAM writing, in which CMOS reset is the only option to revive it or worse, it can sometimes corrupt firmware. Other OEMs starts to take things carefully and in new BIOS update, they can turn off NVRAM if any possible dangers is exposed. How to test NVRAM ? Open Terminal in OS X, type: sudo nvram MyVar=TestValue Then type this to show the current NVRAM: nvram -p You will see: MyVar TestValue After rebooting, type nvram –p in Terminal and if you can still see the previous result then your NVRAM is working NVRAM and Hackintosh 1/ Chameleon Due to this bootloader’s limited implementation, Chameleon won’t keep all system’s efi-runtime before booting OS X, which means NVRAM won’t work even even if you already have native NVRAM enabled. To solve the matter, the module “FileNVRAM” is created to emulate NVRAM for Chameleon. By integrating a NVRAM emulating module into OS X’s core, all features required working NVRAM will work normally. This module will loads the nvram file from disk early into memory so Filenvram has it before OS X is up and running, It also injects a kext in to OS X. The kext will handle the NVRAM API that OS X expects. This kext does legacy translation as well as writing the nvram to /Extra/nvramxxxxxxxx.plist when nvram is changed. 2/ Clover UEFI Unlike Chameleon, Clover UEFI is more transparent for UEFI system, so it will use the system’s Native NVRAM (if exist). To see if you have native NVRAM or not, go to /EFI/Clover/Drivers64UEFI/ and delete EmuVariableUEFI-64.efi, then restart. Follow the NVRAM testing procedure above, if it’s still working then you have native NVRAM support and you don't need to use EmuVariableUEFI-64.efi; if not then put back EmuVariableUEFI-64.efi to use NVRAM. EmuVariableUEFI-64.efi works by loading the newest nvram.plist from HFS+/FAT32 partitions and emulate NVRAM for OS X. But this driver CAN NOT save NVRAM into the nvram.plist. Therefore, we need some solution to save nvram.plist at shutdown. Install RC Script You can install this by select "Install RC Script to target partition" in Clover <=2711 This is how Clover Installer saved NVRAM (up to Clover 2711). It utilizes OS X’s feature of loading /etc/rc.local when booting up, and /etc/rc.shutdown.local when shutting down, Clover Installer added execute scripts to save log files into rc.local and save nvram.plist into rc.shutdown.local. The truth is RC Script has been deprecated since the day of Leopard (10.5) but for some reasons it still survives till Mavericks (10.9). Unfortunately it is gone completely in Yosemite ( 10.10 ), so Clover users using RC Script in old installer now won’t be able to keep NVRAM after restarting, due to nvram.plist saving scripts won’t run at shutting down. Use LoginHook/LogoutHook To temporarily replace RC Scripts, some users use LoginHook/LogoutHook to replace rc.local/ rc.shutdown.local. LoginHook command will be run when logging in, and LogoutHook will run when logging out. This method still has some problems. The scripts will run only when login/logout, not starting/shutting down. This method is also deprecated since Tiger ( 10.4 ), so it will be a matter of time until it’s completely disappears. Launchd You can install this by select "Install RC Script to target partition" in Clover > 2711 This is the official method that Apple recommends to run scripts when starting/shutting down, and Clover revisions since 2712 has implemented it for better OS X support. 9 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 14, 2014 Author Share Posted June 14, 2014 Issues while booting into OS X Graphics related problem This occurs when your verbose booting screen shows that things are stuck at Bluetooth or Network or loading partitions. To fix this temporarily: Revise config/bootflag: Wrong bootflag ( for Chameleon ) or bad config.plist ( for Clover ) can cause graphics issues, you should check it again Boot in Safe Mode For Chameleon: Add –x to your bootflagFor Clover: Hit Spacebar and choose Boot to safe mode Remove graphics kexts: You can temporarily remove graphics kexts in order to boot. If you have Windows or Linux, go to /System/Library/Extensions and move these kexts to another folder:AMD ( for AMD only or Intel HD + AMD systems ): AMD*.kextNvidia ( for Nvidia only or Intel HD + Nvidia systems ): NVDA.kext, Geforce*.kextIntel ( if above methods don’t work ): AppleIntelHD*.kext If you don’t have other OS, boot into the installer or the Recovery partition, open Terminal and type: cd /Volumes/ ls ( list of available partitions on the system ) cd “OS X partition name” mkdir /Backup cp –rf AMD* /Backup rm –rf AMD* ( if you want to delete AMD kexts ) cp –rf NVDA* /Backup rm –rf NVDA * ( if you want to delete NVDA kexts ) cp –rf Geforce* /Backup rm –rf Geforce * ( if you want to delete Geforce kexts ) cp –rf AppleIntelHD * /Backup rm –rf AppleIntelHD * ( if you want to delete AppleIntelHD kexts ) After successfully booting into OS X, you should patch your DSDT to inject the correct information about your GPU, or disable the dedicated GPU by DSDT/SSDT for AMD Switchable Graphics/Nvidia Optimus to prevent this from happening again. Installing the kexts back to see if you have working graphics. Still waiting for root device: This happens because: Using a 3.0 USB port to boot into the installer without having GenericUSBXHCI.kext in /Extra/Extensions or /EFI/Clover/kexts of the USB Sata Mode isn’t set to AHCI in BIOS or is in RAID Mode that Apple doesn’t support To fix this: Add GenericUSBXHCI.kext to /Extra Extensions or /EFI/Clover/kexts of the USB Add AHCIInjector.kext for systems using RAID Mode Set Sata Mode to AHCI If using Clover, you can try creating a config.plist with “still waiting for root device“ patch and use it SMCReadKeyActionError: This happens because vt-d is enable in BIOS To fix this, do one of following: Disable vt-d in BIOS Boot with dart=0 flag Set Drop DMAR table in Clover config.plist PState Stepper Error on some Ivy Bridge CPUs: If you follow the speedstep guide (link) and got this error, this happens because of bad ssdt for the cpu. To fix this: Delete the current ssdt.aml Create a Ivy or Haswell SMBios Install vanilla AppleACPIPlatforms.kext Generate SSDT with ssdtPrGen ( or can be found in HVT, which is always the latest version ) Copy vanilla mach_kernel to the root of the OS X partition, use HVT to patch it ( for Chameleon )or set KernelPM in config.plist ( for Clover ) Add –xcpm to your bootflag when booting ( org.chameleon.boot.plist for Chameleon/config.plist for Clover ) 3 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 14, 2014 Author Share Posted June 14, 2014 Touchpad/Keyboard won’t work after using Hackintosh for a while ( Laptop-exclusive ) After some time, your touchpad and keyboard may malfunction: not working, laggy cursor when moving, a few keys don’t work even though you have installed the right kext and using them just fine earlier. This often related to EC ( Embedded Controller ) EC is a device which controls the touchpad/keyboard and some other devices on the mainboard. Sometimes EC may malfunctions due to many reasons ( electric shock, bad dsdt, etc… ). You have to force EC to reset itself: Turn off your computer Unplug your computer and remove the battery Press Power button for about 30 seconds Put the battery back and use it normally Special method for users with Elan touchpad: hit Escape button when your keyboard isn’t working 3 Link to comment Share on other sites More sharing options...
pokenguyen Posted June 14, 2014 Author Share Posted June 14, 2014 DSDT/SSDT: Everything you need to know about SSDT As mention in the basic knowledge guide about DSDT/SSDT, SSDT ( Secondary System Description Table ) are sub-tables which describe additional devices. By using SSDTs OEMs can manage DSDT better, and so SSDT can be shared between similar systems. SSDTs that comes with the system usually contain these information ( red means scope/device can be found in SSDT ): SATA management: \_SB.PCI0.SATA Sensor management: PTID CPU management: \_PR.CPU Intel HD Graphics management: PCI0.GFX0 or PCI0.VID Dedicated GPU management: various names like GFX0, PEGP or DGFX, etc… Features like Optimus, Switchable Graphics,.. To edit these tables, make sure to dump and decompile all DSDT/SSDT, edit the dsl file then save it as aml. To load the edited one, rename it by order: SSDT.aml, SSDT-1.aml, SSDT-2.aml,… and put them in the bootloader’s directory ( the same as DSDT.aml ) Drop OEM SSDT This feature was created due to the fact that system’s original SSDTs that manage CPU are useless in OS X, which force users to create CPU management SSDTs which are optimized for OS X. By loading both OS X’s optimized SSDTs and original SSDTs, they can conflict each other, cause unstable CPU loading. Drop OEM SSDT is made to wipe (drop) original SSDTs in BIOS/UEFI to avoid conflicts. Even though other SSDTs are also dropped, but these tables aren’t always important ( most systems can run with DropSSDT=True ) CPU management SSDTs Bootloaders like Chameleon, Clover can create a SSDT compatible with OS X to control the CPU by setting GeneratePState/GenerateCState=True.ssdtPrGen script made by Pike R. Alpha is better way to create CPU SSDTs for OS X, and will always be up-to-date. You can create your SSDT.aml using ssdtPrGen by selecting Tools > SSDT Generator in HVT Note: ssdtPrGen script only supports 2nd/3rd/4th Core I and Xeon Processor. Other CPUs have to use the bootloader’s Generate features. Do not use both SSDT.aml and bootloader’s Generate features, it can cause unknown issues. It is recommended to use Drop OEM SSDT features to avoid conflicts between SSDTs Intel HD Graphics management SSDT ( laptop-exclusive ) Most Intel iGPUs is defined in DSDT, but in some cases ( especially Haswell laptops ), the iGPU is managed in SSDT. To check whether DSDT or SSDT is managing your iGPU, find these in the tables: Device (GFX0) Device (VID) Name (_ADR, 0x00020000) They are inside PCI0 scope.For example, this system’s HD4400 is managed by ssdt7.dsl In this case, for brightness fix you have to compile and load that ssdt. And if you apply a patch that rename GFX0 to IGPU, you have to do it in all related DSDT/SSDT. Dedicated GPU management SSDT ( laptop-exclusive )By default they are named DGFX, PEGP and have _OFF, _ON methods, for example: 6 Link to comment Share on other sites More sharing options...
Recommended Posts