My costly mistakes on the path to a somewhat inexpensive home server

For the last few years, I’ve been using a couple of ZyXEL NSA320 NASs with Debian in place of the stock firmware as home servers for files, backup, and misc applications. Recently though, I figured out that one of them has a flakey SATA channel, plus, I’ve been wanting better performance for Time Machine backups, AND I’ve had the urge to build a new PC.  So, I decided to address all three issues at once.

In retrospect, the sensible thing would have been to buy an Gen 7 HP Microserver, but when I started out, I didn’t have as much information as I do now. I was drawn to a $95 bundle on NewEgg that included a Cooler Master Elite 130 Case, a ASRock AM1B-ITX mini-ITX motherboard, and an AMD Sempron 3850 quad-core Kabini APU. I thought I’d have a system ready for my existing drives for just $150.

I was shocked by the price of RAM, and irritated with the limited options for low-wattage, efficient power supplies. After much dithering, I realized that the hours I was wasting dithering over my sub-optimal choices was more valuable than just spending an extra ~$50. So I found the best price I could on 4GB of DDR3-1600 RAM, added a 90w pico-PSU + an efficient 80w, 12v AC-DC power brick and got on with the build.

The parts arrived in short order, but once I saw the size of the case, I realized I was going to need to rethink things. The Cooler Master Elite 130 is well made and quite compact for a case that can take a full-sized video card, optical drive, ATX PSU and a CPU with a big heatsink/fan combination on top. Its pretty huge though for a machine with an external power brick and two hard drives. I started looking for other options and wasn’t too happy with what I found.

As far as I can tell, cases with just enough room for an mini-ITX motherboard and two 3.5″ HDDs don’t really exist, or if they do, they are bigger than I’d like and cost more than I wanted to spend. I started to consider cases with room for more drives. Most of them were about as big as the Elite 130, which could hold 3 full sized drives along with some 2.5″ drives, but it was still bigger than I wanted.

I also considered building my own case, and quickly rejected the idea, but kept returning to it over and over. Again, I decided to loosen the purse-strings to save time and energy, but there just weren’t many choices. I didn’t need hot-swap drive bays, but most of the small cases came with them. I finally settled on the Norco ITX-S4 case for $100.

At about this time I got a notification about a special price on the HP Microservers. The cost was ~$270. For that price, I got the whole machine, including 2GB of ECC protected RAM, ready for my hard drives. It was too late though, I was already in for $200. I bit the bullet and ordered the Norco case. Since I had the room for it in the case, I decided to move up my plan to use an SSD as a cache drive to speed up performance, and bought a a 256GB Crucial MX100 for $110.

Soon thereafter, the Microserver went on special at least two more times, but now I was in for $300 (not including the SSD). The ECC memory would have been nice though, and I seriously considered setting aside the  CPU, motherboard and RAM I already had and buying something that supported ECC. After spending, again, much too much time determining my options, I decided against it, because it would have cost another $300 or so, and my limit was $200.

I wasn’t done yet though. Once I assembled the system in the new Norco case, I realized that I had another problem. The heatsink/fan combination that came with my CPU was too tall, and the space for it was too short — the top of the fan was pretty much flush with the bottom of the hard disk cage. Only now, as I’m writing this, do I realize that it would probably have been perfectly acceptable to Dremel cut a hole for the fan in the bottom of the HDD cage. Instead, I went looking for alternative CPU coolers that would fit better. There weren’t any, at least not any made for the AM1 platform. I took measurements and went looking for options that might fit, or that I could easily modify. I didn’t find much. I considered grinding down the top of the heat sink and reducing its height and cooling area by 10-20%, since it is a low-power CPU in a low-power application.

I was leaning towards ordering a generic heat-sink that would work with minimal modification when I realized a better solution. The stock fan was 15mm-thick. A 10mm-thick fan would open enough of a gap and solve my problem for less than $10 and 10 minutes work. Somehow though, the first fan I managed to order was also 15mm-thick…

The case had another problem too, the 80mm exhaust fan it shipped with was LOUD at full speed, and it ran at full speed ALL THE DAMN TIME because it only had 3 pins, and my motherboard required a 4-pin chassis fan for speed control (it does speed control on a 3 pin CPU fan though). This time though, I ordered the right thing, first time.

I did make another mistake though, I didn’t like my jumble of SATA cables and found them hard to route, so I decided to order some nice blue ones with round cables. Unfortunately, I missed the fact that they had 90° connectors on one end, which wouldn’t work with the positioning of the sockets on either the SATA backplane, or the motherboard. What’s more, the plastic molded on the ends of the cables was too thick, so 180° connectors wouldn’t have worked either. I ended up ordering more SATA cables!

Ah, but thats not the end of it. I decided to order a PCIe SATA card so I could mount the SATA drive on an internal bracket and save all the hot-swap bays for 3.5″ drives. I was happy to find an inexpensive card that used the same chip as the motherboard. Unfortunately, if I hook any devices up to it, Linux crashes on boot, shortly after detecting the device on the external card.

This post is long enough. I’ll document the actual build in a separate post after I have dinner.

 

SATA 3.2 heralds tiny but very speedy SSDs ·  LinuxGizmos.com

Aside

The Serial ATA International Organization SATA-IO has ratified the SATA 3.2 storage spec, adding support for a SATA Express spec that can piggyback on faster PCI Express lanes, and defining a new embedded single-chip microSSD. SATA 3.2 also embraces the tiny, SATA Express based M.2 form factor, which debuted in recent Intel and Samsung SSDs.

via SATA 3.2 heralds tiny but very speedy SSDs ·  LinuxGizmos.com.

Order Out of Chaos

The Chaos Display is a sweet hack.  Fredrik Hübinette wanted to use some individually addressable RGB LED light strings for a programmable holiday display, but he didn’t want to painstakingly place each light, so, he just wrapped the lights around his tree, and then wrote some software to calibrate the installation by lighting each light while recording it with a webcam. Additional software analyzed the video to produce a mapping of light ID to position.

 

Ubuntu Linux on the Rockchip RK3066 SoC

Those interested in running Linux on a cheap Chinese “MiniPC” with an ARM SoC have had much reason for hope, and just as much reason for disappointment.

The hope springs from the low cost and rapid pace of development of these devices. Earlier this year, the state of the art were devices based on the Allwinner A10 SoC, which had a single ARM Cortex-A8 Core and a dual-core Mali400 GPU, which went for ~$100, now there are products well under $100 with single- or dual-core Cortex-A9 CPUs and a up to a quad core GPU.

The disappointment comes from the fact that these SoCs are targeted at Android, with terrible documentation, and that most of the manufacturers are terrible about complying with the GPL. Add to this the fact that important parts of the chip, like the GPU and the video compression accelerator are under NDA from the original holders of the IP.

Still, there is reason for continued hope. Over on the SlateDroid forums, “AndrewDB” has posted about his progress with getting Ubuntu running on the UG802, which has a RK3066 SoC.

Current status, to the best of my knowledge:

  • Boots with Linux Kernel in Flash and RootFS on an SD card.
  • Framebuffer video out over HDMI
  • WiFi networking
What’s more, Andrew Kirby from Rikomagic, which sells a device based on this chip has been providing recent Kernel source. In addition, there is a working binary-blob based Linux driver for the video processing unit on an earlier Rockchip SoC that may be easily ported to this one.
Update: It looks like the most of the action is actually in the ARM TV tech forum.

via CNX-Software

 

The ZyXEL NSA320 in Context

I recently purchased a ZyXEL NSA320 to use in upgrading my home server infrastructure. I plan to replace the capable, easy to use, stock firmware with Debian linux.

The NSA320 is a small, low power server based on an “Kirkwood” ARM SoC from Marvell, paired with 512MB of RAM and gigabit ethernet in a small case that accepts two 3.5″ hard disks. It runs a linux-based firmware that provides file sharing, media streaming, and a variety of other features. The NSA320 is one of many low- and mid-priced products based on the Kirkwood family of chips, which first gained attention in the SheevaPlug.

The NSA320’s SheevaPlug pedigree is significant, because when the SheevaPlug debuted 4 years ago, it offered a unique combination of price, performance, capability, compactness, and openness. Up to that point, if you wanted an open platform, your options were x86 PC derivatives, which were larger, more expensive and consumed more power. If you wanted compact and low-power in x86, you had options, but they were 2x the price of the Sheevaplug.

ARM, MIPS and other RISC based options were available, but pricing was aimed at professional developers of embedded devices and wasn’t attractive for hobbyists. The embedded platforms had other issues as well. The dev-envronments took time and/or money to get working, and the platforms were often encumbered by NDAs. They also tended to be less capable than the Sheevaplug, with limited RAM and Flash, slower processors and less capable networking. Interestingly, these platforms ended up generating a lot of interest from hobbyists, but their attention was focused on the products, rather than the development tools; they hacked routers to run custom firmwares, like Tomato and OpenWRT.

The Sheevaplug was $99, which put it in the same price range as many of the commercial devices people were hacking. It also had a 1.2GHz CPU and 512MB RAM and it ran mainstream linux distributions like Debian, which mean that people could easily compile their code right on the device.

Of course, the Sheevaplug spawned its own family of inexpensive commercial products based on the Kirkwood SoC, like the PogoPlug family, and, perhaps more importantly, the PogoPlug based Seagate Dockstar. The Dockstar is significant because Seagate seems to have overestimated demand and then was left with a vast amount of inventory that ended up selling at a deep discount, with some going for less than $25.

The availability of cheap, capable Kirkwood devices, and the relative openness of the platform, has spawned multiple communities of people adapting software to enhance the capability of the devices, which is why I ended up buying the ZyXEL NSA320. The NSA320 stood out for me because its compact case can accommodate two SATA hard disks which offers a tidier, better performing solution than the external hard disks hooked to my Debian-running Dockstar. There are a number of other Kirkwood based dual-SATA NAS boxes, but the tend to be both more expensive (The NSA320 sells for $110, and is often available on sale for less than $90) with less capable hardware (the NSA320 has 512MB RAM, most of the other options have 128MB) or 256MB.

So, that’s a little context on why I found the NSA320 interesting. Next, I’ll be sharing links to the resources I’ve found on customizing the NSA320, and I’ll try to distill down some of what I’ve learned to make it easier for those who come after me.

Wandboard, More ARM Options

Another ARM dev board, the Wandboard. This one with a Freescale SOC. There is a $69 single core model with 512MB for $69, and a dual core, 1 GB model with 802.11n WiFi for $89. Both of them have HDMI out, USB ports, among others. Unlike a some of the other ARM devices I’ve posted, this one has gigabit Ethernet, rather than 10/100.