Homeserver weekend project
Within the last weekends I spent some hours building an home server to serve files and to let our Macs do encrypted, wireless backups using TimeMachine [Howto]. It also became a wireless router [Howto] with a miserable latency and throughput - but good enough to act as a fallback.
As hardware I reanimated a Via Epia M10000 Mini-ITX board with a 1000 MHz Nehemiah CPU and mounted it in a new Mini-ITX chassis with a fanless external 60 Watt power supply. As the system harddisk I used my iPod mini’s 4 GB MicroDrive using a IDE adapter for about 10 Euros. It is quiet, way faster than I thought and can be dumped to a DVD using a CardReader. I think it’s good to have backups of the system you store your backups on. The shared files and time machine backups are stored on a large external USB drive, also easy to backup.
The operating system is Linux (for sure), I installed Ubuntu Server 8.10 and ran into the first issue right after rebooting the fresh installation: The Via Nehemiah CPU does not support all commands the current i386 kernel needs, sudo apt-get linux-generic fixes the problem by installing a generic kernel. Another problem was the noise of the CPU fan, that I finally replaced with a more silent fan. The temperature inside the small case is okay to not worry about burning the flat, but not surprisingly higher than it was before. After a bit of researching I found out that the CPU supports speedstepping in 66 MHz steps from 532 MHz to 997 MHz, and decided that the lowest is fine for me. To enable speedstepping, install cpufrequtils sudo apt-get install cpufrequtils, load the longhaul module by typing sudo modprobe longhaul or forever by adding longhaul directly to /etc/modules, and set the frequency to your preferred value in Hz cpufreq-set -f 532000. The lower the frequency, the lower the power consumption and the heat is. On demand speed stepping using cpufreq -g ondemand didn’t work for me, if I’ll ever do real computing on the box I’ll probably write a cronjob to run every minute and set the frequency due to last minutes load average value that you can check with the following command cat /proc/loadavg | awk '{ print $1 }'.
Update:
I wrote a python script to set the frequency on demand. You can download it here: http://pastebin.com/f2e46125.








