Many instructions here are mirrored from Toby Schneider's instructions at http://gobysoft.org/wiki/InstallOnGumstixOvero.
Follow these steps to create a debian wheezy root filesystem. In this section we will use # host
to indicate commands run on the host machine, and # chroot
for commands commands run inside the chroot filesystem.
Install dependencies:
# host sudo apt-get install multistrap qemu-user-static |
~/duovero
Create a directory to hold the root filesystem:
# host cd ~/duovero mkdir rootfs |
Create a configuration file debian.conf in ~/duovero and paste in the following. Additional packages can be included here or installed later using apt-get.
[General] arch=armel directory=~/duovero/rootfs retainsources=~/duovero/sources cleanup=true noauth=true unpack=true bootstrap=Wheezy Net Utils aptsources=Wheezy [Wheezy] packages=apt locales udev adduser sudo nano build-essential less source=http://debian.lcs.mit.edu/debian suite=wheezy [Net] packages=netbase ifupdown iproute net-tools iputils-ping ntp source=http://debian.lcs.mit.edu/debian [Utils] packages=wget source=http://debian.lcs.mit.edu/debian |
Run multistrap to create the root filesystem.
# host multistrap -a armel -d ~/duovero/rootfs -f debian.conf |
Copy the QEMU ARM emulator into the new root filesystem so it is on the path when we chroot in.
# host sudo cp /usr/bin/qemu-arm-static ~/duovero/rootfs/usb/bin/ |
(Optional) If you need /dev/random
(for installing openssh-server for example), mount /dev
in the chroot.
# host sudo mount -o bind /dev ~/gumstix/rootfs/dev |
Chroot into the new filesystem.
# host sudo chroot ~/duovero/rootfs /bin/bash |
Finish setting up packages
# chroot dpkg --configure -a |
Answer "no" when prompted to use "dash" as "/bin/sh". If any packages fail to configure (possibly ifupdown
), just run dpkg
again.
Set the root user password.
# chroot passwd |
(Optional) Add a new user and give it sudo permissions
# chroot adduser mit printf "mit ALL=(ALL) ALL" >> /etc/sudoers |
Configure locales. Choose 136 for en_US.UTF-8.
# chroot dpkg-reconfigure locales |
Add a DNS server
# chroot printf "nameserver 8.8.8.8" > /etc/resolv.conf |
Add a static network entry for eth0
(install the isc-dhcp-client
package for dhcp support)
# chroot nano /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.1.102 netmask 255.255.255.0 gateway 192.168.1.1 |
Restart networking to apply the new interface.
# chroot /etc/init.d/networking restart |
This might yield an error, but try pinging something anyways and it should work.
Update the apt repositories
# chroot apt-get update |
Assign a hostname and update the hosts file
# chroot printf "nostromo" > /etc/hostname printf "127.0.0.1 nostromo\n" >> /etc/hosts |
Add the serial console (specific to gumstix overo and duovero)
# chroot printf "T0:2345:respawn:/sbin/getty -L 115200 ttyO2 vt102\n" >> /etc/inittab |
Add a proc filesystem to fstab
# chroot nano /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 |