Skip to content
Gajamohan Mohanarajah edited this page Oct 2, 2013 · 1 revision

To install an operating system for Odroid you will need at least 16GB micro-sd card. First, download the image file and extract it:

wget [email protected] ftp://rapyuta.org/backup_2013_09_26.img.zip
unzip backup_2013_09_26.img.zip

Insert your micro-sd into PC and run

sudo fdisk -l

to determine the device name of the sd card. It should be something like /dev/sdd, but the last character might be different

Unmount all volumes of the disk (use your device name instead of /dev/sdd), and write image to the sd card

sudo umount /dev/sdd1
sudo umount /dev/sdd2
sudo dd if=backup_2013_09_26.img of=/dev/sdd bs=4M
sync

After the procedure is complete remove the sd card and insert it into Odroid. Make sure it is connected to the internet either through Ethernet or through WiFi dongle to rapyutaDemo01. If it is connected, you can ssh into it (password: passwordx)

ssh odroid@cloudbot0

If you are using several robots, change the hostname to reflect the number of the robot. To do that edit /etc/hostname to be cloudbotN where N is the number of the robot.

Notes on building the image

OS setup

The system is running on Linaro Ubuntu. Follow the instructions to install Ubuntu image on microSD card and the instructions to install ROS. Unfortunately not all packages are available at the moment. Install ros-groovy-ros-base and ros-groovy-image-transport-plugins from the repository.

Fixing Serial Port

The system has only one serial port (/dev/ttySAC1) and it is used as a serial console by default(in bootloader and kernel). If you need to use it as a serial port to connect devices you will have to disable is as a linux console. To do that change the /media/boot/boot-hdmi1080.txt file to use other port as a console. In this case it is set to ttySAC3, which is not available on the board:

setenv bootargs "console=tty1 console=ttySAC3,115200n8 fb_x_res=${fb_x_res} fb_y_res=${fb_y_res} hdmi_phy_res=${hdmi_phy_res} root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro mem=2047M"

compile it into boot.src:

mkimage -T script -A arm -C none -n 'Boot script for odroid-u2' -d boot-hdmi1080.txt boot.scr

or

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

Also you need to recompile Kernel with config:

CONFIG_CMDLINE="console=ttySAC3,115200n8 androidboot.console=ttySAC3"

TODO: The problem with is not completely fixed yet. Looks like bootloader is still writes something to the serial port. When iRobot Create is connected the board sometimes fails to boot, because it is stuck in bootloader phase. Looks like bootloader is waiting for serial console. See http://forum.odroid.com/viewtopic.php?f=8&t=1044

To fix bootloader install patched bootloader from https://github.com/vsu91/u-boot

OpenNI2 setup

The regular openni driver doesn't work good with Xtion on ARM. Several attempts were made to compile OpenNI on ARM based on http://www.pansenti.com/wordpress/?page_id=1772 and http://www.kinecthesia.com/2012/02/lights-camera-xtion-getting-asus-xtion.html . Even though I was able to compile OpenNI, streaming didn't work propely (Cannot open device in first case and no color image in second case).

I was able to compile OpenNI2. Looks like it works fine with Xtion, but there is no drivers for ros that use OpenNI2, so I had to write a simple driver.

To install OpenNI driver:

git clone https://github.com/IDSCETHZurich/rapyuta-mapping.git
roscd rm_openni2_camera
rosmake

It will automatically download and build OpenNI2 and camera driver.