3. ELDK Building
- Use a fast machine with big and fast disks. Select a reasonably fast multi-core build host with with lots of RAM and a fast I/O system, for example a large multi-spindle RAID0 array. Plan for at least 500...1000 GiB disk space. If you have the money available, go for SSDs.
- Select source tree / git repository / branch to build:
$ cd ~/git/ $ git clone git://git.denx.de/eldk.git $ cd eldk $ git checkout eldk-5.5.3
- Select build directory and initialize data
$ git log --pretty='format:%d %h %ci %s' "$@" | head -1 (HEAD, tag: eldk-5.5.3, origin/eldk-rel-v5.5.3) ba6000e 2014-11-13 11:59:15 +0100 Merge branch '5.5-eldk' into eldk-rel-v5.5.3 $ BUILD_NAME=$(git branch | sed -ne '/(detached from /d' -e 's/$/-/' -e 's/^\* //p')$(git log --format="%ad-%h" --date=short HEAD^\!) $ echo $BUILD_NAME 2014-11-13-ba6000e
Note 1: When building in a git branch, above commands will prepend the current branch name to the build directory file name; output might then look like this:$ git log --pretty='format:%d %h %ci %s' "$@" | head -1 (HEAD, tag: eldk-5.5.3, origin/eldk-rel-v5.5.3, eldk-rel-v5.5.3) ba6000e 2014-11-13 11:59:15 +0100 Merge branch '5.5-eldk' into eldk-rel-v5.5.3
resp.$ echo $BUILD_NAME eldk-rel-v5.5.3-2014-11-13-ba6000e
Note: 2 When building images for a specific target architecture, it is usually a good idea to include this name in the BUILD_NAME as in the following example.
We use theTEMPLATECONF
environment variable to select themeta-eldk
layer specific configuration files:$ TEMPLATECONF=meta-eldk/conf source oe-init-build-env /opt/eldk/build/${BUILD_NAME}-armv7a-hf
- You can now edit
"conf/local.conf"
to make any local adjustments you want. - Sanitize
PATH
, i. e. make sure it does not include"."
or other local directories which potentially might confuse bitbake.
Note: after adapting the"/home/wd"
strings to your local directory structure, the following file can be sourced:$ source ~/git/eldk/meta-eldk/tools/set-path
- Select target architecture:
Currently we support the followingMACHINE
definitions:- generic-armv4t
- generic-armv5te
- generic-armv6
- generic-armv7a
- generic-armv7a-hf
- generic-mips
- generic-powerpc
- generic-powerpc-softfloat
- generic-powerpc-4xx
- generic-powerpc-4xx-softfloat
- generic-powerpc-e500v2
- m28evk
- m53evk
Please see table 1.4. Supported Target Architectures for details.
- Select image(s) to build:
For each of the machines, we can build (for example) these images:- core-image-minimal
- core-image-minimal-mtdutils
- core-image-minimal-dev
- core-image-base
- core-image-basic
- core-image-clutter
- core-image-lsb
- core-image-lsb-dev
- core-image-lsb-sdk
- core-image-sato
- core-image-sato-dev
- core-image-sato-sdk
- core-image-qte-sdk
- core-image-x11 (ELDK 5.2.1 and older: core-image-core)
- meta-toolchain-sdk
- meta-toolchain-qte
Please see table 1.5. Supported Target Configurations for details.
- For simple tests you can run
bitbake
manually, like this:$ MACHINE=generic-armv7a-hf bitbake core-image-minimal
- For regression testing or production builds where you want to build
supported images it is usually easier to use the provided script:
$ MACHINE=generic-armv7a-hf ~/git/eldk/meta-eldk/tools/eldk-build.sh
Note: You can also pass a list of images to build in the environment, like that:$ MACHINE=generic-armv7a-hf \ IMAGES="core-image-minimal core-image-lsb-sdk meta-toolchain-sdk" \ ~/git/eldk/meta-eldk/tools/eldk-build.sh
Note: it is recommended to chose a separate build directory for each of the MACHINE settings. - The results of the build can be found in the
"tmp/deploy/images"
resp."tmp/deploy/sdk"
directories.
2. Git Repository Setup | 1. ELDK 5.x Documentation | 4. Frequently Asked Questions (and Answers) | |||
Prev | Home | Next | |||