You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Many instructions here are mirrored from Toby Schneider's instructions at http://gobysoft.org/wiki/InstallOnGumstixOvero.  

Root filesystem preparation

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.  

  1. Install dependencies:

    # host
    sudo apt-get install multistrap qemu-user-static
  2. Pick a working folder, in this case ~/duovero
     
  3. Create a directory to hold the root filesystem:

    # host
    cd ~/duovero
    mkdir rootfs
  4. 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
  5. Run multistrap to create the root filesystem.  

    # host
    multistrap -a armel -d ~/duovero/rootfs -f debian.conf
  6. 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/
  7. (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
  8. Chroot into the new filesystem.  

    # host
    sudo chroot ~/duovero/rootfs /bin/bash
  9. 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.  

  10. Set the root user password.

    # chroot
    passwd
  11. (Optional) Add a new user and give it sudo permissions 

    # chroot
    adduser mit
    printf "mit     ALL=(ALL) ALL" >> /etc/sudoers
  12. Configure locales.  Choose 136 for en_US.UTF-8.  

    # chroot
    dpkg-reconfigure locales
  13. Add a DNS server 

    # chroot
    printf "nameserver 8.8.8.8" > /etc/resolv.conf
  14. 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
  15. 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.  
     

  16. Update the apt repositories 

    # chroot
    apt-get update
  17. Assign a hostname and update the hosts file 

    # chroot
    printf "nostromo" > /etc/hostname
    printf "127.0.0.1   nostromo\n" >> /etc/hosts
  18. Add the serial console (specific to gumstix overo and duovero) 

    # chroot
    printf "T0:2345:respawn:/sbin/getty -L 115200 ttyO2 vt102\n" >> /etc/inittab
  19. 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
  • No labels