Jump to content

Things Everyone Else Apparently "Just Knows" About Chameleon & Netkas' PC EFI

irrational John

1 post in this topic

Recommended Posts

Some general words about terminology and such ...


I realize what follows in this piece rambles bit. :dev: It may not be useful to that many folks. But it is stuff I think I would have appreciated knowing about before I jumped in.


Since OS X (and the OS X install DVD) can not boot on non-Apple hardware, a common approach to creating a Hackintosh is to use a different boot loader to get OS X up and running. Chameleon (URL: chameleon.osx86.hu) is a very popular alternative OS X boot loader for non-Apple hardware. (The Chameleon site warns that Chameleon is developed to boot Darwin/Mac OS X on PCs. It doesn’t work on Macs.)


Of course, there are many other alternative routes to a Hackintosh out there. But since Chameleon is what I used and happens to be all I am familiar with at this time, it is all I will be talking about here.


My first attempt at doing a Hackintosh started by following the "hacking required" LifeHacker guide. The steps outlined in that guide use an existing Mac OS X system to first create a a copy of your retail Snow Leopard install DVD on an 8GB (or larger) USB flash drive. You then install the Chameleon boot loader (and stuff) onto the USB stick. This allows you ... if your hardware is a "close enough" match ... to boot and install Snow Leopard on a non-Mac system.


A number of things go on under the covers to get OS X running on PC hardware.

  1. As mentioned earlier, you use a different boot loader (e.g. Chameleon)
  2. Apple hardware does not have a BIOS. Instead these systems use Intel's Extensible Firmware Interface (EFI) to accomplish the things (more or less) which the BIOS does on a PC motherboard. The purpose (I'm guessing) of Netkas' PC-EFI is to sit between OS X and the BIOS on a non-Mac/PC system and allow OS X to believe it is talking to an EFI.
  3. Apple Intel systems also use the System Management Controller (SMC) to control some of the hardware. Netkas has created a kernel extension, FakeSMC.kext to allow OS X to think it is talking to the SMC.

The addons which the LifeHacker guide walks you through installing include the above tools. (Be aware that the tools have been updated since the LifeHacker guide was written. You may want to use the latest versions.)


The terminology "kernel extension" (a file with the .kext extension) occupies a role in OS X similar to that of a device driver on other operating systems. In order to get OS X working on PC hardware you need to add some special purpose kernel extensions which can work with the PC hardware. That's why people talk about kexts so often here.


Chameleon has a special hook into the directory /Extra on the partition you have Chameleon boot from. The LifeHacker guide walks you through setting this directory up, but never says anything about what it is used for. What Chameleon uses it for is to access configuration files and kernel extensions used to allow OS X to run on a PC motherboard.


By default Chameleon also looks (first) in the directory /Extra/Extensions to find any special kernel extensions you may have installed. The idea behind this is that you can leave your OS X system code untouched as much as possible. By restricting your special purpose mods to the /Extra directory, it makes it easier to keep track of just what you've changed.


One other thing to know about kernel extensions and the LifeHacker guide. As part of that guide you install a couple of special kernel extensions into /Extra. However, they are not placed into /Extra/Extensions where you might expect to find them based on what I just said.


Instead, they are consolidated into a single file, /Extra/Extensions.mkext (IIRC). (See also Mkext Tool) I suggest you unpack the extensions from that file, move them into /Extra/Extensions, and then rename or otherwise remove /Extra/Extensions.mkext. That way you'll have a better idea of just what special purpose addons you are using.


On other thing to note. My experience is that OS X will not see SATA drives connected to a controller which is using legacy IDE mode. (At least not without using special mods ...) To get OS X to see your hard drives you have to go into the BIOS and set the SATA controller to use Advanced Host Controller Interface (AHCI) mode.


But rather than mess around will the hard drives actually installed to your motherboard, I would suggest installing OS X onto an external USB attached hard drive while you are still experimenting. That way you have the freedom to completely format the drive should you wish while you are still figuring out how you want to set things up.


-irrational john

Link to comment
Share on other sites


  • Create New...