Orwell - HTPC Server

Orwell Side Orwell Top Orwell Front

I decided to downgrade my current HTPC system (MythTV 0.18.1 on Debian GNU/Linux 3.1r1) to get rid of the noise, but keep some of the performance. After a week's research, I decided to go for the Pentium M architecture, despite the rather excessive cost of the motherboards. This was quite a novelty to me, as I hadn't used an Intel chip in a desktop since the heady days of AT.

After much deliberation I had decided on the Aopen i855GMEm-LFS motherboard, which had an AGP slot for my FX5200, and a P4 (socket 478) HSF mount on it, which would hopefully let me mount a good, quiet (perhaps even passive) cooler. I have to thank the guys from SPCR for doing such a great review of this board, and also it's HTPC potential. I picked one up for £140 inc VAT from PCNextDay. When it arrived I found it had a BIOS revision giving it support for 533Mhz FSB, good news for a potential upgrade later on.

I picked up a Pentium M 725 (1.6Ghz, 2MB L2 Cache, 400Mhz FSB) from eBay, for the princely sum of £40; a bargain! I also grabbed a Zalman CNPS 7000B-Cu, and some Arctic Cooling Ceramique HSF compound, coming to £30 inc VAT.

So the day eventually came to do the big install. I must confess I was a little apprehensive as to whether the SATA chipset on the motherboard (Promise PDC20579) would work with the latest Linux kernel. I had found a page which although was fairly useful seemed a little out of date, saying it would work with a patch, or with the manufacturer's rather out of date and somewhat abandoned looking driver, which didn't even seem to work with the PDC20579. This was a non-event: I couldn't use the manufacturer's (probably abandoned) driver, as it couldn't be compiled into the kernel, only compiled as a module, and as this drive was my boot drive, the driver has to be compiled in, not a module. So I took a look at the patch, and had a good google around to see any other success stories, but alas there were none. I found a page that had the patch on, and also later a note from the libata developers, possibly saying they had applied the patch to the kernel drivers. I also happened upon the infomation that the PCI ID for the PDC20579 was 105a (for Promise) 3574 (for the PDC20579). I then greped the kernel source for the PCI ID, and found it in the pci.ids file, so I was getting a little more optimistic.

So as I was saying it was with some trepidation that I started the installation. I took out the old board and HSF, applied some Ceramique to the new HSF, very carefully installed the CNPS7000B-Cu (as the Pentium M doesn't have a heat spreader like the P4, so the HSF sits directly on the chip), and installed the new board. I was confident of the cooling abilities of the CNPS7000B-Cu, so dropped it down to the lowest speed setting (IIRC 5v). After plugging everything in, I switched it on, and crossed my fingers.

It booted up, and I set some basic BIOS options, disabling the second NIC, and onboard VGA, then I let it go and try and boot to the hard drive. The SATA RAID BIOS went by, asking if I would like to set up some RAID, but I let that go by, assuming it would pick up my non RAID SATA drive, and boot from it. Alas no, I assumed wrong. So I had to CTRL-F to go into the SATA RAID BIOS. At this point I was getting rather worried, as all RAID controllers I have used in the past have wanted to initialize a drive before even recognizing it's existence, which inevitably wipes the drive. I selected Auto Setup. It looked at my drive, and suggested I make a RAID 0 array. I didn't want that at all, but there was no way to tell it so, so after praying to the god of hard drives, I pressed CTRL-Y to create the array. It then asked me whether I wanted to Initialize the drive, and setup the array, or just setup the array. So I pressed NO (i.e. just setup the array), still praying. It quickly did it's job, and I exited the SATA RAID BIOS feeling optimistic. I rebooted. It came up. It POSTed, the SATA RAID BIOS came up, it picked up my drive, and... Woo Hoo! It booted the drive, found grub, and booted my kernel! Whee!

At this point, I still didn't know whether the drivers in the kernel would work. The kernel started booting, then abruptly stopped. NOOOOOOOOOO. The drivers didn't seem to work. But, don't give up hope dear reader, as I quickly realized I had simply forgotten to select the shiny new kernel (2.6.15), with the additional drivers built in. I rebooted, and selected the new kernel this time, and, it came all the way up, Yipee!

Once booted, I quickly set the default kernel in /boot/grub/menu.lst to the new kernel. Then I compiled the NVIDIA drivers:

        $ ls NVIDIA*
        NVIDIA-Linux-x86-1.0-8178-pkg1.run
        $ sh ./NVIDIA-Linux-x86-1.0-8178-pkg1.run
      

... and the LIRC drivers:

        $ cd /usr/src/lirc
        $ ./setup.sh
        > avermedia98
        > save & configure
        $ make
        $ make install
      

And ran the sensors-detect program to setup the temperature, and voltage sensors for the new motherboard: $ /usr/sbin/sensors-detect

After that I ran cpuburn for a while to really get the new CPU going, and see how the temperatures held up. These are the temps I got, bear in mind that the Pentium M, has a max safe temperature of 100C:

        Normal Load:
        System: 30C
        CPU: 35C
      

Temps after 1 Hour of CPUBurn:

        System 35C
        CPU: 45C
      

All in all I think that is once hell of a good HTPC. I was thinking about perhaps overclocking the CPU a bit, as there is a small but noticeable performance hit when doing certain activities in MythTV, and recently came across an article which may allow me to trick the motherboard into thinking my Pentium M 725 actually has a 533Mhz FSB, which should give it a good 33% performance boost, although it is quite a nasty hack. Noise wise, in a completely silent room, I couldn't hear it at all from 4 feet away, and could just about hear a faint hum from around 1 foot away. Running the HSF passively could potentially reduce this slight noise, but I would rather not do that, as the motherboard needs a little airflow around it really (and besides there would still be the very quiet PSU noise).

I have since ordered a Dlink DWL-122 802.11B USB WLAN adaptor, so I will have to get the drivers sorted for that. I will also be upgrading MythTV to the new 0.19 when I get a moment.

Update: March 13, 2006

I have since upgraded MythTV to 0.19, it was a very easy process. I had to switch from using Debian etch (testing) to sid (unstable) to get the latest software needed for some of the plugins. My /etc/apt/sources.list contains the following:

	# Official Debian sid repository
	deb ftp://ftp.uk.debian.org/debian/ sid main contrib non-free
	# Unofficial repository containing lots of goodies such as libdvdcss, mplayer and mythtv debs
	deb ftp://ftp.nerim.net/debian-marillat/ sid main
      

After a quick apt-get update; apt-get dist-upgrade, I was ready to go, and installed mythtv. Alas an error. It wasn't happy about the fact I already had a user called 'mythtv' (from my previous installation). I took a backup of /etc/passwd, then fired it up in vi, and deleted the line for mythtv. Then I did a quick apt-get -f install, and mythtv finished it's installation quite happily. I then just restored my backed up /etc/passwd, and was good to go.