Designed by PC Engines in Switzerland, the Alix single board computer is highly power efficient, small, and capable of running operating systems like Linux and FreeBSD unmodified thanks to its x86 compatible processor. These little boards can be found in small offices, datacenters and in the homes of computer enthusiasts, doing just about anything an embedded computer can do; routers, firewalls, mail servers, and network attached storage are all common roles for the Alix.
For testing I purchased an Alix 2D13, which you can see below with the parts labeled. The model numbers of the Alix are used to specify features and revisions of the board itself, for instance this is the 4th (D) revision of the Alix 2 product line. My contact at PC Engines tells me they don’t currently plan to do a 5th revision of the Alix 2, but earlier revisions have fixed minor issues with power availability to wireless cards and USB ports, and reduced electro-magnetic interference levels.
Note that the front of the device is at the top of the picture above, without any connectors; the back is the one with Ethernet, power, USB and console connections. When used in a network role, the Alix is usually positioned so the Ethernet and USB ports are facing forward, to make connections easier, and to allow the administrator to see the link activity lights on each Ethernet port.
You can get a sense of the size of this board by looking at the USB and Ethernet ports on the bottom edge.
Most of these components are labeled in the above picture:
- AMD Geode LX800 CPU @ 500Mhz
- 256MB DDR SDRAM
- One CF card slot typically used for the system software
- One 44 pin IDE header to connect a 2.5″ drive
- 3x 100Mbps Ethernet ports with link and activity lights, each has a separate Via VT6105M controller
- 2x USB 2.0 ports
- One internal USB header
- One DB9 serial port used for the system console, wired as COM1
- One internal RS232 header, wired as COM2
- I2C and LPC bus headers
- One MiniPCI slot for wireless cards or cryptographic accelerators
- RTC battery to keep system time if the board loses power
- 3x software controllable green LEDs on the front panel
- One recessed push button switch, not marked in the picture but barely visible above the LPC connection
- One low voltage DC power input
There is no VGA, keyboard or mouse connection, as this is strictly an embedded/headless device, however other models of the Alix do include those features.
I did ask the company if future boards might ship with more RAM, and my contact at PC Engines noted that because the Geode chip uses DDR SDRAM, and because that particular RAM type is only available in specific chip package sizes, including more on the board would have been more expensive, and for most embedded applications 256MB is more than enough.
The Geode LX processor
The CPU on the Alix, the Geode LX series, is a distant derivative of an old Cyrix processor design, the MediaGX series first seen in 1997. It has been refined, shrunk and enhanced over the years, and despite its slow speed compared to modern desktop processors, it is a perfect fit for embedded applications and networking equipment.
What sets it apart from other low power processor designs like ARM, is compatibility with the x86 instruction set, something that may be a significant advantage for some use cases.
Average power use for the Geode LX processor is just over 1.8W under load while running at 500Mhz, and 0.9w while idle. In operation the CPU makes so little heat that it does not require a fan or even a heat sink. The companion chipset on the board, the AMD CS5536, uses just 2.4W. This brings the total power requirements for the board up to 4.2W, call it 5W in total without including a wireless card. This figure has been verified by others using devices like the Kill-A-Watt.
Adding other USB devices, or a wireless MiniPCI card will significantly increase power use, but the board has been designed to handle the increased load without problems provided that an adequate power supply is used.
The Geode LX is definitely inferior to a modern desktop processor, or even a modern ARM chip like those used in the iPhone, but for the tasks commonly assigned to the Alix the Geode LX works perfectly.
When used for IP routing, tests have shown that the Alix can forward up to 85Mbit/s in one direction, or almost 60Mbit/s both directions. A small office would find this to be more than adequate for a WAN connection with plenty of room to grow. For home users and computer enthusiasts, the Alix is much faster than the Cable or DSL connections available in most areas, with only DOCSIS 3 cable and FiOS potentially requiring faster hardware. Local network connections, for instance Gigabit Ethernet between multiple office machines, would be unaffected by the performance of the Alix since that traffic would be handled by an external switch and not the router itself.
As shown by the benchmark linked above, the CPU on the Alix does limit OpenVPN, which hits a performance ceiling near 30Mbit/s in one direction. However, dedicated VPN accelerator hardware can cost thousands of dollars, so the Alix may be a good compromise between price and performance. Even 30Mbit/s for OpenVPN is faster than most small office or consumer internet connections, so users probably won’t have problems with VPN performance.
Applications which require large amounts of high quality random data should work well on the Alix, because the Geode LX CPU contains a hardware random number generator. Typical desktop machines don’t have any sort of random number generator, causing the FreeBSD or Linux kernels to use other system noise for random entropy; a true HW-RNG is hundreds if not thousands of times faster, and the one in the Geode can output up to 4MB/s of random data made available through the /dev/random block device.
The Geode LX also has a cryptographic accelerator which offers up to 4x increased performance compared to software encryption. Unfortunately the AES engine in the Geode LX only works for AES128 in CBC mode, but some applications may benefit from it and both the FreeBSD and Linux kernels support it.
Putting it all together
The Alix boards can be purchased without any sort of case if users wish to build their own, but some type of enclosure is required to protect the components. PC Engines makes a nice aluminum case for the Alix boards, including cutouts for the connectors and lights, and 2 side mounts for Wi-Fi antennas. The board mounts very securely inside using the same mounts and screws you would find in a larger desktop computer case.
The dimensions of a complete Alix in the case are approximately 6.3″W x 6.3″L x 1″H. To get an idea of just how tiny this thing is, it fits completely under a Linksys WRT54G router. It is also approximately half the height of a Mac Mini if that comparison is more familiar to you. It is also similar in height to an AppleTV but with a smaller footprint.
If the small case doesn’t fit your needs, you can actually buy a 1U rackmount case that holds one or two Alix boards inside, and you can also buy a complete rackmount Alix kit with 2 boards already installed. See the end of the article for information on where to purchase these.
Installing an operating system
Installing an operating system on the Alix can be a complex hour long process, or it can be “5 minute simple”, depending on what you want to install and how you install it.
The Alix does not have a display, keyboard, or mouse connector, nor does it support booting from the USB connectors (this is a limitation of the custom BIOS used on these boards). You can boot an installer for Linux or FreeBSD using PXE network boot, but most users will want to copy a premade system image to a Compact Flash card and insert it in the card reader on the Alix as shown below.
Note that when the Alix board is installed in the bottom half of its case, you can’t remove the CF card. However, many software packages allow in-place upgrades while the device is still running, so unless something goes wrong or you need to install a different operating system, you shouldn’t need to remove the CF card very often.
One popular software package commonly used on the Alix is pfSense, an open source firewall and routing project based on FreeBSD. This is one situation where x86 compatible hardware is essential, because pfSense is not available for any other architecture.
The pfSense project provides disk images that will work on the Alix, all that is needed is to write one of the image files to a compact flash card using a laptop and an external card reader, then insert it in the Alix and plug in the power; configuration is then done with a simple to use wizard accessed with a web browser.
The FreeNAS project also distributes premade disk images that work on the Alix, for users who want a home or small office storage server. FreeNAS actually does a lot more than serve files, it also includes a torrent client, media streaming services, full disk encryption, and other features that enterprise and home users alike will find valuable.
If you need something closer to a full Unix system, the FreeBSD project provides a build tool called NanoBSD which will build embedded disk images according to your exact specifications. By carefully choosing configuration options, you can fully customize the kernel, and include extra software like Apache in the final disk image. The pfSense project mentioned above actually uses NanoBSD to build their images. Note that NanoBSD is not a binary distribution, you must build these images from another FreeBSD system.
There is also a full Debian based Linux distribution built to run on small devices like this, called Voyage Linux, which includes the dpkg system as well as all of the apt commands Debian and Ubuntu users will be familiar with. Voyage does not include a GUI of any kind, it is essentially a tiny, blank Debian based system that can be used for just about anything.
For those who are willing to go through some manual setup, you can also preinstall the full versions of Ubuntu, FreeBSD and others to the compact flash card, though should be aware that typical operating systems write files and changes to their filesystem frequently, which may shorten the life of the CF card. NanoBSD and Voyage Linux avoid this problem by only writing configuration data and software upgrades to flash, all other writes go to ramdisks.
You can also install operating systems to a standard spinning hard drive connected through the IDE header on the Alix board, however there is no place to mount a drive like this inside the standard Alix case.
Windows XP embedded should run on the Alix, but I did not research it for this article. However, other versions of the Alix include VGA and keyboard connections and will support the desktop version of Windows XP out of the box.
So what is my Alix doing now?
After I finished testing the Alix I installed pfSense 2.0, which is still in beta, and put it to work as my home router. I also purchased a very specific MiniPCI wireless card that both works with pfSense and supports 802.11n, though the higher rates do not yet work in FreeBSD based systems like pfSense so it is restricted to 54g speeds right now. Hopefully those drivers will improve at some point and 802.11n rates will start working.
I did need to purchase an external gigabit ethernet switch for the local network here, because the Alix does not have switching hardware.
The router that my Alix replaced was a WRT54G 2.2 running Tomato firmware, and I’ve been quite happy with the additional capabilities pfSense provides, though Tomato is still a very capable and stable firmware it was lacking specific things I needed like fine-grained control over firewall rules.
Where to buy an Alix
Though PC Engines is located in Switzerland, they have retail partners around the world. We have absolutely no affiliation with PC Engines or any of their distributors, however the company I purchased my Alix kit from was Netgate which had kits in stock along with other parts I needed such as the wireless antenna connectors. They also sell the 1U rack mount Alix kits.
4348 Waialae Ave
Honolulu, HI 96816 USA
Phone: +1 509 280 8999
Fax: +1 509 267 2369
Full list of retailers available from PC Engines: http://www.pcengines.ch/order.php