Debian has supported the arm architecture for many years and has a huge range of packages. It does not specifically cover small systems so the distribution tends to be quite large, but it is extremely versatile and lets you have exactly the same system on your balloon board as on your desktop or server.

The existing, official Debian arm port is called 'arm', and supports the old ABI, built for armv3 architecture and hard-float (i.e. using emulation for floating point instructions).

An 'armel' port is under construction which will replace 'arm' in due course, that uses the new ABI (EABI), which allows mixed hardware and software floating point support.

The two are entirely incompatible so be sure which you are using.


Debian does not support the balloon board directly as standard because the balloon kernel patches are not in mainline and the installer does not yet support installation to flash. This means that the kernel, modules and install parts are custom. Beyond that standard Debian can be used.


You can download a rootfs for Debian-arm (etch, as of Aug 2006) here:

To make your own you use debootstrap in cross mode: This is described in detail at

The short version is (as root):

# mkdir arch-etch-rootfs
# debootstrap --verbose --arch arm --foreign  etch  arm-etch-rootfs
# rm arm-etch-rootfs/var/cache/apt/archive/*.deb
# mkyaffsimage arm-etch-rootfs debianarmroot.yaffs2 0

then make these changes:

dev/fb0 device file added
/dev/mtd* device files added
/dev/sd* device files added. sda .. sde added in case multi card reader used
/dev/ttyS0 .. ttyS2 device files added

/etc/apt/sources.list points to - did not have arm repositories
/etc/network/interfaces created for eth0 etc using dhcp
/etc/fstab set to sensible defaults
/etc/hostname set to balloon3
/etc/passwd or /etc/shadow root password set to rootme
/etc/securetty added ttyS1 and ttyS2

/var/lib/apt/lists removed lists
/var/cache/apt/archives removed all debs

*NOTE* the following will break what debian believes is installed
/usr/share/locale all non en* locales removed 
/usr/share/doc stripped
/usr/share/man stripped
/usr/share/info stripped

before uploading the image to a balloon

to do the same for armel use debootstrap --verbose --arch armel --foreign etch arm-etch-rootfs

Balloonboard: BalloonDebian (last edited 2009-02-22 21:00:14 by localhost)