Jump to content

[Guide] AIO Guides For Hackintosh


  • Please log in to reply
106 replies to this topic

#1
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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 Hackintosh
Checking your hardware before installing OS X

Installing Mavericks using Chameleon (Legacy BIOS)
Chameleon’s common bootflag
 
Installing Mavericks using Clover (UEFI)
How to boot into Clover UEFI

Post installation
 
Install Chameleon bootloader – speedstep and installing kexts (Legacy BIOS)
Install Clover bootloader – speedstep and installing kexts (UEFI)
 
How to check your CPU’s speedstep
 
QE/CI for 1st Generation Intel HD Graphics
 
How to update OS X on your Hackintosh
 
Dualboot Windows and OS X using Chameleon
Dualboot Windows and OS X using Clover UEFI
 
Sync time between Windows and OS X
How to fix iCloud/iMessage/Facetime on your Hackintosh
 
DSDT/SSDT: Basic knowledge
DSDT/SSDT: Edit using MacIASL
DSDT/SSDT: Common DSDT patches
DSDT/SSDT: Enable battery by patching your DSDT using pre-made patches ( Laptop-exclusive )
 
Clover Config: Tweaking Clover menu entries

Troubleshooting
 
Boot0: error while using Chameleon
Issues while booting into OS X
Touchpad/Keyboard won’t work after using Hackintosh for a while ( Laptop-exclusive )

Advance techniques
 
How to patch AppleHDA
 
Everything you need to know about NVRAM
 
How to patch framebuffer AMD GPU
Patched Framebuffer Repository
 
Fn keys remapping/enabling
 
DSDT/SSDT: Everything you need to know SSDT
DSDT/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-fly

Download links
 
Hackintosh Vietnam Tool
Chameleon bootloader
Clover bootloader


 

******Special thanks to vusun123, who helped me completing and translating from original Vietnamese guides to English guides*******



#2
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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.



#3
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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



#4
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

Installing Mavericks 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 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” 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 5: 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
 
Step 6: 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 7: Download the latest Chameleon here, open it and target the installer partition, install Chameleon.

 

8iKoGEE.png

Step 8: 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 9: Haswell CPUs need a modded kernel, unzip and copy it to the root of your USB’s installer partition.
AMD CPUs need a modded kernel exclusively for them, unzip and copy it to the root of your USB’s installer partition.
 
Step 10: 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 this 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
 
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 )

cp /mach_kernel "/Volumes/Hacintosh/mach_kernel"

Reboot into your newly installed OS X partition with the bootflag you just used to enter OS X



#5
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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


#6
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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

Finish the tool, copy the generated config.plist on the desktop 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.



#7
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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.



#8
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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.

#9
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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.



#10
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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



#11
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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


#12
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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


#13
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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


#14
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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


#15
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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: You need EmuVariableUEFI-64.efi installed in /EFI/Clover/drivers64UEFI and selected “Install RC scripts to target partition” when installing the bootloader

 

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.1 Use Information from a system with working iMessage/Facetime

http://www.insanelym...-5#entry2040654

 

3.2 Add a valid credit card to your Apple ID

Open Appstore or iTunes on your Hackintosh, login to your account and add your credit cards. After that you can login to iCloud/iMessage/Facetime. You can remove your credits card after successfully activating the services.

 

3.3 Call Apple Support

If you don't have a valid credit card or it even does not work for you, you can call Apple Support. This is Miztorr's guide:

 

First, you’re gonna need a real serial number, not a fake one, and I actually found a post explaining just how to do that, for more information just visit this link, try rebooting when done.

 

If you get iMessage to work after rebooting, then congratulations! You got iMessage working! If not, read on.

 

Second, you’re gonna need to call Apple support, you can call them on the number corresponding to your country or you can simply use Skype or magicJack to call them on their US customer support number,  more info here. In my case, the answer machine picked up the phone, asking me to provide it with the device’s model and serial number, just ignore and it should redirect you to the director of the call centre or another person at Apple support.

 

Now, he’ll ask you to describe the issue, tell him the following:

 

Quote

I’m calling because I’m having problems with activating iMessage on my [insert Mac model], it’s asking me to call Apple support and provide them with some customer code.

 

They will probably ask you to provide them with your name, a callback number (if you’re calling from outside the US you don’t have to, just tell them), the serial number and your Apple ID.

 

Once you’re done, all you have to do is quit out of iMessage/FaceTime and open it again, and you should be able to login and use it normally.

 

Enjoy!



#16
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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

#17
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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.



#18
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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


#19
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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


#20
pokenguyen

pokenguyen

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 423 posts
  • Gender:Male

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.or...river/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.or...river/downloads.
 







4 user(s) are reading this topic

1 members, 3 guests, 0 anonymous users


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