Supported Software
Below is a summary of the software that we support for Gumstix COMs. If you want to download related software for a specific board or product, please visit their respective product pages at our online store.
Factory | Weekly | Factory | Weekly | Factory | Weekly | ||||
---|---|---|---|---|---|---|---|---|---|
Master | Dev | Master | Dev | Master | Dev |
* The Android factory image is stable, but some features (such as WiFi and Bluetooth support) are currently still in development.
Build Information
Build | Description | |
---|---|---|
Factory | The official, stable image available from Gumstix. This image is the best choice for new users who want to get started. | |
Weekly | Master | A weekly build of the master branch. This branch is considered stable, and may include stable features not yet available in the factory image release. |
Development | A weekly build of the development branch. This branch contains bleeding edge features, which may or may not be stable. This image is intended for experienced users. |
Software Downloads
Yocto Project
To make a microSD card for your board, you will need the following files:
Name | Function |
---|---|
MLO | A second-stage bootloader binary image for COMs |
RootFS | A root file system |
Das U-Boot | A bootloader binary image |
MD5 | MD5sum to verify file download |
More Information About Yocto Project Images
These images are built using the Yocto Project build system. To recreate these builds, follow the instructions at www.github.com/gumstix/Gumstix-YoctoProject-Repo.
Gumstix also uses a buildbot to create these images. You can check the build status at buildbot.gumstix.com.
Ubuntu
There are two ways to download Ubuntu for your Gumstix system. The first is downloading an image file that can be directly copied onto a microSD card using the dd command; this is the easiest way to get started. The image files can be found on the individual product pages software tab.
Users can also download all necessary files separately and install them on a microSD card, following the instructions in the Getting Started Guide.
Also from the Gumstix Lab: Ubuntu Snappy Core images supporting Gumstix products can be found at https://github.com/gumstix/snappy.
Android
Android source code is available at Gumstix' GitHub page.
Angstrom
Bitbake and Yocto Project
Gumstix publishes several different pre-built images as well as kernel and bootloader binaries. It is also possible to build these binaries using bitbake by setting up the Yocto Project build environment. Developers who are familiar with the OpenEmbedded build system will find a lot in common between the Yocto Project and OpenEmbedded, because the Yocto Project uses some of OpenEmbedded elements while improving build environment in multiple aspects.
The Yocto Project build system consists of a collection of BitBake "recipes". These recipes contain the source URL of the package, dependencies, and compile and install options. It uses the information in these recipes to track dependencies, cross-compile the package, and create binary packages. It will also create complete images including boot loaders, kernel, and root file system. As a first step the framework will build a cross-compiler toolchain for the target platform.
For more detailed information, read the Yocto Project Quick Start and BitBake user guides.
Setup and Usage
Directory Layout
poky |-bitbake |-documentation |-meta |-meta-gumstix |-meta-gumstix-extras |-meta-hob |-meta-openembedded |-meta-skeleton |-meta-ti |-meta-yocto |-meta-yocto-bsp |-oe-init-build-env `-scripts
The two bold faced directories are Gumstix Board Specific Layers (Gumstix BSP). These two are the places to look at if you would like to add/remove recipes (and ultimately packages in the root file system). Other layers are the dependencies of Gumstix BSP. Additionally, you can get the source code from their Github repositories: meta-gumstix and meta-gumstix-extras.
meta-gumstix
This directory contains recipes that either add Gumstix specific features or override the standard OpenEmbedded recipes. This is where the Gumstix specific customizations reside. Bitbake will give preference to recipes that it finds the Gumstix BSP over recipes contained in other meta layers.
meta-gumstix-extras
This directory completes the meta-gumstix layer with the recipes to build the custom Gumstix Linux distributions. For the available types of build targets, please see this.
For the complete explanation of each directory, take a look at the Appendix A. Reference: Directory Structure in the Yocto Project Reference Manual.
These instructions are for creating an Yocto Project build system for the Gumstix COMs. Much like Gentoo Ebuilds on x86, the Yocto Project is a software framework to create Linux distributions. It downloads the source code and cross compiles it for you as needed. The Yocto Project builds everything from scratch including the cross compilation toolchain. This section will show you how to set up the environment on your Linux development system.
Image Types
- The console image is a lightweight root file system image providing only a command-line interface with out any GUI support. It is similar to server versions offered by several other Linux distributions and can be a great building block for making a custom image.
- The palmtop image offers a handheld-like environment with a lightweight GUI designed for small, touchscreen displays.
- The desktop image is a fully-fledged Linux desktop environment complete with web browsers, media players and office utilities. As so many applications are built-in, this image is too large for the NAND flash and must be loaded onto a bootable microSD or NFS mount.
Bitbake Targets
Command | Target | Overo | Duovero | Pepper |
---|---|---|---|---|
bitbake u-boot | u-boot (boot loader) | ✓ | ✓ | ✓ |
bitbake virtual/kernel | linux kernel | ✓ | ✓ | ✓ |
bitbake gumstix-console-image | Gumstix console image | ✓ | ✓ | ✓ |
bitbake gumstix-palmtop-image | Gumstix palmtop image | |||
bitbake gumstix-xfce-image | Gumstix desktop image | ✓ | ✓ | ✓ |
Articles
Yocto Project on the Gumstix Overo Board
This article from Munich Technical University provides an overview of using Yocto Project on Gumstix Overo COMs.
Building Yocto Linux Images for the Gumstix Overo
This article from hackgnar goes over some additional information on building and installing a Yocto Linux image for an Overo Gumstix board.
Verdex Pro SVN Repository
This technique relies on OpenEmbedded and Bitbake so all pages related to these tools apply here. As this Verdex Pro repository is a bit older, some terminalogy has changes (e.g. ''packages'' has become ''recipes'').
Note: If you are using an Ubuntu distribution, it is likely that /bin/sh is linked to /bin/dash. If this is the case, then you will need to change /bin/sh to link to /bin/bash. Neglecting to do this will cause file corruption and your build image will not boot! Run "sudo dpkg-reconfigure dash" and answer no when asked whether you want to install dash as /bin/sh.
First you'll want to check out the source files for Gumstix OE. You should have at least 10GB of free space on your hard drive. With a typical DSL connection this step should take about 20 minutes:
$ mkdir ~/gumstix $ cd ~/gumstix $ svn co https://gumstix.svn.sourceforge.net/svnroot/gumstix/trunk gumstix-oe
Gumstix OE requires some environment setup in order to function properly. It is most convenient to set this up via your bash profile:
$ cat gumstix-oe/extras/profile >> ~/.bashrc
As part of the build process Gumstix OE downloads source code tarballs for the linux kernel and other software packages. This next step sets up a global system cache for these tarballs so that they only need to be downloaded once. Setting up a global cache may seem like a lot of trouble for a single user system, but it is often quite useful to set up an autobuilder that runs as a cron job under a separate user account. Occassionaly you may even want to do experimental work under a seperate user account. Setting this up now will save you disk space and download time later.
On most systems you will need to have root privileges for this step. The process below uses sudo, if your current user is not in the sudoers file you will get an error message. If this happens, use su and enter the root password before issuing the commands below (minus the leading sudo of course).
$ sudo groupadd oe $ sudo usermod -a -G oe your_username $ sudo mkdir /usr/share/sources $ sudo chgrp oe /usr/share/sources $ sudo chmod 0775 /usr/share/sources $ sudo chmod ug+s /usr/share/sources
Now log out/log in or close your terminal window and open a new one so that the environment changes you enabled above will take effect. Alternatively, you could source extras/profile from the command line.
The build sytem is set up to build for verdex by default. If you want to build for connex or basix you will need to edit ~/gumstix/gumstix-oe/build/conf/auto.conf. Comment out the line that selects verdex and uncomment the line that selects connex.
To build a basic root file system image that includes Linux 2.6.21, boa, cron, and ntp:
$ bitbake gumstix-basic-image
If your build machine is missing any essential packages, bitbake will notify you about them at this point. Install the recommended packages and try the bitbake command again
You will also get a message from bitbake suggesting that you install the psyco JIT compiler for better perfomance. It isn't necessary to install psyco right now, though it is a good idea to install it at some point.
You may also notice another message complaining about not finding user.collection/packages/*/*.bb. Don't concern yourself with this -- you will create this directory later when you create your first package for your own code.
This initial build will take a bit of time since it will need to download all the source code. When it completes, you will find the root file system image and the kernel image in ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/gumstix-custom-verdex(or connex if that is the machine type you selected):
$ ls -1 ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/gumstix-custom-verdex/ Angstrom-gumstix-basic-image-glibc-ipk-2007.9-test-20071101-gumstix-custom-verdex.rootfs.jffs2 gumstix-basic-image-gumstix-custom-verdex.jffs2 modules-2.6.22-r1-gumstix-custom-verdex.tgz uImage-2.6.22-r1-gumstix-custom-verdex.bin
You'll notice that there appear to be 2 jffs2 images above. However, in reality there is just one: gumstix-basic-image-gumstix-custom-verdex.jffs2 is a link to the actual image, Angstrom-gumstix-basic-image-glibc-ipk-2007.9-test-20071101-gumstix-customverdex.rootfs.jffs2
The "shorter" link name saves typing :-) Your file names may differ slightly from the above since some of them are time-stamped or versioned.
At this point we are ready to update our gumstix with the root file system and kernel that we just built.
First establish a serial connection to your gumstix by launching kermit (the below assumes you are using a USB - serial converter, adjust as necessary)
$ kermit -l /dev/ttyUSB0
Now set up the serial connection parameters and connect to the gumstix:
C-Kermit> take ~/gumstix/gumstix-oe/extras/kermit-setup C-Kermit> connect
Tip: Kermit's tab command completion is your friend. Use it to help take the sting out of long path names.
Reboot your gumstix, hit any key to stop the autoboot process and drop into U-Boot. At this point you should verify that your U-Boot version is 1.2.0. If it is not, then you will need to read the section on Updating U-Boot.
NOTE: At the moment gumstix-oe does not yet build U-Boot. If you need to update U-Boot you can find pre-built uboot binaries at:
Now we are ready to transfer our new root file system to gumstix RAM, protect the 2 boot sectors, erase the rest of flash, and then finally program the flash.
GUM> loadb a2000000 C-Kermit> cd ~/gumstix/gumstix-oe/tmp/deploy/glibc/images/gumstix-custom-verdex/ C-Kermit> send gumstix-basic-image-gumstix-custom-verdex.jffs2 C-Kermit> connect GUM> protect on 1:0-1 GUM> erase all GUM> cp.b a2000000 40000 ${filesize}
Since the Linux kernel resides in its own partition, our final step is to transfer the kernel uImage to gumstix RAM and then finally to flash (don't forget to adjust the filename if needed):
GUM> loadb a2000000 C-Kermit> send uImage-2.6.21-r1-gumstix-custom-verdex.bin C-Kermit> connect GUM> katinstall 100000 GUM> katload 100000 GUM> bootm