With Benoit Dolez, we've been working hard at designing very small servers solutions under the name Ant Computing. The goal was to achieve a very high density server solution while reducing power consumption and TCO, to provide cheap multi-service hosting. Now this may seem a bit "classic", but this was in 2000, and not so common at this time. Our site has even been Slashdotted ! Now the blade racks have beaten us. But fortunately, it's easy now to find very small servers, like the fantastic Linksys NSLU2 I like to play with.
I've always liked stuffing Linux everywhere, and most particularly into small and powerful devices. Among the machines I've played with :
- I bought a Linksys NSLU2 only to disassemble it and hack it for fun. There are photos here. I've not spent much time on it, it quickly had to go into production to replace my old VAX as the reverse proxy, but it used to be a fantastic platform for Linux. It's quite outdated now.
- I've also played with a WRT54GS which is good too, but not as much, as the platform is quite limited in fact.
- I also bought several PC Engines ALIX motherboards, and started hacking on them a little bit. They're pretty cool devices which make me forget the NSLU2 because they're about 4 times as powerful for network processing. I explain here how to setup up a very simple UPS for those boards (with schematics and photos). Some of them are still in use right now as proxies or servers.
- I bought a GuruPlug Server Plus from GlobalScale. All the explanation is provided here. In short, while the form factor is very attractive, it runs too hot and is not reliable.
- I got a Fonera that I started to hack (eg: replace the DC-DC regulator to reduce the heat), but I finally stopped because it was not worth it for my uses.
- I remplaced the aging NSLU2 with a Iomega Iconnect. The board is clean, has several GPIOs, USB2 ports, a 1GHz CPU, 256 MB of RAM and 512 MB of flash, Gigabit ethernet, and a mini-PCIe WiFi card. The engineers who designed it are probably hackers as well, as they thought about installing the serial port connector next to the lock hole on the rear cover. The device is nice but I constantly get I/O errors on the NAND, so I'll eventually replace it.
- I purchased a Seagate Dockstar. It is the only Gigabit-enabled Linux device I have ever found that can be powered by a USB port. I carry it everywhere with me because it's a nice complementary server for many network tests. It's sad that it has only 128MB of RAM. I've added a serial port to it, and have prepared a number for friends. I recently found one on eBay, but it's very hard to find one now. It should eventually replace the Iconnect.
- I also got a Seagate Goflex Net, which is the Dockstar's successor. Same specs, plus 2 SATA ports. Unfortunatelty, the RAM is too short for it to run rsync, otherwise it would make a really great backup server.
- I purchased a Snowball from Calao Systems. This board was supposed to be used on a robot because it has many sensors and is powerful enough for computer vision. Unfortunately this board is a complete failure. USB2 is under-powered, the onboard eMMC and SD spit out I/O errors all the time to the point that I only saw it completely boot once, etc... Anyway the end of the ST-Ericsson partnership finally killed this product. I'm seeing that Calao is working on a new board, which could be interesting since it's hard to find boards with that many sensors. Let's hope it will not suffer from the design issues of the current one.
- Mid-2012 I got a Mirabox from GlobalScale. It probably is the cleanest board I've seen to date. It's as small as a hub, has an ARMv7 CPU equipped with 1GB of flash and 1GB of RAM, 2 USB3 ports, 2 Gigabit ports and one mini-PCIe port. Marvell gives too little info on this platform so it's taking time to be ported to Linux (the Free Electrons guys are doing a good job at this at the moment). It's more powerful than the Dockstar for network testing.
- More recently, on advice from Thomas Petazzoni from Free Electrons, Plat'Home offered me a full-featured OpenBlocks AX3. This is an amazingly powerful device, the most powerful fanless device I've ever seen. It runs a dual-core 1.33 GHz ARMv7 CPU, 4 GB of RAM, embeds a 20GB Sata SSD, has 4 Gigabit ports that I had no problem running at line rate (1.488 Mpps). I want to invest some time on this platform to build a line-rate network sniffer from it. The box is very solid and well built, the overall quality is excellent and the people behind the product are open and responsive. They've setup a developer program for people who want to get one. In my opinion, the price is higher than what you'd get with an Atom, except that you'll never get this level of network performance from an Atom, nor this level of reliability since the Atom will require a fan.
- Last I was offered an MV784-XP-GP development platform. It's a monster : Quad-core 1.6 GHz ARMv7 (78460-B0), 64-bit DDR3-1600, 4 GigE ports, many PCIe slots, etc... It's extremely powerful and can easily make a high performance router, firewall or load balancer. It runs with a fan which makes it a bit annoying on a desk, but it's a really great development platform!
Right now I'm used to run all these machines on Formilux. We're actively working on making the distro usable out of our development environment so that anyone can use it.
I created EZRouter, a floppy-disk based iptables firewall. It is in a some ways Formilux's ancestor, has been used as a temporary replacement on broken hardware at several customers's, and has been used a lot in benchmarking because of its easy setup. It's not maintained anymore, but could still prove useful on supported hardware. When I was still a student, I also developped Genovex, a utility to test and potentially exploit buffer overflow bugs on x86. I've used it a lot on my own programs to ensure they cannot be exploited.
When I have time (ie: mostly never), I sometimes like to experiment a bit with my limited skills in electronics design. Toys such as Tesla coils are very fun to play with, but unfortunately, they don't play nicely with computers.
Robotics are a good way to mix electronics and computers. With Benoit we're working on an Hexapod bot from Lynxmotion that gets some attention just a few hours a year, so it's still far from being smart. We managed to design and implement all the inverse kinematics algorithms to make it walk, turn, tilt etc... The problems faced in this environment are very interesting (eg: walk with one dead leg), as they require smart optimizations and trade-offs. Doing research on walk, sensing, vision and decision is really interesting and requires a lot of observation.
Observing various types of bugs, insects and arachnids is quite instructive to try to build an autonomous robot. Insects have a distributed nervous system, are completely dumb but are able to live, feed and escape danger, etc... Their walk is very instructive as well. Large and slow bugs are more interesting to observe as you have the time to analyse what you're seeing (eg: the Zoropsis spinimana is quite calm and really cool for this).
- http://www.ant-computing.com/ : Build your own 1U server !
- Contact me : Willy TARREAU