Building a fanless e-Otonashi EPIA server for FreeBSD

A machine building review by Bobulous.

Introduction

Every home PC I can remember seeing has had at least one fan in its case somewhere. Once upon a time there was only a need for a fan to be part of the power supply unit, to keep the voltage conversion circuits cool. Then the central processing units in faster machines needed more than a heatsink to stay cool, so another fan was added. In recent years 3D graphics have demanded higher power graphics processing units, which run hot enough to need a small fan to remain stable. A lot of motherboard chipsets come with small, whiny fans now too. And high-RPM hard drives get pretty hot, so a few drive-cage fans are a good idea. Plus, all those procesors make the case atmosphere pretty hot, so more fans at the top and back of the case are the sign of real cooling consideration. Thanks to all this cooling, processors can run fast and hot with all the computing power we currently need.

Unfortunately, thanks to all this heat production, and thanks to all the fans, modern machines are also like an awful hybrid of a vaccuum cleaner and a convection heater. My main machine increases the heat level in my room by so much that I cannot stand to run it on hot summer days. The noise is so bad, even after expensive acoustic damping material and replacement of standard fans with quieter fans, that I can't hear detail in music without excessive volume. But the machine can certainly run the latest games, wild 3D worlds being generated at real-time speed with live shadows and impressive physics.

But I wanted a simple machine that would be running 24×7 as an Internet gateway machine, and also as a file server. It would not need to serve files to the public Internet, so neither fast disk access nor hefty processing power were necessary. Nor would it be used for games or multimedia, so a 3D card was unnecessary, as was a sound card. But it would be located in a bedroom, so the most important property of the machine would be silence. Which meant that not even a single fan could be used.

Understand

A server is a machine that exists to receive requests from other machines and reply with the desired data. These requests may ask the server for web pages, images, digital music files or audio streams, alternative documents such as PDF and OpenOffice.org files, or other files such as software executable files.

A server may be accessible only to the local network (machines in the same house or office building), or accessible to the entire Internet. Every time you visit a web page, you are sending an HTTP (HyperText Transfer Protocol) request to a web server, and the server returns an HTTP reply that contains the web page you want to see.

An Internet gateway machine is a machine that acts as a router for a local network (or part of a local network). Certain machines on the local network can talk to each other directly, but if they want to talk to a machine somewhere outside of their local network (such as a server on the Internet, but not necessarily) they need to pass their request to the gateway, and the gateway decides how to send the request to its desired destination outside of the local network.

If a local network is only exposed to the Internet by way of one public IP address (the code that identifies each machine on the Internet), then an Internet gateway can use NAT (Network Address Translation) to cunningly share that one public IP address amongst several private machines on a local network. This allows an Internet connection to be shared with several computers.

Select

First: the heart of any machine is its motherboard. The choice of motherboard determines which types of CPU, which types of RAM, and which types of devices can be used in a computer. For instance, one low-power option very popular with FreeBSD users who want an always-on firewall router machine is the Soekris Net4501. This system board is tiny at 12.3cm by 14.5cm (compare that to a plastic CD sleeve which comes in at 13cm by 13cm) and low-power to the extreme, with built-on CPU running at 133MHz or 100MHz (quite impressive really - the first PC I had ran at 100MHz and came in a huge tower case), three RJ45 LAN ports, and it claims to use no more than 10 watts of electricity. An excellent option for anyone who wants to build a firewall router for their network, but as it does not offer connection to a hard drive (it uses a compact flash card reader as its non-volatile storage), it would not be able to serve as a network-wide storage device. Also, being in the UK, it would be difficult for me to get hold of a Soekris board. So I needed an alternative.

Instead I liked the sound of the VIA range of Mini-ITX mainboards. Though small, these boards offer features such as USB, IEEE 1394 (called FireWire by some vendors), an onboard graphics processor with TV-out connectors, an onboard sound chip, and IDE channels for hard drives, all on a board that measures just 17cm by 17cm. Each VIA Mini-ITX mainboard comes with a low-power, low-heat processor built-on.

A ready-built option is the Hush Technologies series of Mini-ITX systems. These are nice, solid-looking systems that use the EPIA Mini-ITX motherboards. The downside to a Hush system is the relatively high price, and the fact that, being pre-built, you don't get as much choice over what components go into the system. So Hush was not for me.

I still liked the EPIA Mini-ITX boards, but VIA make several models, and deciding which was right for my requirements took a while. I was going to go with the EPIA M board with an Eden 600MHz processor, as that comes fanless as standard. Then I discovered a Mini-ITX case that was built specifically to take an EPIA M board with a C3 1000MHz processor and make it fanless. The Scythe e-Otonashi fanless Mini-ITX case, with room for a VIA EPIA M board, a slimline optical disc drive, and a 2.5″ (laptop) hard disk. Using a special heatlane for the CPU, and keeping the power supply outside the case by using a 120W 'power brick' on the power cord, this case can use the C3 1000MHz processor and needs not a single fan. Not one. Utter fanless serenity. So that was the case and mainboard chosen.

I decided an optical drive was not necessary for this machine. Some people might like the idea of using a fanless system as an entertainment PC for their living room, with a DVD drive to watch movies on, and a big hard drive for storing music and video files on. I didn't want an optical drive, but a decent hard disk was important to me, so I did some research. A drive that was recommended for its peaceful noise level (and lack of whiny frequencies) was the Toshiba MK 4025GAS, a 40GB, 4,200 RPM, 2.5″ drive. Such laptop drives produce much less noise and heat than 3.5″ desktop drives. Perfect for an always-on system that needs to be quiet. I opted for the 80GB version of this drive, the MK 8025GAS.

The EPIA M board takes PC2100 RAM, so I bought 512MB of the stuff to make sure there was plenty of memory for large data transfers during file sharing on the local network. Possibly that was overkill, but the EPIA M can only take one memory DIMM so it's better to get it right first time.

The EPIA M board already has one 10/100Mbit network port, but as I wanted to use the machine as an Internet gateway for the local network, a second network port was necessary - one port connected to the public Internet, and one connected to the local network. Because the e-Otonashi case is very compact, a full-size PCI expansion card will not fit into it. Luckily, Belkin make a low-height network interface card that does fit - the F5D5000.

So, adding it all up:

ComponentVendorPrice
VIA EPIA M10000 mainboardLin-ITX£107.51
e-Otonashi fanless Mini-ITX caseLin-ITX£116.33
Kingston ValueRAM 512MB 266MHz PC2100 DIMM CL2Insight UK£77.54
Toshiba MK 8025GAS 80GB 4,200 RPM 2.5″ hard diskInsight UK£136.29
Belkin F5D5000 10/100Mbit network interface cardInsight UK£7.04
FreeBSD operating systemfreebsd.orgfree

Cost of delivery from LinITX: £9.45 (48-hour service).

Cost of delivery from Insight UK: £11.69 (next-day service).

Total cost of fanless Internet gateway machine: £465.85 which includes VAT.

Build and Run

To make sure the motherboard was not a dud, I plugged everything in without removing the EPIA processor fan, so I would not have to install the Heatlane until I was sure the motherboard was in working order. Assembly was fairly quick and easy in this case: just connect the power to the motherboard, and connect a power and a data cable to the hard drive, and leave the motherboard sprawled about outside the case.

Whoever assembled the e-Otonashi at the factory, they plugged the power connector cable into the power circuit board incorrectly. I did not notice this until I had already plugged the other end of the cable into the EPIA motherboard and turned on the power. The result was a rapid clicking from the power circuit, and the machine would not boot. Once I noticed the problem, it was easily corrected, but I was not expecting the motherboard to be in a working state any longer. To my surprise, the machine booted perfectly once the power cable was plugged in correctly. A hardware expert suggested that had the cable been plugged in one to the left rather than one to the right, the motherboard and CPU may have fried. So it's well worth checking cables that are connected by the manufacturer before you hit that power switch.

Because this machine would never have its own optical drive, I plugged the Toshiba drive into another machine to install FreeBSD 5.0 onto the drive. Unlike Windows, FreeBSD installs using its GENERIC kernel, which searches for all hardware each time it boots, so it is possible to install on one machine first, and then run on a different machine (with the same processor architecture) without problems.

FreeBSD 5.0 installed onto and ran off of the Toshiba without problem when it was plugged into a big Pentium machine. But once the drive was transferred to the EPIA machine, FreeBSD's boot process would hang at the following message:

ad0: READ command timeout tag=0 serv=0 - resetting
ata0: resetting devices ..

Disabling Ultra DMA mode in the BIOS allowed FreeBSD to continue to boot past this point, but was not ideal as a solution, as the drive ran very slowly, albeit very quietly. Furthermore, updating the system to FreeBSD 5.2.1 brought the problem back again, the boot failing with the message:

ad0: FAILURE - WRITE_DMA status=11 <DSC,ERROR> error=84<ICRC,ABORTED>   LBA=4127103

And FreeBSD 5.1 would boot, but not perfectly, as this message tells:

ad0: UDMA ICRC error cmd=write fsbn 79 of 79-82 retrying . . .
ad0: UDMA ICRC errer cmd=write fsbn 5773215 of 5773215-5773230   falling back to PIO mode

PIO mode is a very slow mode of access, so this was not ideal either. The wise people of the FreeBSD forums and newsgroups suggested that I try another data cable, as this was the likely cause of temperamental drive access. Changing to another data cable did solve the problem, and FreeBSD 5.2.1 became able to use the drive in UDMA 100 mode.

Installing the Heatlane was not an entirely easy process, and the thermal interface material (Arctic Silver 3) did seem to get mostly rubbed aside as the Heatlane was slid over the processor, but at least the supplied instructions were fairly clear, and in English, with good illustrative graphics. Once the Heatlane was installed, and the EPIA board was placed into the case, with the drive shelf screwed in, the wide UDMA drive data cable was forced to pass right over the processor heatsink to get to the Toshiba drive. The room provided at the front of the drive shelf for the cable just was not spacious enough to fit the cable I had. This concerns me, because it surely reduces the ability of the processor to expel heat. A better solution in a fanless system would be a Serial ATA drive, which uses a comparatively tiny data cable, keeping more airspace open.

Once all the components were in the case and connected up, the light, black top was screwed onto the case.

Meter

To see how the switch from a processor fan to a silent Heatlane would affect CPU temperatures, I did my best to measure CPU temperature before and after.

There is currently no software for FreeBSD that measures motherboard signals for CPU temperature on an EPIA board, so the best I could think of without special infra-red probes was to use the BIOS motherboard status page.

Along with temperature, I used a Brennenstuhl wattage and current meter to measure the power usage of the system. However, I'm not sure this device would satisfy an electrical engineer. Measuring the true power (as defined by a physicist, not a marketing team) usage in a circuit so full of capacitors as a computer requires more than just multiplying voltage by amperes by "cos phi", and I'm fairly sure that this device by Brennenstuhl does not really report true power. But I might be wrong. It should give a ballpark figure, but without the proper equipment, these figures cannot be relied upon. (I've not been able to find the right equipment.) All temperatures are in Celsius.

Setup: board only, RAM installed, no drives, CPU fan still connected, components outside case. Ambient temperature ~22°.
CPU temperature: 26° at first; 31° after 15 minutes; 33° after 60 minutes.
Power meter reading: ~49 Watts (232 Volts, 0.21 Amperes, cos φ 1.0).

Setup: board with RAM, no drives, Heatlane, no CPU fan, case open. Ambient temperature ~24°.
CPU temperature: 36° at first; 54° after 15 minutes; 63° after 60 minutes.
Power meter reading: ~48 Watts (241 Volts, 0.2 Amperes, cos φ 1.0).

Setup: board with RAM, one hard drive, Heatlane, no CPU fan, case closed. Ambient temperature ~23°.
CPU temperature: 34° at first; 52° after 15 minutes; 68° after 60 minutes.

These measurements suggest that using a Heatlane in place of a CPU fan leads to a temperature increase of about ten percent, at the sixty-minute mark. And adding a hard drive and closing the case increases the temperature further. Sixty-eight degrees is still acceptable, but it ought to be lower. These high numbers might be caused by my inagile installation of the Heatlane, and I have seen other reviews that show the Heatlane to be more effective than I am experiencing here.

The power meter claims that "cos phi" is exactly 1.0 the whole time. I think this is extremely unlikely, as a computer is full of inductive components, and ought to cause more inductive flux than a pure resistant circuit. But, assuming the power factor is actually lower than one, and assuming that the measurments for voltage and current are correct, the EPIA system is reportedly drawing less than fifty Watts while in the BIOS. Running `make buildworld` caused the reported Wattage to increase to 56, and building the world in FreeBSD is probably the most demanding single process, with constant drive accesses and source code compilation. Incidentally, after building the world for over two hours, and then rebooting and going straight into the BIOS, the CPU temperature was reported as 66°, but that was with the case still open.

Remember that these power usage values do not include a monitor. A monitor should never be left on (not even in stand-by mode) constantly.

Long run

The fanless EPIA system has been running almost constantly for over five months, acting as a firewall gateway for my Net connection, and acting as a file server.

A couple of times, the machine has lost hard drive access. During these times, the Toshiba drive may either be silent, or it may be emitting a low buzzing noise. After rebooting the machine, the drive becomes accessible again, and seemingly no data loss has occurred. It is not a system crash, because FreeBSD continues to run, reporting in bright text that the drive cannot be communicated with. I suspect that the hard drive may be overheating, but I cannot be sure. In the five months of operation, this problem has occurred no more than four times, and all of the occurrences were in the space of four weeks. Whatever the cause, the drive does not spin quite as noiselessly as it did, but it is still very quiet. In fact, my D-Link ADSL interface makes an electronic whining noise that is only audible at the dead of night, but is still much more distracting than the Toshiba drive.

One of the interesting things about running FreeBSD's IPFW packet filtering firewall, is seeing how much rogue traffic there is on the Internet. Every day, thousands of unwanted packets are sent to ports such as port 135 and port 445 (ports 137 and 139 are also popular with rogue packets). None of these packets was requested, and they are probably produced by scripts trying to find unprotected Windows machines to infect. The best thing to do is to have IPFW ban all of them from getting to the home network, but anyone who hasn't got a handy FreeBSD firewall gateway should be running a sturdy personal firewall product like Zone Alarm from Zone Labs.

Evaluate

A fanless e-Otonashi EPIA system does not seem suitable for commercial deployment. The Heatlane makes it possible to run the CPU without a fan, but it does nothing to help any other part of the system. The heat built up by the hard drive is left to loiter, and may be the cause of the hard drive access failure I have seen.

For home networking use, I do feel the e-Otonashi case offers great worth. Being able to run a capable processor and a hard disk 24×7 without even realising the machine is running most of the time is a great thing for people who need to sleep in the same room as their hardware. And if the reported 50 Watts of power usage is correct, then running this system uses less energy than a bright incandescent lightbulb. (Ideally we'd all be using energy saving lightbulbs, which use only about 20 Watts, but dimmer switches and halogen spotlights seem to attract our attention more at the moment.)

For the bedroom sysadmin who wants to add an always-on firewall, file server, or low-traffic web service to his set of toys, an EPIA M 10000 board housed in an e-Otonashi case, and running a lightweight operating system, makes an excellent low-power, low-noise platform to live and work with.

Warning

One FreeBSD user relayed the story of a friend who woke from a three-week coma after his 24×7 bedroom server set alight one night. He blamed the build up of dust that is caused by any system using an intake fan.

However, even a fanless system will collect dust, so it's important to gently clean out the inside of systems every few months, especially systems that are going to run unattended.

It's also extremely important to (get someone handy to) install a smoke alarm in the room with the server. In fact, DO NOT even turn on the server until you've got an appropriate smoke alarm securely fixed to the ceiling in the server room.

Update

After fourteen months of 24×7 usage, the Toshiba MK 8025GAS hard disk has reached the end of its useful life. It still just about runs, but the whining, grinding, squealing noises it makes, and the frequent access errors leading to system lock-ups, suggest that it's had its day.

I asked Toshiba if this was unexpected in their experience. A technical support agent replied with:

Toshiba 2,5" hard drives are not designed vor continuos operation. Therefore it is quite possible that your drive has become mechanically defective after 14 month constant use. Normally Toshiba`s 2,5" hard drives are used in notebooks/laptops which are intermittently used some hours per day and not continuously.

So it looks like another limitation of this setup is the fact that 2.5″ drives are not really suitable for server use. I have looked for 2.5″ drives fit for continuous use, but I've not found any making such claims.

Next time I assemble a server machine, I'll be wanting a RAID to make sure drive failure is not such a problem. Until I can find all the parts for a quietly fan-cooled, low-power, multi-disk system, the e-Otonashi will have to suffice. I've ordered a Seagate Momentus 40GB 2.5″ drive. It makes no claims to be fit for continuous use, but reviews claim it performs very well in comparison with the Toshiba drive, and prices have dropped so much in the last year that this new drive cost £47.25 from dabs.com. Even if it only lasts another year, it'll give me more time to research a better bedroom-quiet system.