Eco responsible power friendly small home server

By , September 29, 2008 10:56

After having had some bad experiences with my digital storage of my recordings from digital TV movies and my digital photos using USB disks connected to Windows XP (you simply never know, if something, that is written is written correctly, or if it can be read back, or over time, if things change (bit-errors) you still can read it), I now decided to rely on a filesystem, that checks what it writes and reads and is capable of correcting errors. Guess what, that filesystem is called ZFS and is part of Solaris.

So, I started looking around in order to build my first home-made computer ever, and wanted to have a thing, that’s quiet, runs Solaris, has enough USB ports to connect external storage, and uses not that much power. Besides, as a home NAS server, I also wanted GB networking, and a small form factor. That made me look at mini-itx boards, and the one I ultimately choose (four weeks ago) was the new Intel D945GCLF2 board. It has a dual core hyperthreading Atom 330 CPU running at 1.6 GHz, 8 USB ports, Gbit network and only costs around 75 EUR.

As this was a pre-announced board, and as I was planning on vacation, I was looking for a store that was already selling it. The first to sell it here in Germany was:

So, if you want to buy a board, where the specs are still unclear, and if you even want to run some OS on that, that’s a bit uncommon (although Solaris really takes up!), I needed some more information. As the people from CarTFT also were very forthcoming in answering a couple of questions w.r.t. the NIC on that board (they even connected a board (before official selling by Intel had begun), while I was on the phone, and read the info to me from the screen, marvelous!) which for me was essential, as no public info had been available three weeks ago and I needed to know, if the NIC will be supported by Solaris (it is!), I did order with them on September 17th.

I found them because they also did publish a benchmark/review way before others, so I decided to order:

Case:                 M200 case:
MotherBoard:          Intel D945GCLF2:
Exchange heatsink:            
DC/DC converter:      picoPSU-60WI:
External PSU:         Standard Laptop:
Powercord:            Standard German:
RAM:                  Standard 2GB:

After now having build the system, I know, what I should have changed from that bill of material, but the changes would have been small. In detail:

Instead of the 60W pico powersupply I should have bought the picoPS-90W version, as that already has the P4 connector. The Intel Board really requires one, so now I had to add a y-cable and an additional P4 cable to my bill of materials.

Also, the proposed exchange heatsink is not needed, as I now did replace that by a fully passive Zalman ZM-NBF47 heatsink:

There is one small caveat with this heatsink. It only has TWO clips, and the Intel motherboard does have the exactly two opposite loops. So I needed to mount the heatsink rotated by 90 degree (which fits better on this motherboard, so that’s a good thing), and needed to crimp the clips so that they do fit THROUGH the loops on the motherboard. Together with the provided thermo paste, it’s mounted securely to the motherboard. You can see that on the image, if you look closely, sadly the image isn’t all that good. For additional discussion see also:

So, once I had the PSU in place, I bought a standard 8 GB CF card, as I do not want to run many complex things on this system. It sahll only be a CIFS- and NFS- server for my homesystems, and therefore the OS itself is mainly static, allowing for a small and slow “disk”, that doesn’t have “rotating rust”, and therefore uses less power. I did choose an A-Data Speedy one, as that was, what my electronics shop around the corner had in stock.

With that card in the CF-IDE converter, that’s already mounted in the M200 case (mounted is the iTuner CF200 card), I sadly got nowhere. The “disk” simply was not recognized by Solaris. Some more tests revealed, that the CF-200 works with smaller and faster cards. Before buying a faster CF card (which would have been more expensive) I decided to replace the CF-200 card by a different one. Others also found, that the CF-200 does not work that well, see for example here. So, while I was ordering additional hardware, I decided to also add an USB connector, as the case only uses two of the four, that are not yet connected. Let’s conclude the hardware section with the fact, that this IDE-CF converter does work.

During the “composition”, you might find, that mounting mini-itx boards and all the stuff surrounding it into such a small case a bit difficult. Especially, if you would like to also use the SATA connectors, you might get into trouble, as they are so close to the IDE connector, that in my case, the IDE cable does block the SATA connectors. But as I didn’t want to have any internal „real disks“, that isn’t a problem for me.

So now for the software part: Because I want to use this as a small server, I disabled audio, parallel and serial ports directly in the BIOS. At the time of the composition, Solaris Express Community Edition was at build 98, and the rge driver in that build still has a small problem with the RealTek card on this board. In order to enable it, you need to add the following line to /etc/system:

set ip:dohwcksum=0

As I needed to install Solaris via network I also needed to add that to the installserver miniroot files. Miniroot is a gzip file, so:

mv miniroot miniroot.gz
gunzip miniroot
lofiadm -a `pwd`/miniroot
mkdir /a
mount /dev/lofi/1 /a
cd /a/etc/
vi system

and adding the line above to that file, does the trick, if you continue with:

umount /a
gzip miniroot
mv miniroot.gz miniroot
lofiadm -d /dev/lofi/1
rmdir /a

You can see a discussion on the rge problem here.

It shall be fixed in newer versions of Solaris/OpenSolaris.

My next problem was, that I wanted to install Solaris using ZFS as the root filesystem. So from the PXE boot image I then selected option 4 (console-text), because that’s the version of the installer, that allows ZFS to be selected. The next problem was, that the installer has a large difference in his thinking of needed diskspace and the real diskspace. Simply put, I could not install “Entire distribution + OEM support”, so I deselected StarOffice.

Once all this things were done and set, the install went smoothless, although it needed 15,5 hours. The CF disk is real slow!

So, once the system was up again, again edit /etc/system to add the “ip” line to it, so that the network is working. Then configuring all other network settings as usual, and Bob’s your uncle.

There still was one small surprise, because Solaris only booted in 32bit, although the Atom is a 64 bit CPU.

James C. Liu states in his Blog at that for running in 64 bits, you need to change the menu.lst file, because the GRUB as used in Solaris would not accept this Atom CPU as a 64 bit capable CPU. This shall be changed in Build99 onwards, but as you know, I was not able to install Build99, so changing the “$ISAINFO” to “amd64” made the trick.

After that, I added two Western Digital WD Elements 1TB USB disks, created a mirrored ZPOOL, set compression=on and have a long-lasting big NAS home server.

In order to save even more power, I switch off the graphics login and sendmail by “svcadm disable cde-login;svcadm disable sendmail”.

I did not yet sample power usage, but will do later, so stay tuned.

I hope to have given you some ideas, on how to set up such a small power-efficient, eco-friendly server for home-usage.

And here, some images of the “building” process:


P.S.: Added a new entry w.r.t. this server at:

Panorama Theme by Themocracy