On my blog post about Installing Gentoo on ALIX.3D3 Mart Raudsepp made an interesting comment: He pointed out, that on AMD Geode CPUs it might be better to use i486 CHOST instead of my used i586, because the CPU is more like a i486 as far as instruction scheduling and times go.
This sounded interesting, so I googled for some benchmark test to measure differences. I found nbench, which measures performance by executing some typical algorithms and compares them to a Pentium 90 based system. So I installed it and run on the i586 CHOST system, then rebuild it completely to i486 CHOST and run it again. Read more…
The AMD CS5536 Geode companion on the ALIX.3D3 board has several general purpose input/output pins. Most of them have different functions as well, and there are some registers to set if they should be used as special function GPIO pins. The ALIX.3D3 uses 4 GPIO pins for 3 LEDs and 1 mode switch. Accessing the leds is very easy using the leds-alix2 driver, but they can be addressed as GPIO as well. There is already a driver for the GPIO pins in the kernel named cs5535_gpio.c, but it uses a non standard interface to communicate with kernel. So, I wrote a new kernel driver using the GPIO interface. Read more…
The AMD Geode LX800 CPU has an on-chip AES 128-bit crypto accelerations block and a true random number generator. Using this block for encryption and decryption is a lot faster than software implemented algorithms and it unloads the CPU. There are two main purposes where en/decryption is needed:
- Storing files
- Communication over network (IPSEC, OpenVPN, WPA2, …)
I’ll focus on the first point in this article using LUKS (Linux Unified Key Setup).
Read more…

LEDs on ALIX.3D3
As most of the ALIX boards, the ALIX.3D3 has 3 general purpose LEDs. There is kernel support for them, but there are problems when the board has a Award BUIS as the ALIX.3D3. After reading the datasheet of the AMD CS5536 Geode companion about initialisation and use of the general purpose pins I got it finally running! Read more…

J8: SMBus
The manual of the ALIX.3D3 board mentions a lot of pin descriptions of all pin headers on the board. J8 interfaces the SMBus of the AMD CS5536 Geode companion (which is compatible to I²C if bus speed is below 100kHz, see Maxim’s Appnote for detailed comparison). So why not add additional I²C sensors. As an example I connected an LM75 temperature sensor.
First of all we need to add some pin headers to J8 found on board next to the USB port. Read more…
Usually BIOS updating means booting DOS and running a proprietary tool from the board vendor. A few days ago, coreboot’s flashrom 0.9 has realeased. It’s an open-source tool which supports program almost all flash chips used on x86 mainboards. Its compatibility list includes Geode™ CS5530/A, which can be found on the ALIX.3D3 board. So why not using flashrom to update ALIX.3D3 BIOS.
Read more…
Nowadays, most desktop mainboards provide more than one gigabit ethernet port. Connecting them both to the same switch causes most Linux distros by default to get a individual IP on each device and route traffic only on the primary device (based on device metric) or round-robin. A single connection always starts at one IP and so all traffic goes through one device, limiting maximum bandwidth to 1 GBit.
Here comes bonding (sometimes called (port) trunking or link aggregation) to play. It connects two ore more ethernet ports to one virtual port with only one MAC and so mostly one IP address. Wheres earlier only two hosts (with the same OS running) or two switches (from the same vendor) could be connected, nowadays there’s a standard protocol which makes it easy: LACP which is part of IEEE 802.3ad. Read more…
Process scheduling within Linux is done by the kernel, following different aspects. Usually it’s goal is to share all resources fairly among all running processes.
Sometimes, there’s a need to tell the kernel explicitly to prior some process, bind some process to a special CPU and so on.
Changing process priorities is commonly known:
nice -n 10 make
runs the program make with a priority of 10 (-20 meaning most favorable and 19 least favorable scheduling). If you want to change a priority of a running program, renice is your choice. Read more…
The AMD CS5536 Geode on the ALIX.3D3 board has an included audio controller which headset output and microphone input is populated on the board. lspci lists the audio controller as
00:0f.3 Multimedia audio controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] Audio (rev 01)
ALSA (Advanced Linux Sound Architecture) supports this chip. Read more…

ALIX.3D3 booting
In contrary to most ALIX devices, the ALIX.3D3 has an integrated VGA controller and an Award BIOS (tinyBIOS doesn’t support VGA), so why not attach a monitor.
Standard text mode is supported by default (and faster than graphical mode), but if you wish to change resolution, add a boot logo or even want to use a graphical boot screen like splashutils a framebuffer device is needed.
lspci lists the integrated VGA controller of the AMD Geode LX800 CPU as the video device:
00:01.1 VGA compatible controller: Advanced Micro Devices [AMD] Geode LX Video
Luckily the linux kernel supports this device directly and so no VESA framebuffer is needed. Read more…
Recent Comments