28.10.2026: Updated the post with some notes about Soekris net4801, another Geode computer in my collection
The PC Engines Alix series were a popular x86 low power single board computers used in some hobby and science applications. These computers were used in various applications, among others, as unattended network nodes or routers back in their day. You could say they were a spiritual predecessor to the Raspberry Pi and it's clones of today.
I have a few of them and I find them very well designed and pleasant to work with. They are based on AMD Geode CPUs and use the Geode Companion Device as what is often referred to as the "chipset". I've done a bit of work on Geode based devices in the past, for example on the Winterm S10 computers. They are quite interesting systems.
I have four Alix computers in my collection so far. One is the Alix 3D (in the picture above). On the outside it has got a single Ethernet interface, a DC in and a serial port, as well as two USBs. The VGA port is not populated in my version. Inside there are two miniPCI slots dedicated for Wi-Fi cards. In it's day this computer would likely be used to build Wi-Fi access points or bridges, taking advantage of the two wireless cards. The system is stored on the CF card.
The other three are Alix 2C, an earlier design supporting up to 3 Ethernet interfaces, two miniPCI slots (for similar purposes as in the 3D) two USBs and a serial port. These were also network oriented, likely used to build router-access point combos. I have three of them, one has a 700MHz CPU, the other two 800MHz. Two of these came to me broken, I managed to fix one.

None of these computers has a VGA port. The 2C has none at all, and on the 3D it's optional and not populated on my unit. The VGA port however, is a mandatory part of the IBM PC specification. Nearly every OS for x86 PCs uses the VGA for it's interface, even if it displays a console. How did PC Engines get away with making a PC compatible machine with no graphics output capability?
The answer lies in the firmware. The Alix series have a very simple BIOS which translates text mode VGA interface into a serial console. This works surprisingly well, even for software which draws complicated interfaces like GNU GRUB. I think that the Alix firmware hooks the standard BIOS VGA routines and emulates them on the serial port. These are enabled as long as the OS does not initialize the serial port.
I've done some work on the Geodes regarding booting various OSes. Over the years I managed to boot (in easiest first order) MS-DOS (easy peasy, needs nothing, runs on everything), Linux (there are some quirks) and NetBSD (i had to disable some conflicting drivers).

On the Alix 2C I last had NetBSD/i386 9.3 running (above), which works nicely on the 700MHz Geode. If it hangs on disk init, you have to disable the viaide driver in userconf. I think I used QEMU to install it to the CF card, as the Alix does not support USB boot.

For the Alix 3D, I decided to turn it into an SDR receiver. This is still a work in progress, I hope the 800MHz Geode will be able to run rtl_tcp to stream the radio data to the LAN. For now I managed to build a simple Linux 6.6.22 system with lightweight musl-based userspace (which so far includes busybox and bash). On the image above you can see the system running bash on a HP serial terminal. Both the terminal and my PC's serial port have some issues running at 38400 baud, and corrupt characters when large blocks of data are transferred.
As you can see in the free -h output, this system uses only 6MB of memory doing nothing. This is my personal best in terms of minimizing memory usage on Linux.
I've used buildroot to make the system. The config is available here. It boils down to:
i386, variant AMD Geodeserial to builtin modulesgrub.cfg - add these two lines to the beginning of the file:
serial --unit=0 --speed=38400
terminal_input serial; terminal_output serial
console=ttyS0,38400 to the kernel default cmdline (you can also add it in grub.cfg)I updated the config to add a few packages to use this box as an SSH jumphost. Among other things it has dropbear, openssh client and darkhttpd.
Upon further setup I noticed that the ethernet interface is not present. The Alix.3D uses a VIA VT6105M chip (it's under the WiFi card). This can be fixed by enabling Via RHINE chipset drivers, which are not enabled by default on Linux 6.6.22.
The steps to do this are
make linux-menuconfig
* search for RHINE and enable CONFIG_VIA_RHINE
it is located in Device Drivers/Network device support/Ethernet driver support/VIA devices/VIA Rhine support

The Soekris net4801 is another Geode-based single board computer in my collection. This is a peculiar one, since it has a full-size PCI slot. That's the horizontal connector. Not only it has 3 ethernet interfaces, Soekris also made an additional 4-port Fast Ethernet card that would plug into the slot (and fit a matching, extended chassis). A total of 7 100Base-T ports and one miniPCI slot made the net4801 a very popular machine for all sorts of servers. Back in it's heyday it was often used for PTP servers and firewall/router machines.
The net4801 is run by an older 266MHz Geode, branded National Semiconductor (before they sold off the Geode business to AMD in 2003).
The usual boot device is the onboard CF-card. There is a 44-pin IDE connector if you with to use a laptop mIDE hard disk (or a second CF card).
The PCI slot is standards compliant, although installing cards may be difficult due to unusual mounting method. Soekris' card had standoffs and fit into their special chassis. You can install any PCI card in there if you fix it or make some supports for it.
From my experience, the BIOS is quite picky and does not boot some CF cards. As seen in the log, there is a PXE option too.
I was running a Linux 6.6.22 system based on Buildroot v2024.02.1. The 6.6.22 did not see the CF card until I enabled the CONFIG_PATA_SC1200 option.
The kernel would also hang unless you pass it the idle=poll bootarg. This took me some time, I dont remember how I found out the comment from 2006 in linux/drivers/clocksource/scx200_hrt.c:
2/*
3 * Copyright (C) 2006 Jim Cromie
4 *
5 * This is a clocksource driver for the Geode SCx200's 1 or 27 MHz
6 * high-resolution timer. The Geode SC-1100 (at least) has a buggy
7 * time stamp counter (TSC), which loses time unless 'idle=poll' is
8 * given as a boot-arg. In its absence, the Generic Timekeeping code
9 * will detect and de-rate the bad TSC, allowing this timer to take
10 * over timekeeping duties.
11 *
12 * Based on work by John Stultz, and Ted Phelps (in a 2.6.12-rc6 patch)
13 */
The bootarg can be passed in GRUB config. This config also enables serial port output, taking over the VGA emulation by Soekris' BIOS:
I put some significant amount of work to slim down the 6.6.22 kernel so it runs nicely on the puny 266MHz CPU and 128MB of RAM. The kernel config can be found here
I'm using the same pack-image.sh script as before.