Cheap Home Linux Server on mini ITX board

Author / Автор: Sergey Satskiy
NCBI
Publication date / Опубликовано: 19.03.2009
Version / Версия текста: 1.1

Update

Mar 19, 2009. Instead of writing from scratch a script which updates a dynamic IP address a ready to use client could be used: http://ddclient.wiki.sourceforge.net/ (thanks to Denys Kurylenko for pointing).

Introduction

My interests are mostly around software development so a home Linux server available at any time would be quite suitable in many cases including the following:

  • Ability to make experiments with Linux kernel modules development without a fear to break neibohour operation systems installed on my notebook.
  • Ability to use a revision control system which is available at any time independent of the operating system currently running on the notebook.
  • Ability to use a bug tracking system which is available at any time independent of the operating system currently running on the notebook.
  • A backup system for the source code of my projects which saves archives on an external device.
  • Ability to make experiments with WEB server content before making it publicly available.
  • Ability to quickly try a C/C++/Python/Shell piece of code or to get a handy help regardless of what operating system is currently running on the notebook.
  • Files storage for the notebooks I have.
  • Ability to connect to the server via the Internet while not at home.

The server must meet a few requirements which are quite important for me:

  • The hardware must be cheap. The ability to save some money exists. A monitor, a mouse and a keyboard are not permanently required. An SSH console is enough in most cases and an X Server under the currently running operationg system will serve the rest.
  • The hardware must produce a minimum of noise. Ideally the switched on hardware should not bother a person who sleeps in the same room.
  • A wireless connection should be available to be able to move the server to another place easily.
  • The size must be small and the case must look pretty to make it possible to keep the server in a living room without running the risk of making my spouse angry.
  • An ability to start or restart the system without a connected monitor, a keyboard and a mouse. This is quite an obvious requirement.

A high performance is not very important for me though I wish to have a responsive server.

The current level of technology had not been able to satisfy the requirements above for a long period of time however the moment when it is possible has come. The rest of the article describes how I built a cheap home Linux server.

Hardware

The mini ITX form factor has drawn my attention. A motherboard has the size of 17 by 17 cm and I like this size. To avoid problems with a noise coming from the hardware cooling system I was looking for a board based on Intel Atom CPU.

The table below describes the selected components, the place where they were purchased and the prices at the time of the purchase.

Component Seller and Price
Mother board Intel D945GCLF2 allstarshop.com, $91.50
Memory Kingston 2GB KVR533D2N4 with CAS latency 4 newegg.com, $20.99
Case APEX MW-100 newegg.com, $85.99
WiFi карта 802.11 b/g Gigabyte GN-WP01GS newegg.com, $16.99
Keyboard Inland mini USB 89 keys microcenter.com, $9.99

Total price including taxes and delivery made up $256.61.

Here are the mother board specs:

  • Dual Core Intel Atom N330 processor 1.6 Ghz
  • one 240 pin DIMM socket supporting 533/667MHz single channel DDR2 up to 2GB in size
  • Intel 945GC chipset: 82945GC Northbridge with integrated graphics, 82801GB ICH7 Southbridge
  • GMA 950 integrated graphics
  • S-Video output via Chrontel CH7021A SDTV/HDTV encoder
  • RealTek ALC662 codec with HDA and 6 channel audio
  • SPDIFF header on motherboard
  • one PCI slot
  • 8 USB2.0 ports (4 on back panel, 4 on two headers)
  • one IDE interface
  • two SATA2 interfaces
  • one VGA connector
  • one S-Video port
  • one parallel port
  • one serial port
  • PS/2 keyboard and mouse ports
  • Gigabit Ethernet

I did not buy a hard disk drive. I had a 2.5 disk which was bought 2 years ago. The disk is made by Fujitsu and has an IDE interface. I also decided not to buy an optic disk drive. It would add about 45 dollars and was to be used just once at the moment of the operating system installation. It also consumes some power from the PSU and takes some space inside a small case. So I decided to install the operating system over a network using a Transcend flash drive which I already had as a startup device. It is virtually impossible to avoid a keyboard usage at the installation time so the cheapest of the very small keyboards was bought. The Inland keyboard is simply awful it coups with the job to enter answers on a few questions. My Sharp LC-46D64U played a role of a temporary monitor. The TV has a VGA input wich supports resolutions up to 1600 by 1200. A Logitech Nano V450 borrowed from a notebook played a role of a temporary mouse.

Figure 1. Components

WiFi board

The first problem appeared right here. The mother board has one PCI extension slot however the case is not supposed to have any extention boards installed. There are not cuts on the case back side. What is much worse is that an external power supply socket is located very close to the place where extention boards could have been installed.

Any modifications including those which I made will void a manufacturer guarantee. I am obviously not responsible for anything happened to your hardware if you decide to reproduce what I did.

Figure 2. WiFi board

I resolved the problem as follows. A metal stub was detached from the board. Two LEDs which are assembled as a single component were desoldered with a help of a low power solder iron.That low power solder was not capable to desolder the antenna socket. The socket has five soldering points and is massive so it is impossible to heat all the points to the required temperature simultaneously using a low power solder iron. It is also not very easy to keep finger not burned as soon I don't have the proper equipment.

A more power soldering iron - a simple but with a power regulator from 0 to 50 Wt - was purchased via amazon.com on parts express. Soldering iron holder and delivery costed another $32.75. These expences could be excluded because the soldering iron is a reusable thing however I provide the numbers to give the whole picture.

The more powerful soldering iron was able to desolder the antenna socket. I moved the socket to the left side of the case. This required to enlarge a bit one of the existed holes. The wires to connect the socket to the board I bought in radio shack for another $7.

Having the described modifications done the WiFi board was successfully installed. I decided not to connect LEDs at all.

Motherboard

The mother board is almost ideal except of a few minor and one important drawback. Here are the minor things:

  • There is no HDMI output
  • There is no WiFi controller on board
  • There is no Bluetooth controller on board. This is rather a niggle however it would be usefull.
  • There is a 2 GB limit on the RAM size. I would have bought a 4 GB module because the memory price now is low but Intel seems to be narrowing the Atom usage and is introducing the memory limit.
  • The heatsinks holders are not reliable

Figure 3. Motherboard

The motherboard important drawback is in its north bridge.

The CPU has a passive cooling. The aluminium heatsink is attached with a help of an unreliable spring. So if you touch the heatsing just slightly it moves and breaks the thermo paste contact I believe.

The north bridge is so hot that its aluminium heatsink has a fan 4010H12S NF1 manufactured by T&T. The heatsink is also attached with a help of a not reliable spring. The fan is of 40x40x10 mm size and is so noisy that kills a dream about a silent computer. The motherboard has two sockets to power up fans. The first one - called CPU fan - is not controlled. Intel insists to attach the bridge fan to this socket. The other socket - called System fan - is controlled via BIOS settings and can be set from 50% to 100% with the step of 10%.

My first attempt was to replace the bridge fan to a less noisy one. I bought Evercool EC4010M12CA. The noise level was reduced but still not to the desirable level. I also tried to install a 50 mm fan to a side of the case however it did not help.

The detailed review of the case revealed a solution. There is some spare space where an optical disk drive was supposed to be installed. That space is almost above the north bridge. The space is about 12 mm hight which is not too much and about 120 mm width. It is not very easy to find a low profile but wide fan on the market. I found just one - Kaze Jyu Slim 100mm 1,000RPM. It costed me $10.50.

It was necessary to make holes in the top of metal ODD holder. The fan was attached by plastic stripes and connected to the CPU fan socket. That helped. The noise disappeared. A COMCAST cable equipment produces more noise than my server.

Figure 4. Motherboard in the case

Figure 5. The case without the top cover and without 100 mm fan

Figure 6. The case without the top cover and with the installed 100 mm fan

Linux Installation

I installed Linux from the network using a 4 GB USB stick (manufactured by Transcend) that has survived a wash in a trourses pocket. A smaller stick would also be completely enough.

At the beginning Fedora 10 Net Install package was installed on the flash using Unetbootin on one of my notebooks.

Figure 7. UNetbootin

Then the boot sequence was modified in BIOS and the proper type of USB storage devices emulation was set. A boot device will not be found at the motherboard startup if the wrong emulation type is set.

I doubted that the WiFi boards would work at the installation time so I connected the motherboard to my WiFi router Westell 7500 using a regular Ethernet cable.

After the installer is loaded the URL to be used for loading packages must be provided. The list of active mirrors can be seen here: http://mirrors.fedoraproject.org/publiclist. There is nothing special any further - a disk must be partitioned, packages must be selected and it'll take time to complete the installation.

As soon as the installation is finished it makes sense to remove USB drives from the boot sequence in BIOS.

How Equipment Works

Equipment Description
WiFi Works out of the box
VGA Works out of the box. I tested two resolutions: 1024x768 and 1600x1200.
S-Video output Did not try
USB Works out of the box
SPDIFF Did not try
IDE interface Works out of the box
SATA2 Did not try
Parallel port Did not try
RS232 Did not try
Ethernet Works out of the box
PS/2 keyboard and mouse ports Did not try
Audio Did not try
Mic Did not try

I have doubts that S Video works among the equipment that was not tested and I am pretty sure that the rest works fine.

LSPCI

Dynamic DNS

I wanted to have access to my server via Internet. A free dynamic DNS service made it possible. I registered on the dyndns.com server and acquainted a domain name. It would be very convenient if the WiFi router updates the current IP address as soon as it is changed. My Westell 7500 provided by Verizon has such a support however it uses special keys to exchange information with the dynamic DNS server while the exchange based on user name and password is not supported. dyndns.com supports both ways and keys service is paid while username/password based exchange is free.

The solution is to check the current IP periodically and update it if the change is detected. I used the following way to check the current IP address:

#!/bin/bash
/usr/bin/curl -s http://checkip.dyndns.org | /bin/awk '{print $6}' | \
/bin/awk ' BEGIN { FS = "<" } { print $1 } '

If the address is changed then the IP address is updated using the inadyn utility. This functionality was wrapped into a python script which runs every hour. It is also necessary to remember that if there were no changes within a month then dyndns.com deletes an account. To avoid it the inadyn should be run once a month unconditionally. Too often runs of the inadyn utility are not good either because dyndns.com will block the account in this case.

As a result of the actions described above the selected domain name will have an IP address of the router external interface. There is one more thing to do. It is to setup port forwarding on the router to the Linux server and back. I did it for ssh service.

It is necessary to say that it is not such a good idea to forward more ports than are really required. As soon as I forwarded port 22 I realized that some people started a process of guessing root passwords on my Linux server. The process is endless and comes from different hosts.

Temperature

The temperature of the CPU, north bringe and inside the case is not good. lmsensors works smoothly on the motherboard and here is what they report:

[swift@sanki ~]$ sensors
smsc47m192-i2c-0-2d
Adapter: SMBus I801 adapter at 2000
+2.5V:       +2.53 V  (min =  +0.00 V, max =  +3.32 V)
VCore:       +1.15 V  (min =  +0.00 V, max =  +2.99 V)
+3.3V:       +3.32 V  (min =  +0.00 V, max =  +4.38 V)
+5V:         +5.05 V  (min =  +0.00 V, max =  +6.64 V)
+12V:       +12.06 V  (min =  +0.00 V, max = +15.94 V)
VCC:         +3.32 V  (min =  +0.00 V, max =  +4.38 V)
+1.5V:       +1.57 V  (min =  +0.00 V, max =  +1.99 V)
+1.8V:       +1.77 V  (min =  +0.00 V, max =  +2.39 V)
Chip Temp:   +44.0?C  (low  = -127.0?C, high = +127.0?C)
CPU Temp:    +64.0?C  (low  = -127.0?C, high = +127.0?C)
Sys Temp:    +55.0?C  (low  = -127.0?C, high = +127.0?C)
cpu0_vid:   +2.050 V

smsc47m1-isa-0680
Adapter: ISA adapter
fan1:          0 RPM  (min = 1280 RPM, div = 4)  ALARM
fan2:       1153 RPM  (min = 1280 RPM, div = 4)  ALARM

The CPU is the hottest item. I am not too sure though that the CPU temperature is not misplaced with the bridge temperature because the bridge is hotter on touch.

The temperature is high however the system is stable and I did not notice any failures. The Intel's documentation states that the max CPU temperature is 82.5 C. I noticed max 70 C once. There is some gap to the maximum but it would be nice to make the overall temperature lower.

It is possible to replace aluminium heatsinks on the CPU and on the bridge with better copper onces. Enzotech sells some suitable: CNB-R1 for the bridge and CNB-S1 for CPU. They must be better but I am a bit tired of customizing and it costs more money. By the way Intel did not make holes in the mainboard for better holding heatsinks and this looks strange for me. Was that a huge saving for Intel?

Conclusions

I like what I have at the end. I spent accepted money, the size, look and noise level is very good. The system performance is enough for me. Some web sites reviews also analyse power consumption of the similar systems and it is very competitive. I don't pay for the electricity separately because my rent pay includes everything however when I move the power consumption may became a factor.

I am a bit warried about hard disk drive reliability. The disk I used is the usual one for notebooks and might not be purposed for non stop working. When it dies I will replace it with something like Hitachi cinema star series drive which is purposed for non stop working. Meantime I use my USB stick for backup copies of my SVN repository.

Nevertheless if I knew how many efforts I would have to spend on modifying the components I would not start. I would rather wait for other Atom chipsets. The announced NVidia chipset seems to be attractive.

References

  1. Mothrboard review with the power consumption analysis
  2. Discussion of how to make the motherboard silent
  3. Intel Atom WiKi page
  4. Intel's documentation which provides the max CPU temperature numbers

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Разрешается копирование и распространение этой статьи любым способом без внесения изменений, при условии, что это разрешение сохраняется.
Last Updated: March 15, 2009