m (Building an Emdebian (Embedded Debian) root filesystem for armel)
(Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel)
Line 2: Line 2:
 
== Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel ==
 
== Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel ==
  
<PRE>
+
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.
# mkdir emdebian
+
 
# cd emdebian
+
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.
</PRE>
+
 
 +
Debian is now my choice for a root filesystem on the GuruPlug.
  
Create a multistrap configuration file called GuruPlugRootFS.conf and add the following:
+
To build your root filesystem, create a multistrap configuration file called GuruPlugRootFS.conf and add the following:
  
 
<PRE>
 
<PRE>
 
[General]
 
[General]
 
arch=armel
 
arch=armel
directory=target-rootfs
+
directory=guruplug-rootfs
 
cleanup=true
 
cleanup=true
 
noauth=true
 
noauth=true
Line 45: Line 46:
  
 
<PRE>
 
<PRE>
# cp /usr/bin/qemu-arm-static target-rootfs/usr/bin
+
# cp /usr/bin/qemu-arm-static guruplug-rootfs/usr/bin
# LC_ALL=C LANGUAGE=C LANG=C chroot target-rootfs dpkg --configure -a
+
# LC_ALL=C LANGUAGE=C LANG=C chroot guruplug-rootfs dpkg --configure -a
 
</PRE>
 
</PRE>
  
Line 52: Line 53:
  
 
<PRE>
 
<PRE>
# sudo chroot target-rootfs passwd
+
# sudo chroot guruplug-rootfs passwd
 
</PRE>
 
</PRE>
  
Line 58: Line 59:
  
 
<PRE>
 
<PRE>
# echo guruplug >> target-rootfs/etc/hostname
+
# echo guruplug >> guruplug-rootfs/etc/hostname
 
</PRE>
 
</PRE>
  
Line 64: Line 65:
  
 
<PRE>
 
<PRE>
# echo proc /proc proc defaults 0 0 >> target-rootfs/etc/fstab
+
# echo proc /proc proc defaults 0 0 >> guruplug-rootfs/etc/fstab
 
</PRE>
 
</PRE>
  

Revision as of 06:36, 30 March 2014

Building an Emdebian (Embedded Debian) root filesystem for GuruPlug/armel

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