PC Engines ALIX

ALIX system boards are manufacturered and sold by PC Engines. They utilise the x86-based AMD Geode CPUs. The boards and other components (enclosures, power supplies, wireless cards, CompactFlash cards, etc) are sold separately, although some retailers sell pre-build kits. At the time of writing (August 2011), ALIX boards and associated accessories are readily available from many resellers across Europe and North America.

Supported Versions

Model OpenWrt Version Supported Model Specific Notes
Alix 1c, 2c*, 3c* Kamikaze 8.09 and above -
Alix 1d, 2d*, 3d* Kamikaze 8.09 and above -
Alix 6* Kamikaze 8.09 and above  Test at your own risk Almost certainly works, but is untested

The Alix.1 series is significantly different to most other Alix system boards in that it includes VGA/PS2 ports, a PCI slot, has only 1 ethernet port, and has a different BIOS. In short, it is very much a x86-compatible PC rather than a headless appliance. This is an important distinction (see below).

Hardware Highlights

There are many models of ALIX boards (all work with OpenWRT at present), with two different CPU/RAM configurations:

CPU Ram Flash Network USB Serial
AMD Geode LX700 @ 433 MHz 128 MiB Optional (CF) 100Mbit/s (1-3 ports, varies) Optional Yes (RS232)
AMD Geode LX800 @ 500 MHz 256 MiB Optional (CF) 100Mbit/s (1-3 ports, varies) Optional Yes (RS232)

All models have a CompactFlash socket and some also have a 44-pin IDE header for 2.5" IDE hard disks.

Many models have miniPCI sockets (ideal for WiFi cards), and some have miniPCI Express sockets (note that there is a warning on the PC Engines site stating that these cannot be used with WiFi cards though). The Alix.1 series includes a standard 3.3V PCI riser.

The device does not include an embedded Ethernet switch. Models with multiple Ethernet ports have multiple Ethernet controllers (Via VT6105M).

Installation

There are two distinct options for installing OpenWRT, using images that are either:

There are no pre-built images specifically for the Alix boards. However, the generic x86 images will work, although they do not include all of the Alix system board drivers by default (e.g. LED support, USB). This is not a major problem as (it appears that) all these packages can always be added via the opkg utilities once the system has booted.

Alternatively, you can build such images yourself (recommended, but obligates a significant learning curve). Note that the x86/alix2 image appears to include a Alix.2-specific kernel and that this image is not recommended for the Alix.1 series.

Note that the x86/Generic image is the best option for the Alix.1 series because, unlike the x86/Alix2 image, it includes drivers for the VGA/PS2 console. This is because it is easier to add Alix-specific drivers to the x86-generic image, rather than VGA/PS2 drivers to an alix-specific image (which you'd have to build yourself anyway).

Using pre-built images

The current release Backfire 10.03.1-RC5 openwrt-x86-generic-combined-ext2.img.gz includes ethernet drivers (at least for the Alix.1/Alix.2d3 boards). After flashing the OpenWrt image, follow these guides to install missing packages:

NOTE: If you have problem mounting external storage on boot apply this fix: sleep.before.startup.

Building from source

Building your own image and specifying the build profile below will ensure the appropriate drivers are all included in the image. Follow:

The build profile should be (exception: Alix.1-series boards, see notes above):

  • Target System: x86
  • Subtarget: PCEngines alix2

Flashing by CompactFlash

The easiest method of installation for ALIX boards is to use dd to write the image to the CompactFlash card on machine.

  1. Attach a USB CompactFlash reader/writer to the flashing machine and insert the CompactFlash card
  2. Watch the output from 'dmesg' to see what device ID it has picked up (it will be something like /dev/sdb)
  3. Ensure that /dev/sdb (or whatever is determined in step #2) is not mounted through the use of the 'mount' command. If it is, unmount it with 'umount'.
  4. Decide whether you want to use the squashfs (openwrt-x86-squashfs.image) or ext2 image (openwrt-x86-ext2.image). The ext2 one will take up considerably more space on the CompactFlash card, but will be faster to boot.
  5. Uncompress your image file
     gunzip openwrt-x86-generic-combined-ext2.img.gz 
  6. Flash the desired image to the CompactFlash card with:
    dd if=openwrt-x86-ext2.image of=/dev/sdb
  7. Depending on your CF card size the default install won´t full fill your CF card. You can use gparted or equivalent application to expand the root partition.
  8. Removed the CompactFlash card, place it in the ALIX board and power on.
  9. Once powered on and booted up the ALIX should be reachable on 192.168.1.1 on eth1. In default install eth0 is wan interface configured to obtain ip by dhcp and eth1 is br-lan interface with static ip 192.168.1.1 :!: this does not aaply for the Alix.1c/1d - see below.
  10. If you have a serial cable it is recommended to do the first boot and initial network configuration with it attached ( minicom configured for 38400-8N1)

:!: If you selected the squashfs image it may take quite a few minutes for the device to power on.


  1. Usually one just has to dd the combined image onto the CF card:
    wget http://downloads.openwrt.org/backfire/10.03.1-rc5/x86_generic/openwrt-x86-generic-combined-ext2.img.gz
    gunzip openwrt-x86-generic-combined-ext2.img.gz
    dd if=openwrt-x86-generic-combined-ext2.img of=/dev/cfcard
  2. Afterwards you can use the usual utilities like fdisk, tune2fs, etc. to resize the system partition (its only around 40MiB by default) and maybe upgrade the filesystem.
  3. Sometimes you need to change the root= parameter in the GRUB settings if the booting kernel does not find the root device. You'll find the menu.list within the first partition.

—-

OpenWRT on the ALIX.1d

Differences between the ALIX system boards

As stated above, the Alix.1d series is significantly different to the other Alix system boards. For example, when using a generic x86 image (recommended), the system will not be able to connect to the Internet by default.

With this in mind, the following scripts have been tested on both

  • trunk (aka Attitude Adjustment / bleeding edge) using: openwrt-x86-generic-combined-ext4.img, and
  • Backfire using openwrt-x86-generic-combined-ext2.img.

Using the VGA/PS2 console on Alix.1d

To use the VGA/PS2 console, boot the Alix.1d with these devices attached. When the console has stopped scrolling, just press Enter, and you should be good to go. The serial port is not necessary, but will work, although you will require a null modem cable (38400 8N1).

If you wish to use SSH (via TCP/IP) later, you will need to set a password for the root account (here's how to do it in a script).

(echo "12345678"; sleep 1; echo "12345678") | passwd root

Using the ethernet port on Alix.1d

By default, the Alix.1d will not be able to access the Internet (and thereby download packages) with a generic x86 image.

This is because the Alix.1d has only one ethernet port, eth0, which is configured as a LAN interface by default on this image. To configure it as a WAN interface, the following has worked for me (see network interfaces for more details):

uci set network.lan.ifname=

:!: The lan network is still required for the wireless AP to 'bridge' to, even though it has no physical interface.

uci set network.wan=interface
uci set network.wan.ifname=eth0
uci set network.wan.proto=dhcp

Finally, effect the changes.

uci commit network
/etc/init.d/network restart

You can confirm the result of this script by executing: ifconfig eth0 | grep inet and/or ping 8.8.8.8 -c 4.

Starting an AP on the Alix.1d

This should work on other x86 models. First, install the wireless card drivers (this assumes an Atheros ath9k-compatible wifi card):

opkg update
opkg install kmod-ath9k

You can confirm the result of this script by executing ifconfig wlan0. Next, configure the radio:

wifi detect > /etc/config/wireless
uci set wireless.radio0.disabled=0
uci commit wireless

Finally, install and start the access point daemon:

opkg install wpad-mini
wifi

By Default, the SSID will be OpenWRT and there will be no WEP/WPA.

Ethernet assignation alix2d3

:!: There is a rumour that this picture may be labelled incorrectly.

tested with r38680, this picture is correct: powerplug | usb | WAN/eth0 | LAN/eth1 | MANAGEMENT/eth2 | serial-console

Upgrading

Controlling the LEDs

Note: The below is taken from the Old Wiki, but is known to still be correct.

Assuming you have the kmod-led-alix module present (check via lsmod), you should get three LED devices under /sys/class/leds/ - alix:1, alix:2 and alix:3 This should turn on one led:

echo 1 > /sys/class/leds/alix:1/brightness

And off:

echo 0 > /sys/class/leds/alix:1/brightness

And this should make it blink:

echo timer > /sys/class/leds/alix:1/trigger
echo 1000 > /sys/class/leds/alix:1/delay_off
echo 100 > /sys/class/leds/alix:1/delay_on

You can assign various triggers for LED activity using the instructions here.

After reading the previous link about leds functionality, the easiest way to configure the leds is from the web gui (luci) in "system" » "led configuration"

Entering Failsafe Mode

 Test at your own risk Note: The below is taken from the Old Wiki, and its current correctness is unknown.

  • The button does not seem to work
  • Attach serial cable, speed is 38400
  • Press Esc during or after the memory check (can be tricky to time right)
  • Choose 'safe mode' in the grub menu

Watchdog Timer

Tested on ALIX 2d2, Barrier Breaker

The Geode LX CPUs have a hardware watchdog. It is supported by the geodewdt kernel module (kmod-wdt-geode) with a default timeout of 60 seconds. You can change the timeout permanently in /etc/modules.d/50-wdt-geode

echo "geodewdt timeout=30" > /etc/modules.d/50-wdt-geode

or oneshot by passing a timeout value in seconds upon insmod:

rmmod geodewdt
insmod geodewdt timeout=30

The watchdog is activated by accessing /dev/watchdog (Either read or write!) Note: Once the watchdog is triggered, the module can not be stopped or unloaded anymore!

A simple script for using a watchdog with timeout of 30 sec would be:

#!/bin/sh

trap "" INT HUP

while true
do 
        echo "1" > /dev/watchdog
        sleep 25
done

Old: An example of the watchdog in action on ALIX boards can be found at twam.info

Using the Geode's AES engine

As of OpenWRT Backfire 10.03, cryptodev support can be enabled by installing the following packages (confirmed and tested on Alix 2d13):

From Kernel Modules, Cryptographic API modules:

  • kmod-crypto-core
  • kmod-crypto-aes
  • kmod-crypto-hw-geode
  • kmod-crypto-ocf

This was tested using openssl-util, which was installed from Utilities –> openssl-util. The command to test it is:

  • "openssl speed -evp aes-128-cbc -engine cryptodev"

The Alix Geode crypto engine supports only AES-128. Other ciphers are not supported. For more general crypto hardware info, see here:

Relevant external articles

Many of the below are written with Gentoo in mind, but will work equally well on OpenWRT (you should install relevant pages via 'opkg' rather than 'emerge' though).

Tags

Back to top

toh/pcengines/alix.txt · Last modified: 2014/11/09 19:03 by mk74