Jump to content

A complete beginner's guide


3 posts in this topic

Recommended Posts

This forum is vastly popular among all Hackintosh users. There are many topics covered here and there. 

Most of the important topics pinned section wise.But for a newbie its not easy to decide which guide they should follow. 

 

Note : First search about your system in this forum, Other may have updated guide suitable for exact same system as you.If not follow this guide. I will try to try to point every important topics here in one. All original posts are linked, Go to original posts for detailed guide on that specific subject.

 

BIOS SETTING

While it is beneficial to have a unlocked BIOS (Mostly for Laptop Users) but it is not mandatory to install OS X. There are some basic things you should check in your BIOS before installing.

  1. Disable VT-d (Virtualization). Or if you want to use virtualisation then use clover boot argument "dart=0"
  2. Set SATA mode to "AHCI"
  3. Set DVMT memory to 128 / 64 MB. If setting not present then you may need DVMT-prealloc patch in clover.(Checkout graphics section)
  4. Disable secure boot. 
  5. Disable fastboot. (There are few laptops which works with first boot too.But you should turn off during installation )
  6. you may use MBR or UEFI mode. But it is recommended to use UEFI due to it's many advantages over MBR. ( EX- faster device initialisation, Native support of Mac OS)  MBR users need to apple MBR patch to their USB Installer media. [Catalina MBR Patch]

 

POINTs TO REMEMBER

1. SMBIOS

you need select SMBIOS of a similar Mac model as per your hardware.  With unique and unused (Not Invalid) serial number.

  1. Use CloverConfigurator and select a Mac model which has similar CPU and GPU as your system. (Exact same CPU ID not required)
  2. Then Keep changing serial numbers. Check newly generated Serial Number in [Apple Support Coverage page.]
  3. If warranty details are available then change again.(You must not use serial numbers which are already registered)
  4. Continue till you get a serial number which either says "Invalid". It means you have now a official serial number but No Mac has been produced with that serial number. Use that serial number.
  5. Once you log in to Apple Account, You should not change your serial number.

 

2. KEXT Installation

There are three locations for Kext

  1. \System\Library\Extensions : Exclusive for Apple System Kexts
  2. \Library\Extensions : For third party Kexts
  3. \Clover\Kexte\Other : Kext Injection during Boot

 

You can install any kext to either EFI\Clover\Kext\Other or else \Library\Extensions

During installation you can keep essential kexts in Clover\Kext\Other folder. But after Installation you should move kexts to L\E. As kext in L\E are loaded in to kernel Cache and monitored by kernel.It will make your system more stable and less boot time.

[Detailed Information]

 

USB MEDIA CREATION

 

1. USB Installer Media Creation

 To create a USB Installer media you need to device with Mac OS installed. 

 (If you don't have a Mac then use the this guide to make a installation drive from windows.) 

Most recommended process is to use a Mac as follows,

  1. Download Installer App from Apple store.
  2. Open "Disk Utility" and format USB Flash Drive to "Mac OS Journaled Extended" format. 
  3. Then run the following command on terminal
  4. The command is an example for "Mojave". Other can be found in Apple support page.
sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/USBNAME --applicationpath /Applications/Install\ macOS\ Mojave.app --nointeraction

     5.  Then install Bootloader to the USB Device.

 

2. Boot Loader :

First thing to build a Hackintosh is emulation of a real Mac so that you can boot in to a OSX Installer.As your system can't directly boot a Mac OS, You need to boot either Clover , Chameleon or OpenCore. After booting in to these boot loader, you can boot in to OSX as well as your other OS like windows and linux.

After many years,these boot loaders not only help to boot but also handles a big part to make your system more compatible to OSX. 

So choose wisely

 

2.1 Chameleon/Enoch 

Chameleon was a oldest bootloader which was first developed to support MBR boot devices. Later they adopted to UEFI also. I still remember using it during the era of snow leopard, lion

Support page

Download

2.2 Clover :

Clover is most popular boot loader today.

It supports UEFI and MBR. It has features like on fly DSDT, SSDT and kext patching. Device properties injection, fake properties injection.

You can natively update OSX, Use Recovery option.Most popular and highest support.

Support Page

Download

2.3 OpenCore :

it was mostly meant for  advance user due to its feature to install directly to system BIOS.Where Clover and Chameleon can be used from hard disk or USB storage device.If you have knowledge of BIOS moving then you can go for it.It also can be used from hard disk too.

Support Page

Download

 

First download and install Any one of them to Installer USB. Configure it, Once you get it to work, then copy the same to your hard disk to make it permanent. Download Clover configurator to edit clover configuration. if you are new then download a nearest system spec prebuilt config file from rehabman's repo or else you may search in this forum too. then fine tune it.

Clover Configurator

Clover Config Repo

 

3. SMC Emulation:

You need SMC Emulation to feed the OSX with a machitosh firmware.Also to translate your device basic firmware output to Macintosh support.(Ex : your system sensor data, )

There are 2 major options for you.

 

3.1 FakeSMC

Stability wise, would it be better to use FakeSMC for its long development period and a large amount of documentation around it.It is more stable and if you have old hardware then batter is to go with FakeSMC.

Download

3.2 VirtualSMC

It is new but filled with features like (MMIO Implementation, 2nd gen firmware support). Many are shifting to VirtualSMC these days.

Also I personally like it's new way to manage battery,No more need of battery patch to most of the devices.

Download

 

Download the latest release, then copy the kext to EFI\Clover\Kext\Other

 

4.CPU Compatibility:

Intel: All CPUs starting from Intel Core 2 Duo upto newer CPUs are supported.
AMD: Most AMD CPU are supported but its required modified kernel. Support Page

Sometimes latest release CPU does not get support unless Apple releases systems of same CPU generations. So you may not get support for all Mac OS version's support to all CPUs.In few cases you may use compatible CPU ids using clover's Fake CPU ID option.

 

5.Graphics :

While all intel integrated Graphics are supported natively, DualGPU are not supported. So first thing you need is to disable switchable graphics (AMD,nVidia) and use only Intel graphics only.

If you have discrete GPU which is not tied to Intel HD then you can use it. (Mostly desktop, few laptop which comes without IntelHD, discrete switching capability in BIOS)

 

Installation of WhateverGreen

So the first thing you need is WhateverGreen. It is a kext which works to fix most common graphics problems.(Ex- Sleep Issue, Brightness Control, Graphics Injection)

Nvidia & AMD mixup kext are also integrated to WhateverGreen. So it is recommended to install WhateverGreen irrespective of your graphics card.

Download the kext and copy to EFI\Clover\kexts\Other

Support Page

Download

 

Disable discrete GPU (For Dual Graphics Laptop)

As I mentioned above, you need to disable dualGPU first. There are few different techniques you can adopt to (Use any one)

  1. Disable in BIOS Setting (If such setting available)
  2. Use boot argument "-wegnoegpu" with WhateverGreen
  3. Disabling GPU using DSDT 

 

 

5.1 Intel HD

To use Intel HD properly, Only one thing you need is "Whatevergreen". It will help, native Apple framebuffer to load. 

If your BIOS does not have DVMT Setting,Then add "DVMT-prealloc Patch" in Hackintool's Advanced patch option.Also use proper framebuffer patch according to your system.

 

A detailed guide of IntelHD frame buffer patching is available here by Headkaze

 

5.2 Nvidia GPU

Nvidia Web Driver Support Page

5.3 AMD GPU

 

 

6. PS2 Input devices:

All most all laptop keyboard and touchpad uses PS2 port.Also Many desktop users still using PS2 devices.As Mac OS does not support PS2 devices, you need a PS2 driver called VodooPS2 first.

When it comes to VoodooPS2, There is two major options. 

 

5.1 Rehabman's Voodoo-PS2-Controller

This is oldest built.So it is more stable and supports a long range of devices.

Download

5.2 Acidanthera's VoodooPS2

It is new and supports native trackpad gestures. While writing, it has limited number of hardware support.

But with time this will involve.

Download

 

Just download and copy the kext to EFI\Clover\Kext\Other. Or if you can not get it to work then use USB Mouse and A USB Keyboard.

 

7.NVMe Drives

From Os X 10.13, NMVE Drives are natively supported, So no need of any patches anymore.

 

At beginning Apple only allowed few specific NVMe drives (Up to OsX 10.12). So if your motherboard supports NVMe drive booting then You can use NVMe patches in clover to get NVMe support.

thanks to Pike R. Alpha's Bin patches for NVMEFamily.kext .

Support Page

Download

 

POST INSTALLATION

 

1. CPU Power Management 

Once you made proper adjustment to graphics, You need to look in to power management. While power management is mostly important for laptops,Desktop users also should look in to this so that their CPU can run optimal and smoothly.Power management is highly dependent on CPU and IGPU.

 

There are few different methods to get it working.The basic method is to use a SSDT.aml file generated "Pike R Alpha's Script".It is recommended and most stable.

Alternatively if your system is intel 4th gen or higher then you may use XCPM method. Also HWP mode if you have 6th gen or higher CPU.

 

1.1. Using auto generate states

This process is only applies to first generation intel processor or older. Only enable "GeneratePStates" & "Generate CStates" in config. No need to SSDT.aml

Sandybridge or higher CPU must not use this method.It will result kernel to Panic.

 

1.2 Using Custom SSDT

As I already mentioned,It is the most stable option and results optimised power consumption.

  1. Download. Piker R alpha's ssdtPTGen.sh from here.
  2. Run this file and create SSDT.aml for your CPU. Copy to EFI\Clover\ACPI\Patched .
  3. Uncheck all options like generate pState,Plugin type in SSDT section of clover config.
  4. Drop CPU related SSDT table 'CpuPm' and 'Cpu0Ist'. 

 

1.3. XCPM Method

XCPM (Intel Speedstep Technology) was introduced on 4th gen Intel processors. This allow to handle CPU usage and power consumption dynamically according to load.Also it is integrated with Intel HD.

  1. Graphics(GFX0)  should be renamed to IGPU by clover or in DSDT.
  2. Remove SSDT.aml from Clover\ACPI\Patched folder.
  3. Disable all SSDT generation methods.
  4. Enable "PluginType=YES" in clover config or else use this (download and compile) clover hot patch.
  5. 4th gen and 5th gen users should apply LPC patch
into method label _DSM parent_label LPCB remove_entry;
into device label LPCB insert begin
Method (_DSM, 4, NotSerialized)\n
{\n
	Store (Package (0x02) {\n
		"compatible", Buffer () {"pci8086,8c44"}\n
	}, Local0)\n
	DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
	Return (Local0)\n
}
end;

 

1.4 XCPM + HWP Method

HWP was introduced during Skylake CPUs.The new tech is supposed to make the processor respond much quicker to performance burst requests as well as improving the effectiveness and efficiency of the performance bursts themselves. It does this by handing some extent of the frequency control back to the processor – which, in conjunction with the OS (which needs to allow it to take over control of P-States) can perform much better. 

 

Detailed guide to HWP

 

As you can now see your CPU performance using Intel Power Gadget or HWMoniter (Istat Menu for VirtualSMC Users) . While you are using SMBios of a nearest CPU, It may very a little bit in case of frquency,Turbo frequency and idling speed(LFM). (for example I am using MacBook Pro 14,1 SMBios,So my system is idling as 1.30GHZ which is a bit higher for me.Almost half speed of my CPU)

So you need to adjust your CPU frequency, Turbo Frequency and Idling speed(Keep it to minimum as 400MHz or 800MHz )as per your SMBIOS.

Download FrequencyVector Editor By Pike R Alpha

Choose your SMBios. It will Automatically Patch your LFM to minimum. You just change CPU max frequency and turbo frequency.

Once you are done your system will have a optimised CPU Power management . 

 

2. USB port Management 

From OS X 10.11, Apple changed the way USB ports work.(thanks to Rehabman for this info) As Mac OS uses ACPI to detect USB ports in a system, it often gets wrong value for a Hackintosh. So to solver the issue, you need a "USB port injector kext" to inject all your ports.

 

Also OSx has 15 port limit, you need to apply a port limit patch in clover.

Port limit patches for different versions (Thanks to PMHeart)

Catalina 10.15.0 (2 Patches)
Patch #1:
Name*: com.apple.iokit.IOUSBHostFamily
Find* [HEX]: 83FB0F0F
Replace* [HEX]: 83FB3F0F
Comment: USB Port Limit Patch 1 PMHeart/DalianSky
MatchOS: 10.15.x
Patch #2:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]: 83F90F0F
Replace* [HEX]: 83F93F0F
Comment: USB Port Limit Patch 2 PMHeart/DalianSky
MatchOS: 10.15.x
Mojave 10.14.6: (4 Patches)
Patch #1:
Name*: com.apple.iokit.IOUSBHostFamily
Find* [HEX]: 83FB0F0F
Replace* [HEX]: 83FB3F0F
Comment: USB Port Limit Patch 1 PMHeart/DalianSky
MatchOS: 10.14.x
Patch #2:
Name*: com.apple.iokit.IOUSBHostFamily
Find* [HEX]: 83E30FD3
Replace* [HEX]: 83E33FD3
Comment: USB Port Limit Patch 2 PMHeart/DalianSky
MatchOS: 10.14.x
Patch #3:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]: 83FB0F0F
Replace* [HEX]: 83FB3F0F
Comment: USB Port Limit Patch 3 PMHeart/DalianSky
MatchOS: 10.14.x
Patch #4:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]: 83FF0F0F
Replace* [HEX]: 83FF3F0F
Comment: USB Port Limit Patch 4 PMHeart/DalianSky
MatchOS: 10.14.x
Mojave 10.14.5: (4 Patches)
Patch #1:
Name*: com.apple.iokit.IOUSBHostFamily
Find* [HEX]: 83FB0F0F
Replace* [HEX]: 83FB3F0F
Comment: USB Port Limit Patch 1 PMHeart/DalianSky
MatchOS: 10.14.x
Patch #2:
Name*: com.apple.iokit.IOUSBHostFamily
Find* [HEX]: 83E30FD3
Replace* [HEX]: 83E33FD3
Comment: USB Port Limit Patch 2 PMHeart/DalianSky
MatchOS: 10.14.x
Patch #3:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]: 83FB0F0F
Replace* [HEX]: 83FB3F0F
Comment: USB Port Limit Patch 3 PMHeart/DalianSky
MatchOS: 10.14.x
Patch #4:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]: 83FF0F0F
Replace* [HEX]: 83FF3F0F
Comment: USB Port Limit Patch 4 PMHeart/DalianSky
MatchOS: 10.14.x
Mojave 10.14.4: (3 Patches)
Patch #1:
Name*: com.apple.iokit.IOUSBHostFamily
Find* [Hex]: 83FB0F0F 870B0400 00
Replace* [Hex] : 83FB3F0F 870B0400 00
Comment: USB Port Limit Patch 1 ©PMHeart
MatchOS: 10.14.4
Patch #2:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [Hex]: 4183FF0F 0F839404 0000
Replace* [Hex] : 4183FF3F 0F839404 0000
Comment: USB Port Limit Patch 2 ©PMHeart
MatchOS: 10.14.4
Patch #3:
Name*: com.apple.iokit.IOUSBHostFamily
Find* [Hex]: 83E30FD3 E34109DF
Replace* [Hex] : 83E33FD3 E34109DF
Comment: USB Port Limit Patch 3 ©PMHeart
MatchOS: 10.14.4
Mojave 10.14.3:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]:83FB0F0F 83030400 00
Replace* [HEX]: 83FB0F90 90909090 90
Comment: USB 10.14.1+ by PMHeart
MatchOS: 10.14.x
Mojave 10.14.2:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [Hex]: 83FB0F0F 838F0400 00
Replace* [Hex] : 83FB0F90 90909090 90
Comment: USB 10.14.1+ by PMHeart
MatchOS: 10.14.x
Mojave 10.14.1:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [Hex]: 83FB0F0F 838F0400 00
Replace* [Hex] : 83FB0F90 90909090 90
Comment: USB 10.14.1+ by PMHeart
MatchOS: 10.14.x
Mojave 10.14.0:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [Hex]: 83FB0F0F 83030500 00
Replace* [Hex] : 83FB0F90 90909090 90
Comment: USB 10.14+ by PMHeart
MatchOS: 10.14.0
High Sierra 10.13.6:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]: 837D880F 0F83A704 0000
Replace* [HEX]: 837D880F 90909090 9090
Comment: USB 10.13.6+ by PMHeart
MatchOS: 10.13.x
High Sierra 10.13.5:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]: 837d940f 0f839704 0000
Replace* [HEX]: 837d940f 90909090 9090
Comment: USB 10.13.4+ by PMHeart
MatchOS: 10.13.x
High Sierra 10.13.4:
Name*: com.apple.driver.usb.AppleUSBXHCI
Find* [HEX]: 837d940f 0f839704 0000
Replace* [HEX]: 837d940f 90909090 9090
Comment: USB 10.13.4+ by PMHeart
MatchOS: 10.13.x
High Sierra 10.13.3:
Name*: AppleUSBXHCIPCI
Find* [Hex]: 837d8c10
Replace* [Hex] : 837d8c1b
Comment: change 15 port limit to 24
MatchOS: 10.13.x
High Sierra 10.13.2:
Name*: AppleUSBXHCIPCI
Find* [Hex]: 837d8c10
Replace* [Hex] : 837d8c1b
Comment: change 15 port limit to 24
MatchOS: 10.13.x
High Sierra 10.13.1:
Name*: AppleUSBXHCIPCI
Find* [Hex]: 837d8c10
Replace* [Hex] : 837d8c1b
Comment: change 15 port limit to 24
MatchOS: 10.13.x
High Sierra 10.13.0:
Name*: AppleUSBXHCIPCI
Find* [Hex]: 837d8c10
Replace* [Hex] : 837d8c1b
Comment: change 15 port limit to 24
MatchOS: 10.13.x
Sierra 10.12.x:
Name*: AppleUSBXHCIPCI
Find* [Hex]: 83bd74ff ffff10
Replace* [Hex] : 83bd74ff ffff1b
Comment: change 15 port limit to 26
MatchOS: 10.12.x
El Capitan 10.11.x:
Name*: AppleUSBXHCIPCI
Find* [Hex]: 83bd8cfe ffff10
Replace* [Hex] : 83bd8cfe ffff1b
Comment: change 15 port limit to 26
MatchOS: 10.11.x

Note: while this solves the issue, some times it may causes system instability . So you should disable mostly unused ports using DSDT hot patches (SSDT-UIAC.aml) ,Then remove port limit patch.

 

To do that download Hackintool and go to to USB tab. Now insert USB3.0 and USB 2.0 devices to every port, And rectify the details (Connector Type) accordingly. Once you finished checking all port, remove all the listed USBPorts which are not turned green(ports are not usable). Then Export SSDT-UIAC.aml ,install to clover/ACPI/Patched . 

 

USB Power Management:

Most of the laptop has EC device named mostly as EC0 or H_EC . Rename the device to EC by Clover DSDT patch to load ApplePowerBusController under EC. (You can confirm in IoReg)

If you don't have a EC device then add a Fake EC Device.

 

Newer Mac device use device named USBX.So People who are using SMBIOS higher then iMac 7,1 or MacBook 13,1 should add an device named USBX under scope _SB . If you used Hackintool to eliminate unused USB ports then you must have gotten SSDT-USBX.aml if needed for your system.

DefinitionBlock ("", "SSDT", 2, "hack", "USBX", 0x00000000)
{
    Device (_SB.USBX)
    {
        Name (_ADR, Zero)  // _ADR: Address
        Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
        {
            If (!Arg2)
            {
                Return (Buffer (One)
                {
                     0x03                                             // .
                })
            }

            Return (Package (0x08)
            {
                "kUSBSleepPortCurrentLimit", 
                0x0834, 
                "kUSBSleepPowerSupply", 
                0x13EC, 
                "kUSBWakePortCurrentLimit", 
                0x0834, 
                "kUSBWakePowerSupply", 
                0x13EC
            })
        }
    }
}

3. Audio

Audio is almost common issue due large range of audio Codecs and controllers . There are three major options for Audio fix. All have different way to enable sound so installation guides are also different. Must 'rename HDAS to HDEF' By DSDT edit or Clover. 

3.1 VoodooHDA 

It is the oldest kext built to fix audio devices. This works as a alternative option to Apple's native AppleHDA.

While VoodooHDA supports large number of devices, It provides a lower sound quality for few cases.

download

3.2 AppleHDA

This was developed by mir0ne and it is able to use native AppleHDA.

It involves patching of AppleHDA kext present in S\L\E

Download

3.3 AppleALC

An open source kernel extension enabling native macOS HD audio for not officially supported codecs without any filesystem modifications.

So this is the most recommended option.

Download

Support Page

 

4. Battery 

While battery is handled by firmware only. Proper kext is needed to notify system regarding battery status.

To enable Battery icon in notification bar. Also you can use the features present in "Power Saver ' Section in setting.

There is two major option, with completely different approach. 

 

4.1 ACPI-Battery-Manager

This kext uses ACPI methods to notify battery status.So you need to patch your DSDT first. Then install the kext.

BatteryManager kext should be loaded under device BAT0 in IOReg.

Download

Battery patches (By Rehabman)

4.2 VirtualSMC Battery plugin

If you are using VirtualSMC then you have already got a SMCBattery plugin.

It uses a different to approach. So you don't need any DSDT patch.It works out of the box in most of the cases.

If not then check you IOReg first.AppleACPIACAdapter kext should be loaded under device ADP1. If no ADP1 device is present,Then rename your AC Adapter device (Something like  AC, ACAD) to ADP1 . [Original Post]

Download link is present in SMC Section.


 

5.Connectivity

Connectivity is a major part Hackintosh. Properly installation of ethernet is required to iMessage activation. Also bluetooth and Wifi need to be configured properly to continuity and Handoff feature to work.

 

Ethernet

Just follow the support page for your Ethernet card.

Intel Ethernet : [Support]  [Download]

Realtek Ethernet : [Download]

 

Atheros Wifi

Supported Cards : AR9285/AR9280

Atheros wifi cards are supported up to 10.12 . While it can be used further using older kext but you may get random system crashes. 

You can use various method like custom injector Kext  or using DSDT patches. It is recommended to change with supported Broadcom card.

 

Broadcom Wifi 

Supported Cards

As apple uses Broadcom WLAN cards for their Mac.Cards like 94360 are natively supported , Others few (Like popular 94352Z) are compatible with OS X with Wifi AC (5.0 ghz) support. In few cases you may need to edit country code for Wifi AC to work.

Broadcom Wifi Guide

Broadcom Bluetooth

Note: With 10.15 Bluetooth Injection method has been changed.( Discussion topic ) Use this fork Broadcom-Ram patch for bluetooth by Acidanthera.

 

A deprecated guide by Toleda, It contains a lot of information for Wifi & Bluetooth.Must check out

Brdcm Wifi + Bluetooth Guide

 

Bluetooth Continuity

Continuity is feature to enable features like handoff, Instant Hotspot features . Only for iPhone users though ... (Apple Continuity)

Just download the kext and install it. It will take care of rest.

Download


 

(.....Continues)

When it comes to Hackintosh, There are a lot to talk about. I will keep updating this post for next few days....

Edited by soumaxetuirk
More Details Updated
  • Like 2
Link to comment
Share on other sites

 Share

×
×
  • Create New...