Time for an upgrade

My main linux box here is about 3 years old now. The case is older, but I bought the cpu, motherboard, graphics card and some of the ram when the first Core 2 Duo’s were announced. It was expensive at the time, but it was well worth it. I bought a 1.86GHz E6300 C2D (not to be confused with the more recent 2.8GHz Pentium E6300 that Intel make).

The motherboard was a Asus P5LD2 which was one of the few ‘cheaper’ socket 775 boards available at the time that were compatible with the (then) new Core 2 Duos. It’s an interesting board as it has three IDE channels (ie. up to 6 IDE drives) and four SATA II interfaces. It uses a 945P chipset which doesn’t have a great reputation for overclocking. However, I could get the E6300 to run at 2.33GHz reliably which was ok.

More recently I’ve added more ram to the board ( four 1GB DIMMS in total) and discovered the problem of some of these older socket 775 chipsets. They can really only have 3GB maximum RAM. I thought this was just a 32bit OS problem, but 64 bit OS’s have the same problem with this board. Basically the chipset can only address 4GB of memory, and quite large chunks of memory are mapped for various IO purposes, which is made worse by certain types of cards (I think I get 3.5GB if I pull out my TV tuner card, 3 or 3.2GB with it plugged in). I know some older motherboards have an option for remapping a memory hole … but even on the latest BIOS, I don’t have such an option.

Also, the board is limited to mostly older core 2 duo chips, and quad cores are definitely a no go.

So, like any tech nutter, I’ve been researching the best ‘bang for buck’ upgrade. All the Intel socket 1156 i5/i7 chips came out a month or two ago and they do indeed look quite interesting. The i5 750 is quad core, but all the i7 models have a newer form of hyperthreading so it is a bit like getting ‘8 cores’. To upgrade my system to i5/i7 there is quite a bit of expense (close to NZ$1000 just for an i7 860, motherboard and 4GB of ram), so I wondered exactly how much faster they really are. A good tool I found is the anandtech bench (beta).

With the Anandtech bench you can compare benchmarks between any two CPUs that they happen to have reviewed. A good test I thought would be to compare the i5 750 against an older quad core like the Q8400. The i5 is definitely faster in most tests, but in some of the tests that I’m interested in (like the x264 tests) it’s not ‘amazingly’ faster.

So feeling quite ‘cheap’ I thought I’d just upgrade my motherboard to a newer socket 775 board. That way I could keep my DDR2 ram, keep my core2duo and immediately get a full 4GB of ram, plus the ability to get a quad core core2duo later on. Sounded reasonable at the time. So I did some research and ended up coming home with a Gigabyte EP45-UD3LR board.

Supposedly the EP45-UD3LR can handle 16GB of ram … but until someone makes cheap 4GB DDR2 DIMMs, I’ll be happy with 4GB. It’s a full ATX board and has no onboard gfx. Just sound and the usual plethora of usb and sata ports. Now, I usually run linux on this system, but a secondary reason for getting this board is that these ‘EP45’ boards are very popular in the Hackintosh community for turning regular PC’s into ‘hacked’ OSX systems. I don’t really need another Mac, but all this hackintosh stuff is quite an interesting diversion in my pursuit of time wasting activities.

So for the past few weekends I’ve been playing with installing Snow Leopard on this thing (I actually bought the retail DVD for it). It’s still a far from simple process, that requires reading copious Howto’s and forum posts on InsanelyMac and other related sites. There are a number of complications; a) All the Gigabyte EP45 boards are slightly different, so while lifehacker.com might publish some nice howto’s for someone using a EP45-UD3P motherboard. My EP45-UD3LR is not ‘quite’ the same b) There are different ‘approaches’ you can take that have bizarre names that unless you’ve been trawling forums for quite some time you won’t understand; you can use hacked kexts, you can modify the DSDT, you can ‘inject’ EFI strings and seemingly you can use a combination of these .. though I’m not entirely sure. I think what’s happened is that the hackintosh community is obviously trying to increase the probability that when you do an Apple ‘Software Update’ that includes a kernel update (eg 10.6 to 10.6.1) that your machine doesn’t die painfully. I got the idea that modding the DSDT instead of injecting EFI strings somehow makes things ‘better’ and a big goal is to reduce the necessity for hacked kexts.

So does it work? Yes it does. A lot better than I thought it would even though I have had intermittent crashes (the screen goes dark and you get a message telling you to hold in the power button) which I think I’ve finally resolved (my Nvidia card seems to hate the 64 bit kernel drivers, but works OK booting in 32 bit mode). I won’t go into all the detail of what I did to build the thing, but here are my key points;

  • I used the lifehacker.com ‘How to build a Hackintosh with Snow Leopard Start to Finish’ article (the original article, not the followup)
  • I also referred to this EP45-UD3R guide on insanelymac. Especially the bits about setting the UUID in /Extra/smbios.plist and the PlatformUUID.kext. I found I couldn’t install Chameleon onto the hard drive until I got the UUID fixed
  • I have an old GeForce 7300LE card with 128MB of RAM. This card is not listed in EFIStudio, but originally I just selected GeForce 7300 GT 256MB which seemed to work OK. I also noticed the Front Row would not work at all unless I had something like the following in /Extra/com.apple.Boot.plist:
        <key>Graphics Mode</key>
        <string>1280x1024x32</string>
  • I used the ‘SL Pack’ that is referred to on various insanelymac howtos, especially the Extras folder it tells you to start with. ie. I didnt use the one that the LifeHacker article refers to. Though I did originally use the lifehacker one. I have no idea if there is any difference.
  • To get my ALC888 sound to work required quite a few steps. There’s a really useful comment by Dith close to the bottom of this forum page. I followed the steps that start with ‘Redid my whole Snow Leopard installation’. And then I grabbed the LegacyHDA.kext that is at this path in the SL Pack and copied it into /Extra/Extensions replacing the one I already had.;
    SL Pack/DSDT Stuff/How to Patch DSDT /series of LegacyHDA 888 (ALC888)/3out2in HDA headphone/LegacyHDA.kext
  • I manually enable QE/CI (well I think I did) by sudo’ing to root and running;
    defaults write /Library/Preferences/com.apple.windowserver GLCompositor -dict tileHeight -int 256 tileWidth -int 256
  • I tended to run ‘Kext Utility’ between a lot of the above steps. Never sure if it makes much difference.
  • I later found that OSX86Tools can generate the EFI string for my GeForce 7300LE 128MB card. So I used that in my /Extra/com.apple.Boot.plist hoping that it would fix my intermittent crash problem. It didn’t fix the crashes, but it did make me feel warm and fuzzy.
  • I found that I could consistently crash the machine by running ‘Chess’ and just moving the mouse. Obviously Apple knows that I’m not very good at Chess, and was saving me some misery … These crashes were with a 64 bit kernel. Then I tried booting with a 32 bit kernel and Chess works fine, and so far no crashes (though I still can’t play Chess very well). I’m using Chameleon RC3 and had to put ‘arch=i386’ in the /Extra/com.apple.Boot.plist file like so;
            <key>Kernel Flags</key>
    	<string>arch=i386</string>

I’ve since updated from 10.6 to 10.6.1 with no dramas. The upgrade to 10.6.2 had some minor hitches in that you need to remove the older SleepEnabler.kext. See here for more info.

And of course, the new motherboard works fine running linux too!