User:B-flat

From Gumstix User Wiki
Revision as of 11:55, 14 May 2009 by B-flat (Talk | contribs) (Booting the gumstix from a micro SD card)

Jump to: navigation, search

Introduction

I am working on settin up my Verdex Pro 400-Bt with LCD to run java with the touch screen and a simple graphical gui.

I'll use this page to share my experiencs on successes and obstacles I find. Feedback always appreciated.

My Build system

I am running a VM-ware player image with Gentoo Linux placed on a USB hostpowered disc. This does not give highest possible performance, but it allows for a lot of mobility and portability. Peripherals like a (micro)SD-card reader adapter for USB works fine, but the built-in one in my laptop is not available within the VM-ware player.

On my Gentoo linux I set-up the build environment according to the instructions for the overo build system.

The reason for choosing the open-embedded as for Overo is that the Verdex buildsystem has not been updated for approx. a year now and I wanted the latest recipes to get e.g. Open JDK.

Building an Rootfs image and a kernel

First I checked out a copy of (instructions) the Verdex build system. So the home directory now has:

~/gumstix/gusmtix-oe/
~/overo-oe/

Then, I copied the Verdex image recipes to the user.collection.

mkdir -p ~/overo-oe/user.collection/images/
cp ~/gumstix/gumstix-oe/com.gumstix.collection/packages/images/* ~/overo-oe/user.collection/images/

Once copied, I ran:

bitbake gumstix-basic-image

Resulting in a failure and Bitbake reporting that nothing provides some package and exited without building anything. I then copied the recipes for those packages and ran bitbake again. At the end I had copied:

task-base-gumstix
motd
uisp
version
www-content

Problems with No GNU_HASH fount in elf

Baking the gumstix-basic-image the process stopped with the I2C package and the log information boiled down to the error message: No GNU_HASH fount in elf for the i2c.

Asking for hints in the gumstix.users mailing list helped alot. Thanks Koen and Philip (archive here) and I could find the problem in the i2c.bb file: The task do_compile ignored the LDFLAGS set by the oe/autoconf tools.

do_compile () {
       ${CC} -o i2c *.c
}

Adding ${LDFLAGS} to the line for compiling solved this problem:

do_compile () {
       ${CC} -o i2c *.c ${LDFLAGS}
}

Then the same problem emerged in the pxaregs recipes and the same solution applied. This resulted in a completed bake.

Booting the gumstix from a micro SD card

Currently, I boot the gumstix from a 2GB micro SD card. NOTE that 4GB SDHC does work to boot from. If booting from flash, the card is found and read/write works fine even with 4GB. Probably the U-boot version does not support SDHC cards. These instructions for setting up the MicroSD card works fine for me. Don't forget to enable the MMC_ROOT by uncommenting the line in the ~/gumstix/gumstix-oe/com.gumstix.collection/conf/machine/gumstix-custom-verdex.conf

MACHINE_FEATURES += "mmcroot"

Errors encountered when building

Gumstix-kernel and sumversion.h

The Gumstix-kernel recipe fails with the error message

warning: unused variable 'filelist'

The problem is solved by adding '#include <limits.h>' after strings.h in scripts/mod/sumversion.c fixes the issue. The file is found at: ~/overo-oe/tmp/work/gumstix-verdex-angstrom-linux-gnueabi/gumstix-kernel-2.6.21-r0/linux-2.6.21/scripts/mod/sumversion.c

#include <netinet/in.h>
#ifdef __sun__
#include <inttypes.h>
#else
#include <stdint.h>
#endif
#include <ctype.h>
#include <errno.h>
#include <string.h>
#include <limits.h>        <--- add this line
#include "modpost.h"

/*
 * Stolen form Cryptographic API.
 *
 * MD4 Message Digest Algorithm (RFC1320).


I2C package No GNU_HASH found in elf binary

The I2C package fails in the QA phase with the error message:

ERROR: QA Issue: No GNU_HASH in the elf binary: '/home/<user>/overo-oe/tmp/work/armv5te-angstrom-linux-gnueabi/i2c-1.0-r2/install/i2c/usr/bin/i2c'

The problem is because the recipe ignores the linker flags set in the oe environment and therefore builds the wrong type of binary (see posts on gumstix-users [1]. The problem is easily fixed by editing the I2C recipe like this:

# nano ~/overo-oe/org.openembedded.dev/recipes/i2c/i2c.bb
do_compile () {
       ${CC} -o i2c *.c ${LDFLAGS}
}

Coming challenges

Setting up a bluetooth PAN from verdex to my gentoo to easily deploy new builds of my java application

setting up working java that have GUI and uses the touch screen.

finding and building a lib for java serial

setting up a continuous integration environment