Friday, March 14, 2008

BIOS Options for hackintosh

this post is a continue to the "Prepare the disk partitions" post,

this post cover BIOS options that you need to try and play with in order to get the installation running, the installed system to boot and allow the leopard work smoothly.

*****for newbies*****
todays all PC computers have a BIOS (Basic Input Output System), it is a CMOS chip saving both configurable data and permanent data and a small code part needed to boot the machine and handle hardware initialization commands.

BIOS have a setup screen that allows you to specify the configuration you prefer for the system. the bios screen can be accessed in many different ways depending on the computer. some machines use "del" button, when the computer loads, just press delete and the BIOS appears, some use F2 or F12 all depends on the type of bios installed on your machine ("American MegaTrends" or "Award Software" or "Phoenix Technologies" etc.), in the first screen you see when the PC powers up there should be a message saying how to enter setup/bios.

*****for newbies End*****

Execute Disable (XD/NX)
this should be the first thing to set in the bios, it is the most important part if you decided to use vanilla kernel, the thing is that intel created a virus/warm protection in the CPU level (some sort of security feature), since warm and virus infect the computer by copying their execution instructions to a buffer, the CPU allows the OS to mark what areas in the memory are for data usage only and if someone tries to execute code from those areas the CPU wont allow it, that is why you can set the CPU to activate its "No Execution" (NX on AMD CPU) protection or "Execute Disable" (XD on intel CPU) protection. probably leopard decided to support it fully, and not load if this option is not enabled in order to provide a safer OS, and probably that is why if this parameter is set to false or disabled the system will loop reboot forever until the parameter is set back to enable.

set the "Execute Disable Function" to Enabled

sometimes it is called XD (eXecution Disabled) and looks like this:

Max CPUID Value Limit
During runtime the OS ask the CPU for information regarding different areas, each query is done using a hex value set to a CPU register, not all CPU supports all features this is why at boot time the OS check what are the supported features, each CPU gives different answers to a given value depending on the number of features it support, and in this way it determines what CPU it is running on, but older OS such as NT, 95, 98, Jaguar, Panther etc. don't know of the new feature that new CPU has, that is why this BIOS parameter exist, it tells the CPU to act as if it is limited in the number of features it support for the sake of older OS, in our case leopard support all the CPU query features (leafs), that is why we need to set this parameter to disable and to allow the CPU to return its true values and to be able to identify the CPU for its true type.

set the Max CPUID Value Limit to Disabled

CPU Internal Thermal Control
latest CPUs support internal thermal sensors and the CPU track the temperature, if it reaches a high or too low threshold counter measures are taken, such as: lowering voltage and speed of CPU (so less heat is generated) allowing CPU to cool down, sometimes when temperatures are critical the CPU is allowed to freeze all work or shutdown the computer as precaution measures (depending on the BIOS setup). this parameter can be set to enabled or disabled since today the hackintosh scene cannot support the thermal control from leopard (for all PCs), and as part of the installation you are asked to remove the kext (kernel extension) responsible for it, so you may enable it, i prefer to disable it and if everything is working well you can return and enable it back on to enabled value, if you don't have disabled (like me) Auto value will do just fine.

set CPU Internal Thermal Control to Disabled or Auto

ACPI 2.0 Support (Advanced Configuration and Power Interface)
ACPI is a standard that allow the OS to control the power management of hardware components, the BIOS feature only enable or disable the interface not the OS feature, that means that if the BIOS parameter is enabled then the OS can use (or not) the ACPI interface to control board and peripherals power supply, but if this feature is disabled then even if the OS will try to use the interface and activate components power it cannot do it (hence the word 'Support' in the title), and when leopard tries to control the power of the computer components and the ACPI is not available the result is eather leopard wont load or crash during runtime.
another parameter that needs to be set is the: ACPI APIC Support and it should be set to enabled for the same reasons.

set ACPI 2.0 Support to yes
set ACPI APIC Support to enable

Core Multi-Proccessing
this BIOS feature is very simple yet very important, it allows Core 2 Duo CPUs to turn into Core 2 Solo, meaning the CPU will use only one of its cores, after hackintosh install if you experience a reboot loop (without the ability to reach single mode even) then try disable this option, otherwise use enabled.

set Core Mutil-Proccessing disable (if all goes well set enabled)

in this BIOS option you can set the standard your hard driver controller support,
it can support: IDE for legacy drives, SATA for new driver and RAID if available in your PC system, make sure these option set comply with your hardware setup.

if you use SATA then choose the AHCI option if you use IDE choose the ATA/IDE Mode: Legacy.
S.M.A.R.T option should be enabled unless you receive a S.M.A.R.T. error during DVD boot time, in that case disable it.

for SATA:
set ATA/IDE Mode: Native
set Configure SATA as: AHCI
set S.M.A.R.T: Enabled

for IDE driver:
set ATA/IDE Mode: Legacy
set Configure SATA as: IDE
set S.M.A.R.T: Disabled

thats it, next step is the installation process it self refer to "Install Tiger" or "Install Leopard" posts.



Anonymous said...

The reboot loop is actually the phase I'm stuck at, but at my bios window I don't see a feature that disables the use of multi-core (I'm running a Pentium D CPU and an asus p5vd2mx)

shay.bc said...


if this feature is not available then you can use in the darwin boot prompt cpus=1 option, in this way you tell darwin to support only one CPU, not sure if it will help your problem, because it might occur from some other reason.

for further details on darwin boot options check this post.

Anonymous said...

Hey man,
I uploaded a video that shows my problem to youtube

I also managed to isolate 2 images that may shed some light on the situation, sent them to you.

Million thanks,

shay.bc said...


i have seen the images and video, it shows that the darwin trying to load its configuration, failing and going back to the boot prompt, so several things comes to mind:

1. the computer did not reboot, darwin remain in control (i haven't seen that before) so probably you have a different reason for the "refresh" effect.

2. did you try the CPUS=1 parameter as a boot parameter?

have you ever successfully installed the OS on that PC? or did you just got to this point?

Anonymous said...

Hey Shay,
Finally I made it (again)..

It seems like there was something wrong with the customizing options I chose.

This time I went for the darwin bootloader, all the patches, all the drivers (except for the vga drivers)
And it worked, although I'm sure I went for this configuration in the past and got bad results.

I think all in all I went through this procedure more than 50 times in the last four days...but now 10.5.1 is stable and running, and I haven't got the guts to even think up updating it to 10.5.2 .

I appreciate all your help and concern, and will keep visiting your blog regularly.

Thanks a million!
All the best,

shay.bc said...

hi E,

it is so good to hear you have succeeded again, you will have fun with apple product, its so different,

i think that you just need to write down the steps you took, because i know that this is a new OS and the hack is not that documented so mistakes will happen which might eventually cause you to re-install, make sure you are prepared for it by documenting your steps, (you did it twice you can do it once more),

so final suggestion for you, even if you never upgrade into 10.5.2, you can now use the apple menu and "Software Update", it will update applications and OS as well, update whatever you need (if you install iwork and ilife there is a mandatory update for it), just stay clear (do not update until you decide to try 10.5.2):

"10.5.2 upgrade"
"Leopard Graphics Update"

you can find part of the update list for seperate downloads here (there is one for aperture)

if there are updates that you are not sure if to update or not check the insanelymac forum they release news for good or bad based on others experience.

Enjoy your new Mac.

the menu is from: Milonic DHTML menus