Another client test: fixing a hackintosh
It's not often we need to, but today we got to demonstrate our technical prowess when a client asked -- quite off the cuff -- whether we could fix their abortive attempt to get a Mac OS X hackintosh up and running on what was formerly a Windows Vista PC. It's not often that happens.
We'll be back to our usual venture and start-up posts after this short technical interlude…
We've been hacking UNIX in various forms for the last ten years so it wasn't particularly challenging: an ASUS A8N-SLi motherboard with some sort of dual-core AMD. They'd installed iDeneb 10.5.5 on it, and could boot it in safe mode or single user, but not in normal mode. A standard boot left it coming up with a blue or grey screen, sometimes with a mouse pointer, and sometimes with the coloured swirly cursor. No login window would come up, although the process was starting in the system log. Having a quick Google for a fix we found that just about everyone else trying to install OS X on a PC was either fifteen or Italian, or both. No doubt because doing so is a breach of Apple's terms, as we reminded our client.
They'd made a note of the components they'd installed, which helped: a StageXNU 9.4.0 kernel, AppleNForceATA Test, forcedeth, the AMD patch and the NVinject 512MB. In the end, not much was needed to make it work properly:
- In safe mode the system got caught in an endless loop of setup screens: "welcome", "configure keyboard", and so on. By booting into single-user mode ("-s'), remounting the disk as read-write ("umount -uw /"), overriding the root password ("passwd root") and creating a dummy setup flag ("touch /var/db/.AppleSetupDone") we put an end to that.
- The login window wasn't coming up as there were a couple of kernel extensions (kexts) getting in the way. Rather than an arduous trial and error process we took out the most likely candidates from /System/Library/Extension: ATI*, Ge*, MegaRAID.kext, SoftRAID.kext, AppleThermal.kext, AppleCPUThermal.kext, ntfs.kext. As if by magic it booted after that.
- We nearly got out of the door before the client broke it again. Downloading files over ethernet made it kernel dump. Simple enough: we removed the forcedeth.kext from the distro and pulled a newer version out of git.
Whilst we all quite like OS X at Reincubate, there's no substitute to running it on a Mac. And frankly, why get a Mac when you can have Ubuntu... for free?