Synchronize your source code Create your local branch Why should I create a local branch? Choose your board Start to build Synchronize your source code Source code you have is one week old now. So, first step is synchronize it. $ repo sync Create your local branch $ repo start <new branch name> --all Why should I create a local branch? If you change *any* source code (for choosing another preferred kernel, for example) and want to sync again, or use master instead of dylan, you may be able to rebase or sync your source code, even with changes. Or you found a bug, fixed that, and want to send a patch to community. Example of a system with 2 branches: zeus and new_feature (the asterisk shows the current branch) $ repo branches
* new_feature | in all projects
zeus | in all projects Choose your board The following command display the usage, with a list of all supported machines, all supported community distros and examples of Poky's distro: $ source setup-environment build
Usage: MACHINE=<machine> DISTRO=<distro> source setup-environment <build-dir>
Usage: source setup-environment <build-dir>
<machine> machine name
<distro> distro name
<build-dir> build directory
The first usage is for creating a new build directory. In this case, the
script creates the build directory <build-dir>, configures it for the
specified <machine> and <distro>, and prepares the calling shell for running
bitbake on the build directory.
The second usage is for using an existing build directory. In this case,
the script prepares the calling shell for running bitbake on the build
directory <build-dir>. The build directory configuration is unchanged.
Supported machines:
apalis-imx6
ccimx6ulsbcexpress
ccimx6ulsbcpro
cgtqmx6
cm-fx6
colibri-imx6
colibri-imx6ull
colibri-imx7
colibri-vf
cubox-i
imx233-olinuxino-maxi
imx233-olinuxino-micro
imx233-olinuxino-mini
imx233-olinuxino-nano
imx6dl-riotboard
imx6qdl-variscite-som
imx6q-dms-ba16
imx6qsabrelite
imx6sl-warp
imx6ul-pico
imx7d-pico
imx7s-warp
m28evk
m53evk
nitrogen6sx
nitrogen6x
nitrogen6x-lite
nitrogen7
nitrogen8m
pcm052
tx6q-10x0
tx6q-11x0
tx6s-8034
tx6s-8035
tx6u-8033
tx6u-80x0
tx6u-81x0
ventana
wandboard
imx23evk
imx25pdk
imx28evk
imx51evk
imx53ard
imx53qsb
imx6qdlsabreauto
imx6qdlsabresd
imx6slevk
imx6sllevk
imx6sxsabreauto
imx6sxsabresd
imx6ulevk
imx6ullevk
imx7dsabresd
imx7ulpevk
imx8mmevk
imx8mqevk
imx8qmmek
imx8qxpmek
ls1012afrwy
ls1012ardb
ls1021atwr
ls1043ardb
ls1046ardb
ls1088ardb
ls1088ardb-pb
ls2080ardb
ls2088ardb
lx2160ardb
mpc8548cds
p1020rdb
p2020rdb
p2041rdb
p3041ds
p4080ds
p5040ds-64b
p5040ds
t1024rdb-64b
t1024rdb
t1042d4rdb-64b
t1042d4rdb
t2080rdb-64b
t2080rdb
t4240rdb-64b
t4240rdb
Supported Freescale's distros:
fslc-framebuffer
fslc-wayland
fslc-x11
fslc-xwayland
Available Poky's distros:
poky-altcfg
poky-bleeding
poky
poky-tiny
Examples:
- To create a new Yocto build directory:
$ MACHINE=imx6qdlsabresd DISTRO=fslc-framebuffer source setup-environment build
- To use an existing Yocto build directory:
$ source setup-environment build
ERROR: You must set MACHINE when creating a new build directory.
An example of command line to setup the build environment is (read and answer if you accept EULA or not): MACHINE=imx8mmevk DISTRO=fslc-wayland source setup-environment build
(...)
Do you accept the EULA you just read? (y/n) y
EULA has been accepted.
Welcome to Freescale Community BSP
The Yocto Project has extensive documentation about OE including a
reference manual which can be found at:
http://yoctoproject.org/documentation
For more information about OpenEmbedded see their website:
http://www.openembedded.org/
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
meta-toolchain
meta-toolchain-sdk
adt-installer
meta-ide-support
Your build environment has been configured with:
MACHINE=imx8mmevk
SDKMACHINE=i686
DISTRO=fslc-wayland
EULA=
Now, you are in new created build directory. Your default build/conf/local.conf file can looks like: MACHINE ??= 'imx8mmevk'
DISTRO ?= 'fslc-wayland'
PACKAGE_CLASSES ?= 'package_rpm'
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS ??= "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
CONF_VERSION = "1"
DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = "1" For the current list of supported board, take a look on FSL Community BSP Release Notes 2.4 (Draft document) documentation Or, see the FSL Community BSP Release Notes Start to build There are a huge list of images available. Some images includes more packages than others, you can see a list of FSL Community BSP images with description here. The list of supported images from Yocto Project (with description) is here. When an image has more packages included, it takes longer to build. Another way to list all the images you have installed in your metadata is: $ find ../sources -name *image* For the goal of this training, any image is good, but a suggestion is presented in next command line: (make sure you are still in build directory)
$ cd build
$ bitbake core-image-base Note (Sept2019): Required disk space for build image is ~31GB Go to Yocto Training - HOME Go to Task #1 - Download the source code Go to Task #3 - The build result
View full article