PC Engines Home
This webpage contains a collection of answers to frequently asked questions and problems people have.
Suggestions, corrections, additions, etc. may be sent to support1207[at]pcengines.ch
Please also see our forum for more information at pcengines.info/forums
alix Prepare a CF with this FreeDOS image and add the files found in the BIOS file alix v0.99m found here
Then boot the alix and execute sb.com
As an alternative there is also an Xmodem upload methode, for alix2 see alix2.upd and for alix3d2 see alix3.upd
If an alix board is bricked an
LPC1a adapter for the corresponding board is needed. Please leave a note when ordering which board it is needed for.

The alix3d3 and alix1d have an AwardBIOS, because TinyBIOS does not support VGA and AC97.
In case of the alix3d3, if the VGA port and AC97 are not used, the TinyBIOS of the alix3d2 can be used instead.

apu1/apu2 We suggest using TinyCore which comes with the tool flashrom. Once an USB stick is prepared with TinyCore the BIOS file needs to be copied to the USB stick.

apu1 To update the BIOS, enter e.g. flashrom -w apu140809.rom
If an apu1 board is bricked an LPC1aapu adapter is needed.

Build 9/8/2014 (beta, reduced "spew level")
Build 7/8/2014 (beta)
Build 4/5/2014 (current production)
Build 4/1/2014 (beta)

apu2 The latest BIOS versions are:

apu2_v4.0.7.rom.zipvarious fixes, iPXE with setupMD5 sum and change log is in the zip file
apu2_v4.5.5.rom.tar.gzcoreboot mainstream version (experimental)MD5 sum and change log is in the zip file
apu2_160311.zipadded iPXE payload (can yet not be disabled in the setup)MD5 sum: 780a8ffaa034e013fef7126f3f986646
apu2_160307.zipadded boot from SDMD5 sum: 9ae6747eb14df4246657fb40823adc5f

To update the BIOS, enter e.g. flashrom -w apu151109.rom -p internal
If an apu2 board is bricked an spi1a is needed.

apu3 The latest BIOS versions are:

apu3_v4.0.7.1.rom.zipvarious fixes, enable additional USB ports, iPXE with setup, set SIM switch GPIO to high.MD5 sum and change log is in the zip file
apu3_v4.5.5.rom.tar.gzcoreboot mainstream version (experimental)MD5 sum and change log is in the zip file
apu3_20160519.zipUSB enabled on all miniPCIe slotsMD5 sum: 04de2e479881198e59e794c1062a090f

To update the BIOS, enter e.g. flashrom -w apu3_20160519.rom -p internal
If an apu3 board is bricked an spi1a is needed.

mailing list for new BIOS releases
Please visit http://linux.voyage.hk/.
The root password of Voyage Linux is 'voyage'.

General informations How to prepare any storage device with Voyage Linux on any Linux machine based on the official Voyage tarball:
  • run some Linux, perhaps Voyage Linux on an alix board or any other PC
  • attach the target storage device
  • get the Voyage Linux tar.gz file, wget http://...
  • decompress the image with tar xfvj
  • cd into the new directory and execute ./usr/local/sbin/voyage.update and follow the steps

apu Instead of getting an USB-mSATA adapter for a single use, you can boot the apu from USB and write an image on the mSATA inserted in the apu board.
To install Voyage Linux on an mSATA module follow these steps:
  • prepare an USB stick with apu-tinycore-usb-installer.exe*
  • get the latest amd64.tar.bz2 file from http://www.voyage.hk/download/voyage/amd64/, and copy it to the TinyCore USB-Stick
  • boot TinyCore on the apu board
  • cp voyage-0.X_amd64.tar.bz2 /tmp/
  • cd /tmp/
  • tar xfvj voyage-0.X_amd64.tar.bz2
  • cd voyage-0.X_amd64
  • start the installation script with /tmp/voyage-0.X_amd64/usr/local/sbin/voyage.update

* please use the TinyCore installer for apu1 also for apu2 boards to install Voyage Linux, some needed tools are missing on the later installers.

for autologin install mingetty and change /etc/inittab accordingly
#T0:23:respawn:/sbin/getty -L ttyS0 115200
T0:23:respawn:/sbin/mingetty --autologin root --noclear ttyS0

apu1 coreboot source: www.pcengines.ch/tmp/coreboot_140908.tar.gz
Voyage Linux image for apu with the complete toolchain to build the BIOS: www.pcengines.ch/tmp/apu_bios_builder.img.gz


apu2 For building apu2 coreboot please see: Building firmware using APU2 image builder
Many installation images do not redirect the console to the serial port.
The redirection is usually needed in two places.
  1. the bootloader: see syslinux.cfg
  2. the console prompt: /etc/inittab which might need something like this: ttyS0::respawn:/sbin/getty -nl /sbin/autologin 115200 ttyS0
Linux installation images usually have a compressed filesystem like initrd.gz which can be expanded. After changing some files, it can be compressed again.
These are the typical steps:
  1. decompress
    • gunzip initrd.gz (returns one file called 'initrd')
    • mkdir initrd_rootfs
    • sudo sh -c 'cd initrd_rootfs && cpio -i' < initrd
  2. change some files
  3. compress
    • sh -c 'cd cinitrd_rootfs && sudo find . | sudo cpio -H newc -o' | gzip -9 > initrd.gz

Important: the SD slot on the apu2 boards is directly connected to the CPU and needs the module SDHCI to work.
Do not use an SD to boot FreeBSD based OS like pfSense and OPNSense on apu2 boards. Only very recent kernel versions fully support booting via SDHCI.
Try an USB-SD adapter in case of related troubles. If it works with the USB-SD adapter, but not in the SD slot, then the SDHCI module is missing ...
This is a short and incomplete list of working 3G miniPCIe modems:

Sierra WirelessMC8790http://www.sierrawireless.com/...
Sierra WirelessMC730xhttp://www.sierrawireless.com/...
Sierra WirelessMC77xxhttp://www.sierrawireless.com/...

Avoid Sierra Wireless modules ending with a "V" standing for voice, as they have a proprietary pinout.

Many usefull informations can also be found here: TXLAB.
The MAC address of the first NIC on all PC Engines boards is derived of its serial number, the following NICs have subsequent addresses.
This is the conversion from MAC ID to serial number and vice versa:

MAC ID = 00:0d:b9 (our OUI) : (serial + 64) * 4
serial = (MAC ID & 0x000000FFFFFF) / 4 - 64

MAC ID Serial converter
Serial number

alix The alix boards have 4 GPIOs available, the three LEDs D4, D5, D6 plus the button S1. These are also connected to J13.
If you intend using the GPIOs where the LEDs are connected as inputs, then the LEDs should be removed. Otherwise the LEDs will die due to the appllied 3.3V.
For additional GPIOs an I2C IO-Expander from various chip manufacturer are available, like NXP or TI. There are also many inexpensive easy to use modules available at aliexpress.com.
Also see here and here.

apu1 The apu1 boards have two types of GPIOs:
  • The three LED's D5, D6, D7 plus the button S1 are directly connected to the southbridge
  • The pin-header J19 has 16 GPIOs connected to the NCT5104
If you intend using the GPIOs where the LED's are connected as inputs, then the LEDs should be removed. Otherwise the LEDs will die due to the appllied 3.3V.

Sample C-code for driving the LEDs:apu1-leds.tgz
NCT5104 Datasheet & GPIO-Patch:nct5104.tar.bz2

apu2 The apu2 boards have two types of GPIOs:
  • The three LED's D4, D5, D6 plus the button S1 are directly connected to the CPU
  • The pin-header J17 has 16 GPIOs connected to the NCT5104
If you intend using the GPIOs where the LED's are connected as inputs, then the LEDs should be removed. Otherwise the LEDs will die due to the appllied 3.3V.

(updated) Sample C-code for driving the LEDs & S1:gpio_apu2.tar.gz
NCT5104 Datasheet & GPIO-Patch:nct5104.tar.bz2

Please also see https://daduke.org/linux/apu2/ where it says:
A kernel module to access the 3 front LEDs on the apu2 boards and a small daemon to use LEDs 2 and 3 as network up/downstream indicators. Download is here, just run
Use LED 1 as a load indicator:
modprobe ledtrig_default_on; modprobe ledtrig_heartbeat
echo heartbeat > /sys/class/leds/apu2:1/trigger
and run apuled like this:
apu2led eth0 -c nrt -f

apu3 The apu3 boards has one additional GPIO compared to the apu2 for controlling the SIM switch:
See https://github.com/pcengines/apu_gpio_lib
apu2 i2cpiix4.tar.gz

This section provides information about add-on cards for apu boards.

known good
Function Manufacturer Card type Chipset Comment Source
Network LogiLink PCIe RTL8111
USB LogiLink PCIe μPD720202datasheet
SATAIOcrestPCIeMarvell 88SE9215gets rather hotAmazon aliexpress

known bad
Function Manufacturer Card type Chipset CommentSource
Network unknown half-sized miniPCIe RTL8111
SATA asmedia PCIe asm106x

alix Disk Images
winxpe_raw_files-tools-instructions.rar *
winxp16gb.img.gz *
winxp_4gb_image.rar *

*Please make sure you have a valid license

apu Disk Images
centosapu20140822.gz *
ESXi 6 Image (root pw: vmwareesxi)

How to write compressed disk images to mSATA Prepare an USB stick with TinyCore, add the compressed image to the stick and boot the apu board with it.
Use the command "fdisk -l" to determine the device name of the target storage.
In the following commands it is presumed that /dev/sdX is the target device name (but sda or sdb is more likely):

zipunzip -p diskimage.img.zip | pv | dd of=/dev/sdX bs=1M
gzgzip -dc diskimage.img.gz | pv | dd of=/dev/sdX bs=1M
tar.gztar xzOf diskimage.img.tar.gz | pv | dd of=/dev/sdb bs=1M
xztar xvfJ diskimage.tar.xz | pv | dd of=/dev/sdb bs=1M
bz2bzip2 -dc diskimage.img.bz2 | pv | dd of=/dev/sdb bs=1M

Note: "pv" is a pipe-viewer and displays the progress.

Links to installation instructions for apu
Install CentOS / RHEL v6.x
Install NethServer over CentOS

© 2002-2016 PC Engines GmbH. All rights reserved.