Stranded In The Southland

Tuesday, June 16, 2009

Geekin' Out With A New Desktop

[Okay, this post is really just for future reference for me, or for the two or three people who I know who care, or maybe just for folks who are googling for some solutions to issues with the same gear as I have. Oh, wait, that disclaimer applies to almost everything I write on the blog. Doh.]

I recently upgraded my desktop hardware at home. I'd been using a Pentium II system that was on the order of 10 years old. I wanted to do some Android development, which required a faster box with more RAM and more disk space; I wanted to play around with Xen and KVM and other virtualization tools; and, of course, I wanted to play some modern games!

Now, I could most of that on my one-year-old Thinkpad -- I'd already done a bunch of Android development on it. It's painful, though, to reboot your main mail and web surfing box to play a game or do development, then reboot it again to check mail, and then back again. It's just not the way to get things done.

Besides, my desktop drives a couple nice monitors with a decent ergonometric keyboard and all the rest. It can have a really beefy graphics card for games, rather than the light, power-saving graphic card in the laptop. Big-ass disks are cheaper for desktops, and having a separate machine around is often important when things go wrong. And a 10 year old desktop is just wrong on so many levels.

I was mostly aiming at reasonably fast, quiet box, but didn't want to pay a mint. Looking at the available CPUs, I briefly considered going with AMD, but eventually decided that I didn't want to hassle with the million and one chipsets that are deployed for AMD (I run a bunch of open-source OSes, and weird chipsets don't often get supported in the way that the big ones do). Intel introduced a cool new CPU and chipset just six months or so ago, the i7 and X48. This is a big step forward, with a memory controller on the CPU which speeds things up considerably (AMD did this years ago!). Unfortunately, the cheapest i7 is about $300, which requires a $200 motherboard and slightly more expensive memory.

Given that I didn't want to spend a mint for CPU power I wasn't going to use, I went for the older generation, and picked up an E8500 Core 2 Duo. I wanted a fair amount of per-CPU grunt to drive games with weak-ass threading like Flight Simulator X, and I wanted virtualization support (a bunch of the nice cheap CPUs in the E7xxx and E5xxx lines don't have it). At the time, the E8500 came in at the right price point.

I wanted a P45-based board, with the possibility of running more than one GPU, in case I pick up another monitor (I have two, and a 24-incher certainly would be nice!). Since I was going to be running NetBSD and Linux (and who knows what else) on this, I wanted something with well-supported sound hardware and Ethernet. For better or worse, I also wanted Firewire (despite having a perfectly serviceable PCI Firewire card sitting around). I wound up with an Asus P5Q PRO, which is older, but still featureful enough.

I wanted a beefy enough graphics card to play some modern games, along with support for dual monitors (it's hard not to get this support these days, but still). As an open-source guy, I liked the fact that ATI was a bit more open about how to program their hardware than nVidia, and, anyway, the 48xx series was at the top of the heap when I was ready to buy. I picked up a Saphire HD4870, which has nice built-in heat pipes and exhausts directly out of the case, which will help to keep the in-case temperature down.

I'm fairly concerned about noise; who wants to have something in their home office that sounds like a vaccuum cleaner for hours on end!? I went with an Antec Solo case, which has been around for awhile, but seems to provided really amazing sound absorbtion. It's not a really deep case, so it might be that there are some PCI/PCIe cards out there that don't quite fit. This could be a problem with next-generation graphics cards, but I presume that if I buy some amazingly trick-ass graphics card, the cost of a new case will be the least of my problems. :-)

I went with a Corsair 650TX 650W power supply, which was way, way overkill. Again, I thought I might need the ability to put in a second graphics card (hence the need for the fancy motherboard with two graphics slots). I suspect that this was still overkill if I put in a second 4870 card. Oh, well, it's supposed to be a very efficient power supply, so hopefully the overkill isn't wasting too much power.

RAM is getting incredibly cheap, so I went with 8GB of RAM from GSK. Again, this is probably overkill, but it's a pain to upgrade later, and it's nice to never, ever swap.

I topped it off with a 640GB Western Digital Caviar Black drive -- there are larger drives available, but I don't do a whole lot of multimedia stuff, so I didn't really need even this much space. Thinking about upgrades, I'd really be more interested in adding a Solid State Drive for maximal speed, rather than trying for more space. I just threw in an old IDE DVD+/-RW drive from my old box.

This was all relatively easy to put together, in the end. The case was really top-notch and easy to deal with, the motherboard manual was pretty good, and SATA is even easier to route than IDE. I did have some troubles getting the motherboard seated perfectly, with the built-in devices sitting properly against the edge of the case. After unscrewing everything, pressing hard to get the motherboard in the right place, and replacing the screws, it was all fine.

I've been pretty happy with the machine, but I kind of regret not spending $20 on a new DVD writer. The Marvel 61xx IDE chip has been misbehaving from the start, and it's been tough to get good Windows drivers (Linux and NetBSD work pretty well). I'm still struggling with difficulties installing games from DVD. Doh.

The Atheros Ethernet chip caused me a few headaches under Linux and NetBSD, but nothing too onerous. I actually had to fix about 10 lines in the NetBSD driver, with the real difficulty being the FreeBSD and NetBSD versions of m_devget(9) treat the arguments differently.

Other than that, it's been a fine, fine machine, and it's flawlessly run any number of games and let me do some fun development. Woo hoo!