So you just ordered one of those little chewable linux computers and you are ready to get it up and running with natty and ros. This wiki will hopefully simplify the process.
We'll assume you have:
- Gumstix Overo Air/Fire/FE
- Micro SD card (8 GB in these examples)
- Overo daughter board (could be pretty much any one, the following instructions were tested with the Robovero)
- Computer running Ubuntu
- A wireless (or wired if you have the right Gumstix daughter board) network that both the
Creating the Bootable Ubutnu SD Card
First grab a copy of rootstock - a nifty tool we will use to create our armel ubuntu image:
# apt-get install rootstock
cd to someplace where you dont mind making a mess:
# mkdir gumbuntu # cd gumbuntu
Now to generate the image:
~/gumbuntu# rootstock --fqdn overo --login robot --password temppasswd --imagesize 8G --seed wget,vim,linux-firmware,wireless-tools,wpasupplicant,usbutils,build-essential,tmux,openssh-server,lynx,python-yaml,cmake,subversion,wget,python-setuptools,pkg-config,python-dev,ntp,libboost-dev,libboost-all-dev,libapr1,libapr1-dev,libaprutil1,libaprutil1-dev,liblog4cxx10,liblog4cxx10-dev --dist natty --serial ttyS2
You may want to edit this somewhat. For more info on rootstock see https://wiki.ubuntu.com/ARM/RootfsFromScratch
This is bound to take a while. So in the meantime crack open a new terminal session and get your sd card formatted and bootable by following the directions here. STOP after copying MLO u-boot.bin and uImage to the boot partition, because we will be using our own rootfs image. You can download MLO u-boot.bin and uImage from here.
Once rootstock has completed unzip everything to the SD card's root partition (lets call it sdroot)
~/gumbuntu# cd /media/sdroot /media/sdroot# tar xvaf ~/gumbuntu/armel-rootfs-[creation date].tgz
This will also take a while. Make yourself useful by getting your Overo ready for the next step. The Ubuntu image we are building unfortunately does not have built in support for the Overo's wifi chip, so we are going to swipe the modules and firmware from the nand image (which we know works). You could probably also find this stuff on the interweb , but this way is a pretty simple one stop shop for everything. If your kernel versions do not match you may be better off extracting the stuff from one of the Gumstix images to avoid compadibility issues.
Copying Modules and WiFi Firmware
Plug the daughter board into your desktop as you would normally to get to the serial console, give the boards power and let the Overo boot into the NAND Angstrom distro. We will be connecting to a wifi network to transfer files, becasue afaik there is no reliable way to do this over the serial connection. From the console (in a session thats not extracting files):
$ screen /dev/ttyUSB1 115200 [you will see the overo booting into Angstrom] login: root # ifconfig wlan0 up # iwconfig wlan0 essid [your SSID] # dhclient wlan0 # /etc/init.d/sshd restart
If you use encription you are going to have to set up wpa_supplicant.conf , but I'll trust you know how to do this. The sshd restart probably isnt strictly necessary, but can't hurt. Also don't forget your Gumstix's IP address; lets pretend its 192.168.1.14
Once the files have finished extracting from the SD card you will want to do the following (from a fresh terminal ) :
# cd /media/sdroot/lib /media/sdroot/lib# scp -r email@example.com:/lib/modules/* modules/ /media/sdroot/lib# scp firstname.lastname@example.org:/lib/firmware/sd8686* firmware/ /media/sdroot/lib# cd .. /media/sdroot# scp -r email@example.com:/etc/network/* etc/network/ /media/sdroot/lib# cd # umount -a
Your bootable Ubuntu MicroSD card is now all ready! plug it into the Overo and give it a go
Log into your Gumstix Ubuntu distro with the username/pass you used in the rootstock command, connect to your router and install ros by running:
# ifconfig wlan0 up # iwconfig wlan0 essid [your SSID] # dhclient wlan0 # apt-get update #not really needed yet, but verifies that you are connected # easy_install -U rosinstall # rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=ros-base&overlay=no"
go get that cup of coffee
echo "source ~/ros/setup.bash" >> ~/.bashrc . ~/.bashrc
Congratulations! you are now awesome.
Create a new tutorial: