My Core i7 950-based Hackintosh is alive. I’m using a Gigabyte GA-X58A-UD5 motherboard, a D-Link DWA-556 wireless card, and an nvidia GTX 260 video card. To install, I used Empire EFI 1.85 r2 to bootstrap the retail 10.6 DVD, which I own. I had to provide the “GraphicsEnabler=Y PciRoot=1″ options to the Empire EFI loader to successfully boot the DVD. Once installed, I used the Chameleon 2.0 rc4 boot loader from a USB stick (Chameleon cannot boot DVDs directly, or else I’d have tried that first) to boot my machine. As to be expected, there were several caveats along the way.
First, I had to patch my dsdt (basically, BIOS-level device description table) to be compatible with Chameleon and other EFI-translation layers to provide EFI services to Mac OS. I followed the general guidelines for similar Gigabyte boards here. I used the intel “iasl” compiler with Ubuntu 9.10 on my machine to retrieve the BIOS’s regular dsdt, decompile it, edit, and recompile. With my edited dsdt, I have native power-management functionality (rather than using a null driver that effectively makes your CPU run at maximum power-consumption levels all the time). I also have many of my motherboard’s devices working, including Ethernet, USB, and obviously SATA. Shutdown works with just my patched dsdt, but rebooting does not. For that, i had to install a snow-leopard compatible version of the OpenHaltRestart driver. For sound, I used the open-source voodoohda driver, which works just fine. My graphics “just work” with the GraphicsEnabler=Y option, though switching resolutions in games does not seem to function as desired. That said, I don’t really care, because I only ever use my display at native resolution. My wireless card is identified as an Airport Extreme, as I was very careful to get one with the exact same Atheros chipset as those used in Macintosh hardware. I use the fakesmc 2.5 driver to enable some platform devices necessary for booting MacOS, but other than the OpenHaltRestart and voodoohda drivers, everything else is vanilla, stock MacOS with no other modifications. I updated to 10.6.2 without issue.
I did note, however, that Chameleon seems to default to attempting to boot the 64-bit version of the MacOS kernel on my hardware, which is nonsensical. I had to force the 32-bit kernel in order to make my wireless card work, as Apple does not provide a 64-bit version of the driver. I do not understand the fascination with the 64-bit kernel within the hackintosh community. You’ll find lots of people bitching about a lack of a 64-bit driver for this, that, or the other. As people who are actively modifying OS-level software — especially the MacOS kernel — the people writing the software, at least, should know that the 64-bit kernel buys you very little in terms of functionality on MacOS. MacOS can address more than 4 GB of RAM using the 32-bit kernel via PAE. Further, MacOS seamlessly supports 64-bit applications (as well as 32-bit applications) with large-RAM support on its 32-bit kernel. No benchmark data shows any advantage on MacOS with a 64-bit kernel compared to a 32-bit kernel. (Yes, there is overhead switching between modes of execution, so syscall-heavy code can suffer, which is why Xserves default to having the 64-bit kernel on. However, my desktop — even with heavy graphics-card use — does not show this to be an issue). Attempting to default to the 32-bit kernel only reduces compatibility with drivers, for no actual normal-use benefit.
I’m using the F4 version of the BIOS for my motherboard, which is the newest. I did have quite the scare with updating my BIOS, however. I flashed it from a USB stick that I’d installed FreeDOS on. The flash appeared to be successful, according to the program’s results, but upon reboot my motherboard appeared totally dead. It wouldn’t give me anything on screen, it wouldn’t provide any beeps, and just seemed utterly dead. The on-board boot status code LED indicated that it was constantly resetting itself, going back and forth between reset and initial memory tests. I reseated my add-in cards, reseated my RAM, and still, the same result. Finally I reset the BIOS variables (“CMOS” — an outdated misnomer if there ever was one), and thankfully it worked. I was not looking forward to the prospect of returning a motherboard to newegg, but thankfully, it didn’t come to that.
Also, I’m glad I decided to go with the 950 rather than the 920 processor. Apparently newegg got burned with a batch of counterfeit 920 processors last week, which is when mine would have arrived.
On the Windows front, I installed 64-bit Windows 7 (which I bought on sale at launch, knowing I’d need a copy anyway eventually) later, which went smoothly. I disabled the annoying aspects of the hideously unusable menu-bar, basically making the menu function like Windows Vista (which I actually like). It does have some minor improvements versus Windows Vista, particularly with simplified network configuration. That said, it’s really just Windows Vista and an annoying menu bar. Yes, the compatibility-mode feature (running Windows XP sp3 in a VM for a program) is a nice new addition, but for most users, this is not a big deal. Most programs have been updated to run with Vista, and so Windows 7 benefits from the perception that “everything runs better”. Actually, everything runs the same as it did with Windows Vista, now that developers (both 3rd-party and Microsoft) have finally updated most everything to stop doing nasty things like scribble on global, machine-wide registry variables. Regarding multibooting, I used 2 separate drives for MacOS and for Windows. Windows still cannot boot a gpt-partitioned drive, and I wanted to use native gpt partitioning for MacOS. During Windows installation, I disconnected my MacOS drive (which I have since installed the Chameleon bootloader on to, obviating the need for a USB stick on each boot) to avoid Windows writing into the MBR of my MacOS drive. After successfully installing, I reconnected my drive, and Chameleon can correctly select and boot Windows 7 just fine (though you do have to select the “System Reserved” partition to boot, which contains the Windows 7 boot loader). I still need to install FreeBSD on this beast, but overall, I’m quite happy with the machine and with the software results.
Tags: apple, macos, microsoft, operating systems, windows
Your Hackint0sh sounds useful – in fact, I have the x58a-ud5 also. Are you likely to make your DSDT and/or kexts available to download?
TIA
I’ll post the diffs to my disassembled dsdt later this week. I’m using an openhaltrestart kext because I could only get restart (not shutdown) to work, and fakesmc 2.5. Otherwise I’m not using non-vanilla kexts.
I would be interested in this dsdt as well. I have a rig based on this board ordered & should get it Fri or Mon.
I’ve made a new post with the diffs for my modified DSDT, as well as information about which kexts I had to use. Only FakeSMC 2.5 was actually required, but I also have VoodooHDA for sound, OpenHaltRestart to get it to reboot — only shutdown would work otherwise, and a null driver to get OS X to recognize my SATA ports as internal rather than external so that I didn’t have orange icons for hard drives. The last 2, however, are more convenience rather than functionality.