Building a mini-ITX ION Based HTPC

Motivated by a heavy summer storm, where lightning struck a tree in the front garden of one of my neighbors, killing my iPod, I’m building my very own HTPC. Besides my broken iPod, also the fact that the cost of compact sized hardware has dropped, was another reason to start looking into the option of building a little media box. Last but not least, having an iPhone that fits my entire iTunes library, I don’t need another portable music player anymore.

I’ve got several purposes planned for my media box, namely: to host my music library using Squeezebox Server, connect it to my amplifier and play music with it, connect it to my TV to be able to play videos with it — most likely using XBMC, and to use it as a little webserver and source control server. With that in my mind, I pointed Safari to a couple of hardware web shops, and ordered the following hardware to start with:

  • Mini-Box M350 — Currently one of the smallest (if not smallest) mini-ITX enclosures, very suitable for fanless operation because of its design for natural air convection. I’m not planning on installing a internal DVD or Blu-ray drive, which would require a different case.
  • Zotac ION ITX A-E — A low power dual-core Intel Atom N330 @ 1.6Ghz operated mainboard, with nVidia ION graphics processor capable of 1080p video playback. Perfectly fits my needs. Should even be possible to operate fanless, but we’ll see how hot it will get when I finally put the pieces together. One of the nice things about this mainboard is that it comes with an integrated PSU, which saves you some money and installation hassle. Goes well with the M350 too.
  • Zalman Fan Mate 2 – Just to be sure, when things get too hot, I can still install the optional fan that comes with the mainboard. With this handy tool it’s possible to reduce the fan’s speed to reduce the produced noise, because usually the fan doesn’t need to be running full speed.
  • WD5000BUDT — A 2.5″ 500Gb Western Digital hard drive design for systems that are running 24/7. Low power, cooler operation and 32Mb cache.
  • Kingston 2Gb DDR2 — Running at 800Mhz, the highest speed supported by the Zotac board, I’ve only ordered one piece of 2Gb. I might consider upgrading to 2x2Gb to take advantage of the Dual Channel feature. But for now, I’m sticking with only one piece of 2Gb DDR2 memory.

The grand total of these 5 items was € 335.56. If I’d had to buy a new iPod Classic and docking station (which were both dead), that would’ve cost me € 278. So for an additional € 57.56 I now have a full blown little media pc. Not bad. Not bad at all.

Ubuntu, setuptools and --install-layout=deb

I wanted to start out with some wxPython GUI testing and was trying to get dogtail installed on my Ubuntu 10.04 system. The current dogtail version that you can install with Synaptic is 0.6.1, while I want to try out 0.7.0. So I grabbed the source from dogtail’s website, unpacked it into /usr/local/src and ran:

$ cd /usr/local/src/dogtail-0.7.0
$ sudo setup.py install

However, when I tried to run sniff for example, it can’t find it’s image files, because it’s looking explicitly in /usr/share instead of /usr/local/share. Ok, so let’s try again:

$ sudo setup.py install --prefix=/usr

This time, sniff start complaining that there’s no module named dogtail.config. A bit of Googling tells me that Ubuntu doesn’t have /usr/lib/pythonx.y/site-packages in its path by default. Only site-packages inside /usr/local/lib/pythonx.y and dist-packages in /usr/lib/pythonx.y are added to Python’s path by default. This is to clearly separate the place for packages that are included in the Ubuntu distribution (dist-packages) and those you install yourself (site-packages).

Now there’s a special argument for distutils if you want to install a “distribution” package manually, namely --install-layout=deb. Passing this argument will put the package using /usr as prefix and using dist-packages instead of site-packages, as if you were installing a deb package. So:

$ sudo setup.py install --install-layout=deb

That did the trick for me. Now back to what I was originally wanting to figure out: wxPython GUI scripting and testing with dogtail.

Gnome Keyring Password Problem Fixed in Ubuntu 10.04

After I wrote up my post about problems changing my Ubuntu’s user account password, which didn’t automatically updated Gnome’s keyring, I found that I was not the only one suffering from this problem.

A while ago I upgraded to 10.04, and not long after that I had to change my password again (the half-yearly password-will-expire-soon emails started coming in on the account I use on that system). So I did. And as charlesb points out in a comment on my earlier post, I can also confirm that the keyring password problems have been fixed by the Ubuntu team in 10.04.

Thanks Ubuntu!