Many of the distros are dropping support for ARMv5 and when you do find one, today's 'minimal' root filesystem is typically a couple hundred of megabytes.
Emdebian (Embedded Debian) has the advantage that not only still supporting ARMv5, but it has a multistrap tool that gives the ability to customise the root filesystem on the host and only include the packages you need.
Debian is now my choice for a root filesystem on the GuruPlug.
To build your root filesystem, create a multistrap configuration file called GuruPlugRootFS.conf and add the following:
[General] arch=armel directory=guruplug-rootfs cleanup=true noauth=true unpack=true debootstrap=Emdebian Net Utils aptsources=Emdebian [Emdebian] packages=apt source=http://www.emdebian.org/grip keyring=emdebian-archive-keyring suite=wheezy-grip [Net] #Basic packages to enable the networking packages=netbase net-tools ethtool udev iproute iputils-ping ifupdown isc-dhcp-client ssh source=http://www.emdebian.org/grip [Utils] #General purpose utilities packages=locales adduser nano less wget vim rsyslog dialog source=http://www.emdebian.org/grip
Save and run the multistrap tool:
# multistrap -f GuruPlugRootFS.conf
Now configure the Emdebian packages with the QEMU emulator. This will configure various packages, set your shell and time zone.
# cp /usr/bin/qemu-arm-static guruplug-rootfs/usr/bin # LC_ALL=C LANGUAGE=C LANG=C chroot guruplug-rootfs dpkg --configure -a
Set your root password:
# sudo chroot guruplug-rootfs passwd
Set your hostname:
# echo guruplug >> guruplug-rootfs/etc/hostname
Initialise your fstab:
# echo proc /proc proc defaults 0 0 >> guruplug-rootfs/etc/fstab
If you desire to have a terminal available on the serial/console port, you will need to edit /etc/inittab and modify/uncomment:
# Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
I use
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100