Up-to-date distros supporting 32-bit i586/non-PAE, specifically for ALIX boards (AMD Geode)
You're right that non-PAE i586 options are dwindling in the Linux family. Fortunately from my testing today, Slackware 14.2 (32-bit) works fine on my ALIX 2d13 board. It's patchable and has good ALIX support.
Installation is the same as for any semi-embedded platform. Theoretically, the ALIX boards support PXE installations, but I just used QEMU (qemu-system-i386
) with a 4G virtual drive, booted the basic 32-bit Slackware install disc 1 from virtual CD-ROM, used slackpkg
to patch the OS, install various additional packages. I did some additional configuration, and then used dd
to write the image to my 4G compact flash. 4G is the smallest I'd go; it would be tight to get a full OS install on a smaller card.
For non-PAE, during Slackware setup, choose the "expert/menu" package option, and deselect all of the SMP kernels. The remaining kernels do not require or try to use PAE. Since the ALIX boards only have 256M of RAM, you might want to choose the non-'huge' generic kernel and leave out the 'huge' kernel, and then enable kernel modules as needed in /etc/rc.d/rc.modules.local
. (Note that I didn't need to do that for any of the native ALIX devices.)
Note especially that the Geode hardware crypto features are automatically detected and used, which is nice:
[ 7.527411] AMD Geode RNG detected
[ 7.679201] Geode LX AES 0000:00:01.2: GEODE AES engine enabled.
You'll want to follow the Slackware instructions for serial-port setup, which worked like a charm for me (using the lilo-based setup, anyway, and 38400).
Here's a full console-level dmesg of my initial Slackware setup (with some gpsd and NTPsec ntpd added, which was the goal of today's project).
Beyond Linux, the BSDs should also work fine. Since pfSense is based on FreeBSD and has run very well on the ALIX boards for years, FreeBSD would be a solid choice. I installed FreeBSD i386 11.1 on my ALIX using a similar QEMU method. (But I eventually chose Slackware because I can get kernel PPS for NTP without having to recompile the kernel - just had to enable the pps_ldisc
module). To get the same outcome on FreeBSD, I have to compile a custom kernel. To work best on ALIX, the kernel CPU_GEODE
option and I586_CPU
cpu type should also be used in the kernel config.)
But for general server purposes, either Slackware or a BSD should work fine.