Pre-Installation Steps

Before any installation begins, it is important that you ensure your Versatile Express board has the latest firmware and boot loader installed. Please check the “Firmware Update” tab on this page for the latest updates and installation instructions.

Using pre-built image

Prerequisites

Ubuntu 12.04 64 bit or newer on your desktop PC, which you can download from www.ubuntu.com

Building a custom image using pre-built components.

Sometimes, you may wish to build your own custom image for a Versatile Express. Perhaps you wish to use a more recent snapshot of the hardware pack for Ubuntu or take the latest Android build. Whatever the reason, you will want to use the Linaro Image Tools to create a custom image.

Using components to generate the image will yield the same functionality found in the pre-built image of the same release.

Prerequisites

Ubuntu 12.04 64 bit or newer on your desktop PC, which you can download from www.ubuntu.com

Download Artifacts from above or use the following command in your terminal

Booting the image

After the media create tool has finished executing, remove the SD card from your PC and insert it into the Versatile Express board.

Before you can boot the image you will need to install the UEFI boot loader into NOR flash and update the Versatile MMC card configuration files. The instructions on the Firmware Update tab provide information on how to do this and how to configure UEFI to specify the SD card as a boot device.

Advanced Setup for Benchmarking

Advanced users of Versatile Express may wish to perform benchmarking tests on the board.

Booting with the root filesystem on a USB mass storage device is more efficient both in terms of electrical power and processing speed. Unfortunately, UEFI does not support booting the kernel from USB. In order to achieve this, we recommend that you install the kernel onto SD card and the root filesystem to USB mass storage.

The instructions below will create two identical images: one on SD card and one on USB mass storage. The user is able to choose which device the kernel uses for the root filesystem by adding a command line parameter. By default, the android kernel will expect the root filesystem to be read from the SD card. Adding the parameter “androidboot.hardware=arm-versatileexpress-usb” to the command line will over-ride this behaviour and instruct the kernel to read the root filesystem from USB.

Before following these instructions, ensure that you have both an SD card and a USB mass storage device of at least 4GB inserted into your Linux machine.

Using a pre-built image

Follow the instructions above for creating an image on an SD card. Then repeat the instructions using the device path for your USB device. For example:

Using linaro-android-media-create

First the user should run linaro-android-media-create as described above. Then run it again with a USB mass storage device. This will create two release images: one on the SD card and the other on the USB device.

Booting your system with the advanced setup

Insert the SD card into the card slot on the Versatile Express board and insert the USB device into one of the USB device slots on the board. The USB slots are located below the ethernet port on the rear panel.

Boot the board using the standard UEFI firmware setup as described in the Firmware Update tab.

When UEFI starts, you will need to interrupt the boot countdown and edit the configuration to add the following text to the end of the kernel commandline:

androidboot.hardware=arm-versatileexpress-usb

Instructions for updating the UEFI configuration can be found on the UEFI wiki

If you’re using a released build (with a -release or from releases.linaro.org), skip this step.
If you’re using a “tip” build do not skip the step and do the following:
$ sudo apt-get install bzr
$ bzr branch lp:linaro-image-tools

Project: "platform/external/lrzsz"Description: "Project: Non AOSP project. Unix communication package providing the XMODEM, YMODEM ZMODEM file transfer protocols. Used to get a file over from minicom before adb and friends are up on a new device."

Project: "platform/external/stressapptest"Description: "Project: stressapptest tries to maximize randomized traffic to memory from processor and I/O, with the intent of creating a realistic high load situation in order to stress test the device. Also used in cache-coherency testing."

Project: "platform/external/thirdparty-benchmarks"Description: "Project: Non AOSP project. This project repository is used for storing uiautomator test cases of thirdparty benchmark applications and monkeyrunner scripts for running and parsing the result automatically."