Mini-ITX Server
This page was never really finished and is rather out of date now. However, I've left it here in the hope that it may still be of some use to someone looking into building their own ITX box.
Introduction
For over a year now I've been running an old PC as a Debian Linux server in my house. The main reason for setting this up was to act as a music server for my squeezeboxes. However, the moment I had a Linux server in the house, I started using it for all sorts of other tasks—fileserving, PC backup via BackupPC, Subversion repository etc. The server very soon became invaluable, which meant it had to be left on almost all the time. However, this was a problem, as it was a noisy and power-hungry beast. I started to look for ways of drastically reducing the power requirements and noise levels of such a server, and this is where this project began.
Basically, I needed a new PC to act as a server, which could be left on all the time, would be as quiet as possible and would use as little power as possible—especially when not really in use. I didn't do anything too CPU intensive on my present server, so brute CPU power wasn't really needed. Given that my old server was a PIII/500, I could safely assume that anything new would be more than quick enough. One other requirement was that the server should be small—I wanted to be able to put it discreetly away somewhere.
Given these requirements, I quickly found three major contenders. Both Aopen and Shuttle sell small, quiet systems using custom form factor motherboards. However, these weren't particularly cheap. By building a system myself, I could bring the price down considerably. For me, the best looking solution was that offered by Mini-ITX. This is a motherboard form factor that uses 170mm x 170mm boards, typically designed specifically to use very little power and to run very cool. Some Mini-ITX boards use a single fan to cool the CPU, but several don't have any fan at all. Now we're talking! Better still, Mini-ITX is cheap.
Now I'd found that completely fanless motherboards were viable, this opened up the wonderful prospect of a system in which the only moving part was the hard disk. By finding a quiet hard disk, and making it spin down when not in use, this would lead to a virtually silent system. The only tricky part would be to put it together inside a case that would run without fans and not turn into an oven.
Components
Motherboard
The first thing to decide upon was which motherboard to buy. I'd already decided to go for a Via motherboard, so just needed to decide which one. A fantastic resource for all things ITX is www.mini-itx.com. These provide extremely detailed information about each motherboard available, and also sell them to you for a decent price. I wanted a fanless motherboard that would support SATA, so this limited my options quite nicely. At the time that I was looking, the brand-new EPIA EN range became widely available. The EPIA EN 1200G offered a fanless 1.2GHz processor, dual SATA and gigabit LAN - perfect!
The nice thing about modern motherboards is that they have practically everything built in. My server was to be headless, so the only extra bits that I needed were memory, a hard-disk, a case and power supply. I didn't even need a CD-ROM drive.
Case/PSU
This was the tricky bit. There are loads of Mini-ITX cases on the market, but very few of them are completely fanless. Out of the ones that are, they tend to be a) expensive and b) the wrong shape (hi-fi separate shape rather than small and thin). There were several cases that include fans that they probably didn't need, but these also tended to include a PSU with a built-in fan. At one point, it looked as if I would have to buy something like a Morex Venus 669, take out its fans and replace its power supply with a fanless model (something like the fantastic picoPSU, coupled with an external AC adaptor). However, eventually Andrew Taylor of AudioFi came to my rescue with a post on the SlimDevices 3rd Party Hardware Forums. Andrew pointed me at the SilverStone LC12 (Lascala). This was a fanless case with a fanless 60W power supply. It didn't support PCI cards (no rear access) and I was a bit dubious about the "cooling solution" (holes in the top and one side!), but I decided to give this a go. To be honest, there wasn't much else out there!
Hard Disk
Build
Setup
Board uses 64MB memory for graphics card by default. Can turn down to 16MB, but don't set it to 0!
Installing Debian
The following is just my notes that I made whilst doing the install.
Issues with sarge - locked keyboard, didn't appear to recognise network interface Went with etch instead, via business card installer. Wouldn't boot - GRUB loading stage 1.5 BIOS setting - Internal SATA controller mode - change from RAID to IDE
ssh - disable root logins, restrict logins to public key auth only Defaults to 486 cable - try 686 WARNING: The following packages cannot be authenticated! linux-image-2.6.16-2-686 linux-image-2.6-686 Install these packages without verification [y/N]? y http://www.debian-administration.org/articles/174 apt-get update install lm-sensors (for 2.6 the i2c modules are already in the kernel tree) > sensors-detect > sensors "Can't access procfs/sysfs file Unable to find i2c bus information;[...]" http://www.debian-administration.org/articles/327 (modprobe thermal?) > cat /proc/acpi/thermal_zone/THRM/temperature hddtemp smartmontools (not working yet) > smartctl -a -d ata /dev/sda enable in /etc/default/smartmontools reiserfs vs ext3 295G free - reiser at defaults 276G - ext3 at defaults 290G - ext3 -m 0 smbpasswd max slimserver - it means it when it tells you to run /usr/local/slimserver/Bin/build-perl-modules.pl ! noflushd - doesn't appear to work with sata disks hdparm -y spins down the disk, but it will come straight back -Y Immediately forces the drive into sleep mode. Note that the drive can only be reaccessed after a complete machine reboot. ;-) hdparm -M 254 noticeably increases drive noise, the default is 128 laptop-mode-tools http://www.thinkwiki.org/wiki/Problems_with_SATA_and_Linux http://www.xs4all.nl/~bsamwel/laptop_mode/ http://pkg-exim4.alioth.debian.org/README/README.Debian.html logwatch - /etc/logwatch/conf/override.conf, apt-get install libdate-manip-perl