Original URL: http://www.theregister.co.uk/2009/08/26/efix_os_x_on_generic_pc/

How to run Mac OS X on a generic PC

No need for hacked software

By Chris Bidmead

Posted in Software, 26th August 2009 12:02 GMT

Eighteen months ago, if you wanted to run Apple's Mac OS X on a generic Intel box your only option was to fish around on the internet for a hacked version that modified all the relevant low-level calls.

And then hope it worked on your hardware.

EFiX Mac About panel

Not snapped on a Mac

Even if you managed to get it up and running, Apple's frequent operating system updates were to be dreaded and avoided. You needed to stay in touch with the Hackintosh community on sites like Insanely Mac and Hackint0sh for news of specially modified updates and drivers. For those not endowed with a deep understanding of hardware and software it was a perilous path. But rewarding, if you were lucky enough to make it work.

Towards the end of last year the tide began to turn. The key to making a generic Intel Mac that can handle updates lies in the fact that the 'uniqueness' of Apple hardware is really dependent only on the mechanism the Mac substitutes for the venerable Bios (Basic Input/Output System), the firmware interface between the operating system and the hardware. The Bios replacement Apple uses is in fact an open standard, EFI (Extended Firmware Interface), introduced a decade ago by Intel as part of its attempt to get its Itanium chip off the ground.

Calling the Bios and EFI "boot mechanisms" is an over-simplification. The traditional Bios only uses 16-bit drivers, which modern operating systems tend to replace with much richer 32-bit equivalents as soon as they are loaded. So in this sense the Bios is really only used for lift-off, although its original intention was to offer ongoing support to the operating system.

EFI goes much further. In simple terms, it's a small computer with its own operating system, providing a firmware connection between the main operating system and the various hardware components like disks, optical drives, graphics cards and so on. Unlike the BIOS, these drivers can be full featured and may be used passim rather than being discarded after booting. And - crucially - they are totally independent of whatever main operating system is running, as long as the operating system is 'EFI aware' - it understands the various low-level calls that EFI expects. Modern operating systems like Linux, Windows 7 and, of course, Mac OS X all fit that bill.

EFiX unit

This gadget persuades Leopard it's running on a real Mac

Understanding EFI immediately opened up the possibility of a software hack that withstands updates, and the Hackintosh community has latched onto this with an open source initiative called Chameleon. The setup process is described on several sites, for example here. The community has done amazing work, but it's true to say that getting it all up and running still falls into the the 'pretty hairy' category of DIY computing.

However, for the less stout of heart there's a much simpler alternative. But it's not free, or even cheap. I fell into it at the end of last year when an outfit called Art Studios Entertainment Media (ASEM) sent me a small black square object in an elegant magnet-latched cardboard case about the size of a packet of ten cigarettes. The object itself isn't much bigger than a large postage stamp, and is designed to plug into a USB header on a generic Intel motherboard.

EFiX in situ

Clip EFiX into a spare USB header on your motherboard

ASEM calls it EFI-X - or EFiX; they don't seem to have made up their minds about this - as it's an eXtension of Intel's Extensible Firmware Interface. The ASEM extension includes everything the Intel hardware needs to assure a Mac OS X installation or update that it's dealing with a kosher Macintosh.

Although EFiX reduces the hairiness level from full beard to neat moustache, there are still some gotchas and caveats. The hardware compatibility list (HCL) of motherboards, graphics cards and other core components that EFiX is guaranteed to work with is limited. The limitation seems to be a Venn-type intersection between Apple's own HCL and the list of EFI drivers that ASEM has been able to allocate resources to developing so far. In particular, it doesn't include any processors from AMD.

This means you probably won't just be able to stick the EFiX onto whatever Windows machine you're running at the present and reboot into the glory of Apple's current version of Mac OS X, Leopard.

But it's not too bad. Thanks to Gigabyte, Intel, Nvidia, Crucial and CoolerMaster, I assembled a GA-EP45-DS3R motherboard, quad-core Pentium Q9450, GeForce 8800 GTX graphic card, 4GB of Ballistix Ram and a Real Power M850 power supply for the test system.

EFiX in situ

And stick EFiX to your PSU - there's a sticker provided

And I still couldn't get it working. It was the usual cause of failure - neglecting to RTFM - mitigated in this case by the fact that there was at this stage no FM to read. There is now, but back then I got as far as the first part of the Leopard installation when the process irredeemably blue-screened.

I'd overlooked the fact that EFiX eschews the PS2 interface for its mice and keyboards, and neither Apple nor ASEM provide PS2 drivers. Only USB will do.

EFiX Bios tweaks

Set EFiX as your boot drive in the Bios

Only Sata will do too. Time on the EFiX Forum reveals that EFiX requires every hard disk and DVD drive to use Sata. I was trying to use an old LG parallel ATA DVD drive.

A Sata DVD replacement later and this time... success! Some fine tuning of the Gigabyte Bios was needed to get this right. You need to tell the Bios to boot - paradoxically, perhaps - from a hard drive, and then set that hard drive to be the EFiX USB device, which you've attached to the first USB header on the motherboard. Then, aside from the parameters you'd expect to tweak - switch off all legacy serial, parallel and ATA support, and set the boot graphics device to PEG rather than the default PCI - you need to understand a bit about AHCI, the Advanced Host Controller Interface.

This is another Intel standard, designed to define how Sata devices exchange their data with system memory. It opens up access to some of the advanced Sata features like high-speed transfer and also frees your Sata devices from the need for IDE emulation - a major effect of which is to allow the operating system to access Sata devices beyond the first four on the motherboard.

To install Mac OS X you need the following:

EFiX Bios tweaks

Disable AHCI before you install OS X

It would probably be smart to disconnect any other drives. At this point, ensure that AHCI is switched off. This puts Sata into IDE emulation mode and allows you to boot Mac OS X off the DVD drive. From here the installation proceeds exactly as if you were installing on Apple hardware.

Once the operating system is installed on the hard drive, reboot into the Bios and turn AHCI on. Among other effects, this allows the boot mechanism to find Sata drives beyond the IDE range of 0-3. EFiX can now act as a boot selector, allowing you to boot between, say, Windows, Linux and Mac OS X, provided each is installed on a separate physical drive.

EFiX boot screen

The EFiX boot screen. It's found five drives: the left-most is Linux-bootable, then two Apple-bootable. The next is unbootable and the fifth is a Windows-bootable drive. The current boot (selected with the cursor keys) is the central highlighted icon, and the small rectangles above it represent the countdown.

I probably need to correct any impression that EFI is open-ended and wholly wonderful. An alternative view is set out here, where it's argued that EFI is effectively a DRM'd Bios.

ASEM itself takes advantage of the fact that "a core value of EFI is the preservation of intellectual property", and appears to be near-paranoid that its development effort will be stolen by others, making full use of EFI's support for cryptography to obscure its code and prevent interception of its updates.

Would-be hackers are not the only losers here. Ordinary EFiX users have complained that the one-way, over-the-net update process offers no option to step back to a previous update if, as actually happened earlier this year, an EFiX firmware update negatively impacts (in this case, network) performance.

But is it Legal?

There's plenty of room for discussion here. ASEM maintains that it's using an open standard, has developed its proprietary extension software in-house and is in breach of no copyright or patents. It sees the EFiX as broadening Apple's market, helping sales of Leopard into the built-it-yourself gaming sector, hitherto almost exclusively the domain of Windows.

Leopard installer

Success: Retail Leopard installing

However, a clause in Leopard's End User Licence Agreement (EULA), which everyone installing Leopard is supposed to read and accept, says: "This Licence allows you to install, use and run one (1) copy of the Apple Software on a single Apple-labeled computer at a time. You agree not to install, use or run the Apple Software on any non-Apple-labeled computer, or to enable others to do so."

I'm not a lawyer, and I don't know what exactly an "Apple-labelled" computer is. The retail Leopard DVD case actually includes a couple of sticky Apple labels - perhaps the intention is that you affix one of these to your EFiX-enhanced generic Intel hardware before installation...

An Apple-labelled computer?

An Apple-labelled computer?

Seriously, it's doubtful if Apple would want to bring the full weight of its legal department down on individuals using Mac OS X on EFiX solely for their personal use. If Apple insists, I'll desist and revert to Windows 7. But expensive lawyers warn me that the use of Leopard on non-Apple hardware for business purposes might be deemed by a UK court to be a criminal breach of copyright. You have been warned.

Back to the test machine. Unlike Windows, which comes in separate 32-bit and 64-bit versions, Leopard is a 64-bit and 32-bit operating system combined. On my Q9450 processor, OS X runs in 64-bit mode, taking full advantage of the 8GB of memory. You wouldn't expect a boot device to have any impact on general performance, and the EFiX-assisted test hardware certainly seems to be running in accordance with the manufacturers' specs.

EFiX Mac System Information

What System Profiler says

There is one exception, though. ASEM has encountered problems getting the Gigabyte onboard Ethernet ports to behave. Initially, they ran at full speed, but couldn't cope with Apple's Bonjour service discovery protocol - so sharing iTunes libraries, for example, didn't work. This was fixed with version 3.6.11 of the EFiX firmware, but the Gigabyte Ethernet ports became unmanageably slow. The workaround, until ASEM comes up with a proper fix, is to install an Apple-compatible network card like the Netgear GA311.

EFiX Mac Update panel

Updates? No problem

EFiX-assisted Mac has updated happily all the way from Mac OS X 10.5.0 to the current 10.5.8 version. There's no reason to think that the upcoming Snow Leopard should offer any special problems for EFiX users, but it would probably be smart to hold off the upgrade until ASEM gives official clearance.

The EFiX device is available in the UK from Orange Systems for around £170. Mac OS X is available from Apple for £83. ®