As a much delayed followup to my post about getting OS X 10.5 Leopard running on a “Generic Beige-Box PC“, I have finally discovered how to install and run OS X 10.6 SNOW Leopard on the same system. The Mainboard is the MSI 975X Platinum PowerUp Edition, and I’ve got a Core2Duo E6600 installed with 8GB of 800MHz DDR2 RAM.
I had numerous issues with this install from the outset, but perseverance prevailed. The most worrying problem I had was that in my initial attempts at booting the Retail Snow Leopard DVD it would hang at various points requiring a hard reset, at which time I was faced with a completely wiped CMOS/BIOS. I have now discovered that the issue is with my Real-Time Clock settings in my BIOS DSDT table, so I had to boot into my working install of 10.5 Leopard and run a DSDT patcher to get a “dsdt.aml” file that I could use with the Chameleon Boot-loader to override what my BIOS was reporting.
After patching the DSDT with the RTC fix, I could now boot into snow leopard without worrying that my BIOS would be reset. Next up was to disable the AppleIntelCPUPowerManagement.kext distributed with Snow. This is easy, and just requires NullCPUPowerManagement.kext to be placed into your /Extra folder for chameleon to pick up.
Onto determining why I was getting kernel panics caused by IOATAFamily.kext. After trawling insanelymac for a few hours I found that it was due to my mainboard only having one IDE Channel powered by the Intel chipset (with the other channel powered by JMicron). It was a known issue on notebooks, but I figured it was the same issue I was having anyway and downloaded the replacement IOATAFamily.kext. This kext cannot be put into Chameleon’s /Extra directory, though, as the Apple one will always override it. So I had to remove the original kext from /System/Library/Extensions from the install DVD first, and then replace it with the hacked version.
The final problem with getting the system to boot was figuring out why LoginWindow.app was crashing, or more to the point why fontd was causing loginwindow to crash. I found a brief post from someone referring to a beta build of snow leopard stating that the encryption had changed for some of the binaries, and that dsmos.kext, the stalwart of most 10.5 Leopard installations was no longer suitable. Luckily, netkas has already been working hard and has produced a new fakesmc.kext to replace the dsmos.
I was now, with all these tweaks, able to boot Snow Leopard.
Hardware was still an issue, however, but there are solutions for my nvidia card and the onboard alc888 audio. The scariest fix here was the audio, as again I had to delve into the dsdt table to add a brand new section replacing the existing audio section. I couldn’t get my JMicron kext to work, so I’ve just disabled the controller in the BIOS.
The files I used are all below, so you don’t have to go hunting.
dsdt.aml place this in /Extra – includes audio and rtc fix for MSI 975X Platinum PowerUp Edition.
fakesmc.kext place this into /Extra/Extensions
LegacyHDA kexts place these into /System/Library/Extensions – these work in tandem with the audio dsdt fix. EDIT: these don’t work with the 10.6.2 update. Use LegacyHDA.kext which again is designed to work with my custom DSDT.aml file. I manually edited this kext from an online source. Place this kext in /Extra/Extensions and delete any copies of the kexts you downloaded from the bundle I’ve crossed off at the beginning of this paragraph.
NullCPUPowerManagement.kext place this into /Extra/Extensions
OpenHaltRestart.kext place this into /Extra/Extensions – I don’t know if this will work, yet as I’ve not tested it thoroughly. EDIT: rebooting works fine.
AHCI kexts place these into /Extra/Extensions – They fix SATA issues and are standard on virtually all OSX86 installs.