Revision as of 04:11, 29 March 2014 by Craig Peacock (Talk | contribs)

Building an Emdebian (Embedded Debian) root filesystem for armel

# mkdir emdebian
# cd emdebian

Create a multistrap configuration file called GuruPlugRootFS.conf and add the following:

[General]
arch=armel
directory=target-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 target-rootfs/usr/bin
# LC_ALL=C LANGUAGE=C LANG=C chroot target-rootfs dpkg --configure -a

Set your root password:

# sudo chroot target-rootfs passwd

Set your hostname:

# echo guruplug >> target-rootfs/etc/hostname

Initialise your fstab:

# echo proc /proc proc defaults 0 0 >> target-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