Jump to content

[Guide] AIO Guides For Hackintosh


607 posts in this topic

Recommended Posts

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.
 
Audio
Most 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.

  • Like 16
Link to comment
Share on other sites

Checking your hardware before installing OS X

On OS X
Use DPCI Manager ( inside Hackintosh Vietnam Tool ) to check the hardware’s info

 

bGnnCh5.png

 
 
PCI List tab: List of all PCI devices on the PC. You can check the ethernet/wireless card’s name and Vendor/Device ID
 

bU6H7NS.png

 
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

qxgN4qr.png

Wireless card: Atheros (168C) 9280 (002A)

Oah4xBj.png

Touchpad: Synaptics (SYN)

S4A32Q5.png

  • Like 9
Link to comment
Share on other sites

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

Ccq4G5n.png

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”

Ub9sEsy.png

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.

 

8iKoGEE.png

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
 

0p81xZy.png

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

  • Like 13
Link to comment
Share on other sites

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 3000
1366x768 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 4000
Desktop:



-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/4600
Desktop:



-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
  • Like 9
Link to comment
Share on other sites

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 Installer

Step 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

12475004833_baec2d51ba_o.jpg

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.




12475039433_50ef8d883b_o.jpg

At this point you have 2 choices of creating the installer

Choice 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 guide

Installing Mavericks

Step 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 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

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.

  • Like 12
Link to comment
Share on other sites

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 Boot
This must be turned off in the BIOS, or else Clover can’t boot.

1/ Boot from Bootx64.efi

This 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 file

Some 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 execute
Note that this method doesn’t save the path, so it can only be used when booting from an USB

3/ Add Boot option
Most systems allow adding boot option in BIOS/UEFI. For example:


IMG_0225_zpsc090d8b7.jpg

 

IMG_0226_zps2ef2c14c.jpg

4/ Boot from Bootmgfw.efi

This 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.efi
You 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.

  • Like 11
Link to comment
Share on other sites

Install Chameleon bootloader – speedstep and kexts (Legacy BIOS)


Install Chameleon bootloader
Method 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

YQZbnNC.png

Method 2
Step 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

oD20U57.png

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 laptop

2nd 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
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 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.
  • Like 8
Link to comment
Share on other sites

Install Clover bootloader – speedstep and kexts (UEFI)


Install Clover bootloader and setup Speedstep

Step 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

AfYlH11.png

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 partition

For 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

12475039433_50ef8d883b_o.jpg

After the process is done, copy config.plist to EFI/Clover of the EFI partition

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

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 PC
USB 3.0: Select if you have 3.0 USB port
Fixes > Hibernate > Disable Hibernate: Turn off Hibernation mode, a must when using Clover
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 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.

  • Like 8
Link to comment
Share on other sites

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

repair.png

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

  • Like 8
Link to comment
Share on other sites

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
  • Like 9
Link to comment
Share on other sites

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
  • Like 4
Link to comment
Share on other sites

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.

tvTK2zc.jpg

 

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

m3JmCE6.png

 

Step 4: When the steps won’t increase any further, unload the kext by typing this command in Terminal:

sudo kextunload AppleIntelCPUPowerManagementInfo.kext
  • Like 5
Link to comment
Share on other sites

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
  • Like 4
Link to comment
Share on other sites

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 )

mR9v2CS.png

 

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/

  • Like 11
Link to comment
Share on other sites

  • 3 weeks later...

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.



7MqX4ff.png

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.




p1XTYv5.png


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.
 

kQKKXz3.png

 
Dumping original DSDT/SSDT from your system

Before 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
 

WHMD2oz.png


Linux
Run 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/SSDT

All 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 recompile
Download 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 bootloader

After editing and compiling it from .dsl to .aml, you can get the bootloader to use them by putting them in the right directory:

Chameleon: /Extra
Clover: /EFI/Clover/ACPI/patched

Note: 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 )

  • Like 15
Link to comment
Share on other sites

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

4SLBaVu.png

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

ZwO0ebM.png

 

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:

FAxgxur.png

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:

f0uowOG.png

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.

  • Like 9
Link to comment
Share on other sites

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 Repo


To 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 patch

Fix _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 patch

Audio 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
  • Like 8
Link to comment
Share on other sites

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
  • Like 3
Link to comment
Share on other sites

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

Later 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.

11649398415_27f5ae41dc_o.png

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

  • Like 11
Link to comment
Share on other sites

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
 

rZHfRF5.png

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.

Bph86kZ.png

  • Like 6
Link to comment
Share on other sites

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.

  • Like 9
Link to comment
Share on other sites

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 bootflag
For 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*.kext
Nvidia ( for Nvidia only or Intel HD + Nvidia systems ): NVDA.kext, Geforce*.kext
Intel ( 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



dscn20098ona2qd9y5_zps0fe8a64c.jpg

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 )
  • Like 3
Link to comment
Share on other sites

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

  • Like 3
Link to comment
Share on other sites

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

PXUJYMe.png


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:

nYbqiRq.png

  • Like 6
Link to comment
Share on other sites

×
×
  • Create New...