Search by Tags

OpenEmbedded (classic)


Article updated at 28 Oct 2017
Compare with Revision

Subscribe for this article updates

For our T20 Linux image V1.x starting from beta5 we use OpenEmbedded. We provide the recipes we use together with the OpenEmbedded classic tree.
OpenEmbedded (core) gives information on OpenEmbedded used in our V2.x images.

Sources V1.x


Installation V1.x

Compare with . Check that you have installed the required software on your build machine.

The procedure below deviates from this getting started in the directory structure: Parallel to 'stuff/' we use a directory 'output/' for all output created during the build process and 'sources/' for the stuff downloaded from the internet.

NOTE: We intend to move to oe-core in one of the next revisions of our BSP. Minimize the efforts you spend on openembedded classic for use with our Colibri T20 module

NOTE: If you want to build your application with openembedded, the user manual at is a good starting point on how to write recipes.

This installs OpenEmbedded in $HOME/oe
(This instructions are also available in stuff/README)

# get our configuration, our recipes
mkdir oe
cd oe
tar xjvf Colibri-OpenEmbeddedV1.1Beta1_20120710.tar.bz2

# get bitbake, get openembedded classic
cd stuff
tar xzvf bitbake-1.12.0.tar.gz
rm bitbake-1.12.0.tar.gz 
ln -s bitbake-1.12.0/ bitbake
git clone --no-checkout git://
# the revision where our patch works against
cd openembedded
git branch colibri be7fc55acccef17b90057f1cdec2479f5c6cb3af
git checkout colibri

# patch the openembedded branch
patch -p 1 < ../oe.patch
patch -p 1 < ../oe-V1.1.patch
cd ..
# patch the trdx/... V1.1Beta1 tree to V1.1 (which is the same as V1.1Beta2)
patch -p 1 < ./oe-V1.1Beta2.patch
# patch the trdx/... V1.1 tree to V1.2
patch -p 1 < ./oe-V1.2.patch

Configuration V1.x

Edit the files export and build/conf/local.conf in oe/stuff

export: check/adapt the paths

build/conf/local.conf: check the OEHOME path, check at the end ASSUME_PROVIDED. Read through this file

Building V1.x

# set the environment variables
cd $HOME/oe/stuff
source export

# build the image, write console output also 
# to $OEHOME/build.log

# NOTE: this will take hours, downloads lots of stuff and 
# fills $OEHOME/output, so have at least 60 GByte free.
bitbake angstrom-lxde-image 2>&1 | tee $OEHOME/build.log

# build a single package and all things it depends on
bitbake samba

The output can be found here:

  • For images, u-boot, uImage, rootfs: $OEHOME/output/deploy/eglibc/images/.../
  • For ipk packages: $OEHOME/output/deploy/eglibc/ipk/.../*.ipk
  • Cross compiler and tools: $OEHOME/output/sysroots/x86_64-linux/usr/armv7a-vfp/bin
  • Library headers and unstripped binary libraries can be found in: $OEHOME/output/sysroots/armv7a-vfp-angstrom-linux-gnueabi/

Update V1.x

To update your Colibri Module you need the tools provided with our Linux images. e.g. if you unpacked T20_LinuxImageV1.0Beta6 in your home directory do something like this:

cd ~/T20_LinuxImageV1.0Beta6/bin
cp $OEHOME/output/deploy/eglibc/images/colibri-t20/uImage-colibri-t20.bin ./
ln -fs uImage-colibri-t20.bin uImage
cp $OEHOME/output/deploy/eglibc/images/colibri-t20/u-boot-colibri-t20-git-r82.bin ./
ln -fs u-boot-colibri-t20-git-r82.bin u-boot.bin
cp $OEHOME/output/deploy/eglibc/images/colibri-t20/u-boot-hsmmc-colibri-t20-git-r82.bin ./
ln -fs u-boot-hsmmc-colibri-t20-git-r82.bin u-boot-hsmmc.bin
cd ../rootfs
sudo rm -rf *
sudo tar xvf $OEHOME/output/deploy/eglibc/images/colibri-t20/LXDE-image-colibri-t20.tar
cd ..
./update -h
./ -r 512 -v V1_2