Mar 18 2008

Adventures with a Hackintosh

Published by Jonathan Wise under Articles, Hacks

What I really want out of my job, aside from the pay check, the potential for advancement, and a regular challenge for my problem solving skills, is to be able to use a Mac as my primary machine. Being a Windows developer, though, that’s not very likely.
For awhile I had a MacBook Pro, which ran Windows via Parallels Workstation like a champ, and let me have the best of both worlds. Alas, that machine is no longer available to me. Replacing it would be too costly, and my needs dictate that I’d require a high-end Mac to be able to keep up with me, so a cheap little Mac Mini wouldn’t do the job.

It occurred to me then, that maybe I could try (again) to build myself a Hackintosh, using the latest hacked release of OSX86 10.5. I do run a Mac VM image on my PC, that lets me use my favorite mail client, but it’d be nice if I could reverse the situation. I figured I’d be more than happy to purchase an additional Leopard license, to make my use (mostly) legit. So I went out and got a new hard drive to dedicate to the experiment. Here are my findings…

At work I have a Dell Optiplex 745. A nice machine, well equipped with a Core2Duo and 4GB of RAM. I checked the OSX86 Hardware compatibility wiki and verified that most of my hardware was on the list with either a “working” or “working with patch” status. I figured at a minimum I would need network and video card drivers on a stable OS capable of running VMWare Fusion for the project to be worthwhile. Things looked promising, so I began the download.

OSX86 Hacked install discs can be found on PirateBay and other fine Torrent websites. Again the legality of it is questionable. While you’re required to have an OS license for each machine, the OS X EULA does state that it can only be run on Apple branded hardware. But that sounds more like a challenge than a rule to me.
Downloading should be fairly easy — Kalyway seems to have the best builds right now — but I did find a couple suggestions on community websites. Use WinRAR to unpack the archive, as there have been some problems with other .Zip programs not opening the file correctly. The ISO itself should be burned on a Mac, or on a PC using TransMac, so as not to corrupt the files with any traces of Windows… or something. Burn it slowly! I’m not sure why people recommend these things, but I know I tried this with a 10.4.6 hack install and did it the easy way, and ended up with a coaster. This time I was super careful.

The install disc booted right off the bat for me, and following the suggestions on the Wiki I formatted my new drive as HFS Journaled, using the GUID partition scheme. I did a Vanilla install, adding the SSE3 extensions and ATI drivers for the 1×00 series cards (my Dell has a X1300 Pro)
The install completed successfully and I was ecstatic when I rebooted (don’t forget to remove the install DVD) and saw the Apple logo on the gray screen… then crushed when it promptly kernel panicked.

I rebooted with the -v switch so I could watch what was happening, and eventually realised it was the video card drivers causing the problem. I rebooted off the install DVD, formatted again and installed without the NATIT ATI kexts… only to have it kernel panic on another driver.
Finally, I tried it all again, this time with the Vanilla Kernel, SSE3 extensions, the ACPI fix, no video card drivers, and using the MBR partition scheme. And it STILL kernel panicked at loading drivers.

This time I read a little more online and figured out that I could boot into the install DVD, get to a terminal window, delete the NATIT kexts, and reboot. I tried that, and low and behold, I was into the “Welcome to OS X” wizard!

I had the well-documented problem with it getting caught in a loop after the “Import from another Mac” step, and again had to boot with the install DVD, drop to a terminal, and poke in a few commands to tell OS X that I’d already set-up my account. None of this would be so bad except booting from the DVD to a terminal window took nearly 20 minutes each time.

Finally I was able to boot into the Finder. It was glorious and looked as beautiful as a Mac should look… circa 2001. Without video card drivers I was stuck at 1024×768 mirrored on both my monitors. I poked around the ‘net a little bit, but decided my priority needed to be network drivers. My Dell has an on-board Broadcom NIC, which seemed pretty common, and although it didn’t work out-of-the-box, there were plenty of forums with solutions for hacking support for my particular DeviceID into the built-in drivers.
Alas, none of them worked. I got as far as getting OS X to recognize the card, but hit the issue with it not knowing its own MAC address. I tried the solution that basically has you telling it the MAC from the terminal at each boot, but that failed. I gave up and bought $30 D-Link card with manufacturer’s official drivers available.

Side note: that card never worked either, but thats because I had forgotten that I’d disabled my PCI slots in the BIOS, intending on turning on all on-board devices one-by-one once I was up and running. Note, that the on-board NIC WAS turned on. There were just no working drivers.

I turned my attention briefly back to the video card, hoping to get at least one thing working properly. I was able to download a bunch of drivers using the Craptop and burn them to CD for use on the Hackintosh. All of them installed, none of them worked. I finally hit upon a forum post that pointed out issues with the Radeon 1300 cards. Despite being a member of the 1X00 family, these particular cards were not supported properly by NATIT.

Sound wasn’t working either, and there was no solution, or potential solution online. And here I gave up.
I do wish I had gotten it working — it was pretty darn cool. But at > 20 hours invested and nothing to show for it except the Finder, and no hope in sight for Video card drivers, and problems reported running VMWare on a Hackintosh, I decided it wasn’t worth investing any more time in. Still it was a righteous hack, and if I had a machine with compatible hardware, it would probably have been worth it.

Oh well, I’ve been running Vista SP1 for the past week or so, and its actually not that horrible.

One response so far

Nov 05 2007

Experiments in Virtualization

Published by Jonathan Wise under Articles

Virtualization is so hot right now… (although it can’t be that hot, because my spell-checker doesn’t even recognize it as a word.)

The concept is that as hardware gets faster and faster, we’ve actually reached the point of diminishing returns on all but the most grueling of tasks (HD Video rendering is the only other thing I’ve seen that really taxes a modern PC.) Now we’ve got hardware that can support not just one environment without breaking a sweat, but 2 or 3.

At work we have a server running VMWare’s ESX Server that’s currently running 16 “virtual” computers at once. None of this is that new — what is new is the way processors are being built with this kind of thing in mind. Intel’s Core2Duo is made for virtualization, and nothing proved this to me faster than Parallels Workstation.

I have a fairly recent Dell Laptop, based on a the Centrino chipset — essentially a P4, at 1.3GHz with 2GB of RAM. It runs Windows and VisualStudio adequately. For awhile, I was given the use of a MacBook Pro, running a CoreDuo. The thing screamed running its native OS — OS X 10.4, but when I booted up Windows XP inside a Parallels virtual machine, I was astonished to find that Windows actually ran faster virtualized on my MacBook then it did on my Dell. I used it for my day-to-day development, rendering video in one machine, while compiling code in another. And I was sold.

A colleague of mine has taken this concept to its logical extreme, and I won’t pretend to have his knowledge on the subject. Rather, if you’re interested, you should read his posts.

  • Build Machine Virtualization discusses how he eliminated the need for frequent hardware replacement and streamlined our company’s build process using VMWare.
  • Development Machine Virtualization discusses how he’s created specific environments for different development tasks, while still adhering to our I.T. departments onerous rules.

The latter article is the one I’d like to build on with my own thoughts here. My set-up, briefly…

I’m using a desktop computer — not a laptop, as my afore-mentioned Dell left a bad taste in my mouth. The desktop is a Dell as well, since I.T. gives us no other choices, but despite being as ugly as sin cosmetically, its a very nice machine:

Processor: Intel Core2Duo @ 2.4Ghz with a 1Ghz FSB
RAM: 4GB @ 800Mhz (although Windows XP only recognizes 3GB)
Hard Drive: 250GB SATA II 7200RPM
Operating System: Windows XP SP2 - I.T. Core Load

The real beauty of this set-up is that the OS referred to above, which I consider to be less than satisfactory (at the least, they should have used Windows XP 64-Bit), really doesn’t matter — it could even be Ubuntu. Its only the host OS. As Shawn recommends, I’m running a very light-weight collection of apps, that I’m happy to let I.T. manage for me. I’ve got Windows and Office, plus a messaging client and FireFox, and various Remote Desktop/VNC clients. That’s it. Add VMWare, and from here, I can have the world…

Currently I’m running two “virtual” computers running Windows XP, one running Windows Server 2003, and one running Mac OS X…

My Development VM gets 1GB of RAM, and has a 50GB pre-allocated virtual hard drive. I took a snap-shot when I started, but I realised later I could have achieved the same thing, just by copying the VM directory off to an external archive hard drive. Either way, if anything gets messed up in Windows (which, lets admit, happens fairly frequently) I can just revert the whole system to a working state with a couple mouse clicks.

My Test VM gets 512MB of RAM, more if it needs it, and a 15GB growable hard drive. This is a “clean” install of Windows XP, updated with nothing installed on it. I run the latest version of the software I’m developing on this.
Whenever I want to test how a specific build of my software behaves when installed on a customer’s computer, I can snapshot back to its “clean” state, and run the Setup program.

My Server VM is a machine I took from our Green Bay office while there. They had a virtual server configured with a replica of a customer’s configuration, and all I had to do was copy it to a portable hard drive and carry it with me. It has a pre-allocated hard drive, and gets 512MB of RAM — more if needed.

My OS X VM lets me run Mail.app (my preferred mail client), PhotoShop and other nice programs that only Mac has to offer. It should be noted that performance on this machine is not stellar — but that’s only due to a lack of driver support, since Virtualizing Mac OS X is not supported.

The coolest of these virtual machines is the Development VM — it was made from an actual physical computer. A little app called VMWare Converter can run on a machine, and create a VM out of it. So doing, I was able to switch from my old computer to my new one in a matter of hours, instead of the day or two it normally takes to get Windows, VisualStudio + Orcas, SQL Client Tools, .NET 1.0-3.0, and TortoiseSVN up and running on a fresh box.

The performance on any 3 of these machines running at the same time is equal-to, or better-than a physical computer only a year or two old. With two monitors, and an RDP connection to another headless server I have running behind me, I can juggle 5 computers at once, (6 if you count the host) with more than adequate performance.

I’ll point you again to Shawn’s articles if the benefits of this set-up aren’t self-evident. I was initially a little unsure that the VMs would be responsive enough for my daily use, but VMWare and the Core2Duo have proven to be a stellar team…

6 responses so far