Installing Linaro Image on Gumstix Overo

Introduction

In this tutorial, you will install a customized version of linux on your Overo. This particular version is based on Ubuntu Linux (12.04), one of the most popular Linux distribution today. By Linaro, it has been optimized and modified to run on ARM based devices like the Gumstix Overo. Therefore it will be referred to as the Linaro image from here on. The result of the customization is a lightweight, yet still very versatile version of linux that runs on the Gumstix Overo COM. On top of the rock solid Linux Kernel 3.2, you will get a graphical desktop interface LXDE which comes with a file browser, media player and as well as Google’s Chromium Web Browser. It will provide a good starting point for many Gumstix Overo users who want to further develop their own applications. Lastly, this is the same guide on the official Gumstix user wiki, except I added nicer formatting and graphices.

Prerequisites

To Install

  • Computer with Ubuntu Linux 10.04 or later with internet connection
  • Micro-SD card read/writer
  • Micro-SD card size larger than 1 GB

To Use

  • Gumstix Overo COM
  • Expansion board with HDMI port and ethernet port
  • Ethernet cable for the Overo to connect to a network
  • Powered USB hub for peripherals such as keyboard and mouse on the Overo
  • USB keyboard and mouse for the Overo

Installation

On your host computer (ie your workstation):

  1. Install git and Linaro Image Tools
    $ sudo apt-get install git linaro-image-tools
    After this operation, 152 MB of additional disk space will be used.
    Do you want to continue [Y/n]? Y
  2. Obtain the root file system and the hardware pack via direct downloads: hwpack rootfs or via Gumstix’s Github.
    $ git clone git://github.com/gumstix/Gumstix-Overo-Linaro.git

    It will create a directory called Gumstix-Overo-Linaro as below

    $ ls
    Gumstix-Overo-Linaro

    You can additionally check the integrity of the downloaded files by comparing the md5sum result in the README file.

  3. Insert micro-SD card to your card writer
  4. Execute the following command:
    $ linaro-media-create --rootfs ext3 --mmc </dev/mmcblk0> --dev overo --hwpack <hwpack.tar.gz> --binary <rootfs.tar.gz>

    Replace </dev/mmcblk0>, <hwpack.tar.gz> <rootfs.tar.gz> with the mount point of your micro-SD card, the location of the hardware pack, and the location of the root file system respectively.
    For example, it may look like the below:

    $ linaro-media-create --rootfs ext3 --mmc /dev/sdd --dev overo --hwpack Gumstix-Overo-Linaro/Gumstix-Overo-Linaro-armhf-HWPack.tar.gz --binary Gumstix-Overo-Linaro/Gumstix-Overo-Linaro-Precise-ALIP-armhf-RootFS.tar.gz
  5. It will list disk devices attached on your computer, and will confirm with you the location of the micro-SD you have provided in the previous step. If correct, say yes or y.
    $
    I see...
    Device Mount point Size
    /dev/dm-0 / 80904MB
    /dev/dm-1 none 768MB
    /dev/sda none 81920MB
    /dev/sda1 /boot 243MB
    /dev/sda2 none 81674MB
    /dev/sda5 none 81674MB
    /dev/sdb none 0MB
    /dev/sdc none 0MB
    /dev/sdd none 3782MB
    /dev/sdd1 none 51MB
    /dev/sdd2 none 3730MB
    /dev/sde none 0MB
    /dev/sr0 none 0MB
    /dev/sr1 none 0MB
    Are you 100% sure, on selecting [/dev/sdd] (y/n)? y
  6. Answer yes or y to the questions when it needs to install packages
    $ After this operation, 20.1 MB of additional disk space will be used.
    Do you want to continue [Y/n]? y
  7. At some point you should see something like below:
    $ Populating rootfs partition
    Be patient, this may take a few minutes

    Wait for…

    $ Done creating Linaro image on /dev/sdd
  8. When it is finished, insert the microSD card to your Overo
  9. Done!

Using Linaro

To boot your Overo with the new Linaro image:

  1. Insert the micro-SD Card to the Overo COM
  2. Connect the HDMI and the Ethernet cables to the expansion board
  3. Attach peripherals through a powered USB hub
  4. Plug power into the power jack
  5. In the log in prompt, select Lubuntu
  6. Default user name and password are gumstix and gumstix respectively
  7. You should be greeted with a desktop much like below!

Username:password are gumstix:gumstix
Host name is overo (overo.local if you want to reach from local area network)

List of Notable Standard Applications

  • Accessories
    • Disk Utility
    • File Manager
    • Calculator
    • LXTerminal
    • Leafpad
  • Internet
    • Chromium Web Browser
  • Office
    • Adobe Document Viewer
    • AbiWord

List of Hardware Pack Components

As per the manifest file which can also be found from the Gumstix GitHub:

$ cat manifest
iw=3.2-1
devio=1.2-1build1
wireless-regdb=2011.04.28-1ubuntu3
wireless-crda=1.16
u-boot-tools=2011.09-2
libnl-3-200=3.2.3-2ubuntu2
linux-firmware=1.79
uboot-mkimage=2011.09-2
flash-kernel=2.28ubuntu42.2linaro1
crda=1.1.2-1ubuntu1
libnl-genl-3-200=3.2.3-2ubuntu2
linux-headers-3.2.1-linaro-omap=3.2.1-linaro-omap-10.00.Custom
linux-image-3.2.1-linaro-omap=3.2.1-linaro-omap-10.00.Custom

Additional Tips

Enabling Audio

By default sound output is disabled. To enable sound, launch alsamixer through LXTerminal and adjust the values as below.

$ alsamixer


┌───────────────────────────── AlsaMixer v1.0.25 ──────────────────────────────┐
│ Card: overo                                          F1:  Help               │
│ Chip:                                                F2:  System information │
│ View: F3:[Playback] F4: Capture  F5: All             F6:  Select sound card  │
│ Item: HeadsetR Mixer Voice                           Esc: Exit               │
│                                                                              │
│              ┌──┐                                                            │
│              │  │                                                            │
│              │  │                                                            │
←              │▒▒│                                                            →
←              │▒▒│                                                            →
←              │▒▒│                                                            →
←              │▒▒│                                                            →
←              │▒▒│                                                            →
←              │▒▒│                                                            →
←              │▒▒│                                                            →
│              │▒▒│                                                            │
│              │▒▒│                                                            │
│    Voice     └──┘     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐      │
│                       │OO│     │OO│     │OO│     │OO│     │OO│     │OO│      │
│                       └──┘     └──┘     └──┘     └──┘     └──┘     └──┘      │
│             79<>79                                                           │
│   Handsfre Headset  HeadsetL HeadsetL HeadsetL HeadsetR HeadsetR<HeadsetR>   │
└──────────────────────────────────────────────────────────────────────────────┘

 

Changing Screen Resolution

Getting USB Host To Work

Exception of USB flash drive, the USB host port requires a powered USB hub to be functional with peripherals such as keyboard and mouse.

Getting WiFi To Work

Follow this wiki depending on your wireless network configuration.

Current Issues

Long network bring up time w/ no Ethernet connected
(Only wireless Overos)

Booting takes time without an ethernet cable plugged to the expansion board. This is because the failsafe script waits too long before giving up on acquiring an IP address. This is a poor implementation of fail safe mechanism. We are leaving it up to the upstream to decide how to deal with it.

Not all default desktop managers work

All desktop environments (Lubuntu, Lubuntu Netbook and Openbox) work. GNOME/Openbox seems to be misconfigured.

Hardware acceleration is not working for the Overos with OpenGL.

Getting the driver for PowerVR/SGX to work with the Linaro image is a high priority task at the moment

Source Code

You can obtain the source code for the kernel and the root file system from the Gumstix Github.
Repository for kernel
Repository for root file system (Debian Live Build)
You can also directly download the tar-balls of the kernel , hardware pack, and the root file system.