My ultra low power home server

I bought an Asus WL-500g Premium v2 router in April, 2009 and immediately installed DD-WRT on it. I used it for my wired and wireless LAN, printer and disk sharing, and for running Transmission. In about half a year, I grew tired of its USB bandwidth (around 2 MiB/s), bad overall performance and also the development model of DD-WRT (several thousand commits without a stable release). Then in December, 2009, I built my perfect home server, based on the Intel D945GSEJT motherboard, which perfectly replaced this router while barely consuming any more power and I’ve been happily using it ever since.

Hardware

The key component to find was the motherboard. It is rated at only 12 W and comes with an Atom N270 processor @ 1.6 GHz soldered to it. It needs a notebook DDR2 memory module, I bought an 512 MiB one.


I hooked it up to a universal 12 V power supply and my monitor, then booted from a USB pendrive while it was sitting on the insulation foil that it came in. So small, so simple, and it’s already a working PC!


A good mini-ITX case was quite hard to find because I needed space for an additional network card: I wanted to use the integrated gigabit NIC for the LAN and an additional PCI card for the Internet connection. I chose an EMKO EM-153 case with an EMKO JM-127 PCI riser. It was about the only possibility I could buy in Hungary but it was a perfect fit.

Then I bought a WD Caviar Green hard disk. Green means that its power consumption is better than average (at the cost of performance I guess, but who cares). The motherboard is supposed to work without cooling but I’m paranoid so I also bought a barely audible Noctua NF-R8 fan too. The hard disk was very easy to attach to the top of the case, the fan not so much, but possible.

A wireless NIC and accessories were also hard to find, at least in Hungary. The motherboard has a full-sized Mini PCI-Express slot (there are half-sized ones, too, incredible how small they are). An important requirement was that the card had to support master mode to work as a wireless access point, not only a client. I ended up with a Broadcom BCM4311 which I bought second-hand from someone who works at a notebook service or something. It’s supported by Linux and speaks 802.11g. The antenna was also second-hand, with an RP-TNC connector. The really tricky thing was to connect these two. Apparently this cable is called a pigtail, and the connector on the card is called U.FL.

At this point I had everything I needed, I just needed to wire everything together.


So let’s see the power consumption: 14 watts! I don’t remember if it was under load or not, but you see my point, this is incredibly low for a full-featured PC, it’s only slightly more than SOHO routers. It might even run on a dozen AA batteries for a few hours.


Last thing I did was solder two LED’s to some wires, hook it up to the motherboard provided jumpers and run them to the back to have a wireless and hard disk activity light.

One more thing, I have to admit I cheated a little: I also bought a D-Link DGS1005D green gigabit switch. Without this I only had one LAN port, now I had four. Only with this addition can I say that it knows everything that my ASUS router did, and it adds about 5 more watts.

Software

My Linux distro of choice is Debian/testing. It booted nicely from a USB pendrive and supported all hardware out of the box except for the wireless card. The only thing I needed were the firmware files for the b43 driver which I got from here and then it worked like a charm, too.

Hardware list:

root@wicklow:~# lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GME Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
02:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

Disk speed:

root@wicklow:~# hdparm -tT /dev/sda
 
/dev/sda:
 Timing cached reads:   1214 MB in  2.00 seconds = 606.88 MB/sec
 Timing buffered disk reads: 276 MB in  3.00 seconds =  91.94 MB/sec

Instead of p910nd, I’m sharing my HP LaserJet 1020 printer with CUPS and the foo2zjs drivers. I’m sharing files with Samba, I can copy files at about 35 MiB/s. A gigabit LAN could do more but it’s still more than tenfold faster than the 2 MiB/s I had previously. For the networking I run dnsmasq and hostapd. I backup my stuff with rsync.

So far I haven’t encountered any performance or other problems. I have lots of new plans for it, like monitoring and graphing stuff, running a VPN server or even hooking it up with my home alarm system. It’s really the perfect home server for me. Happy 1st birthday!

4 thoughts on “My ultra low power home server

    1. Joco Post author

      It’s absolutely working! Now I use it to build my own stripped-down kernels (slow, but gets it done in an hour or so), test my LAMP website and I’m planning to sync my backups from here to S3. My upload speed is slow, so having a PC running and uploading 24/7 will be perfect for the job.

    1. Joco Post author

      I can’t help you with a step by step guide, there are plenty of how-to’s on the net, I can give you some pointers though. Here is what I have now:

      Kernel 3.2.7
      Debian testing
      hostapd 0.7.3
      bridge-utils 1.5
      ifupdown 0.7
      dnsmasq 2.59

      So basically you set up hostapd to handle your WiFi, then set up a bridge in the /etc/network/interfaces file, and then you set up dnsmasq to work on that bridge.

Leave a Reply