Stagecoach Bring Up

The Stagecoach is one of the Gumstix expansion boards of the Gumstix Overo series. Each Stagecoach board has been designed to mount up to seven (7) Gumstix Overo COMs and connect them via the on-board, 100Mbps switched Fast Ethernet. This page covers basic bring up as NFS root devices.

Basics

sudo ./linaro-media-create --rootfs ext3 --mmc /dev/sdb --binary /home/michaelh/Downloads/linaro-m-headless-tar-20101108-2.tar.gz --hwpack /home/michaelh/Downloads/overo/hwpack_linaro-omap3_20101109-1_armel_supported.tar.gz --swap_file 256  --dev beagle
  • Re-mount the partitions
  • Copy the Overo MLO and u-boot into /media/boot
  • Boot

Note that Ethernet is supplied by a USB to Ethernet adapter on the base board. Be careful when using the same SD card in different slots as udev will attempt to keep the same MAC address bound to the same network name, so the first slot you plug into will get 'eth0', the second 'eth1', the third 'eth2', etc. This can cause havoc as /etc/network/interfaces is normally only set to get an address for eth0. See /etc/udev/rules.d/70-persistent-net.rules and /lib/udev/rules.d/75-persistent-net-generator.rules.

Network boot

MLH set the boards to network boot straight from u-boot. You still need a SD card to load u-boot and the boot script from, but everything else comes over the network.

Use l-m-c to automatically partition the cards. Add --no-rootfs and skip the hardware pack to speed things up.

Create a boot script containing the following:

setenv bootcmd 'bootp; bootm'
setenv bootargs 'console=ttyS2,115200n8 root=/dev/nfs ip=dhcp vram=0 mpurate=720'
boot

Note that these are headless boards so I've turned the vram off. mpurate sets the core to 720 MHz instead of the default 500 MHz. All other options are provided by the bootp server.

Wrap the script up using

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n Netboot -d boot.txt ./boot.scr

Copy the Overo MLO, u-boot.bin, and boot.scr to the SD card.

Set up a bootp server. I used dnsmasq and am quite happy with it. My /etc/dnsmasq.d/carinas.conf contains:

# Enable dnsmasq's built-in TFTP server
enable-tftp
# Set the root directory for files availble via FTP.
tftp-root=/srv/tftp

# Allocate bootp addresses to each board
dhcp-host=00:15:c9:28:d5:0e,carina1,192.168.1.101,net:carinas
dhcp-host=00:15:c9:28:d5:1d,carina2,192.168.1.102,net:carinas
dhcp-host=00:15:c9:28:d5:2c,carina3,192.168.1.103,net:carinas
dhcp-host=00:15:c9:28:d5:4f,carina4,192.168.1.104,net:carinas
dhcp-host=00:15:c9:28:d5:4a,carina5,192.168.1.105,net:carinas
dhcp-host=00:15:c9:28:d3:3b,carina6,192.168.1.106,net:carinas
dhcp-host=00:15:c9:28:d3:4a,carina7,192.168.1.107,net:carinas

# Set the kernel
dhcp-boot=net:carinas,kernel/uImage-overo-201010200957.bin
# Set the root path.  %s is replaced with the host name
dhcp-option=option:root-path,/srv/nfs/rootfs/%s

Note that you need one host entry per MAC address. Use wireshark or dnsmasq -d to discover the MAC addresses. The COMs are numbered 1 to 7, starting with the one closest to the Ethernet port.

The reset is a standard netboot setup. I had /srv/tftp/kernel/uImage*, /srv/nfs/rootfs/carian{1..7} and /srv/nfs/home as shares. For bonus points I set up NIS for shared logins and SSH key based logins.

MichaelHope/Sandbox/StagecoachBringup (last modified 2011-03-17 17:56:20)