Create a Tizen Common x86_64 image with Yocto
=============================================
-Target: Haswell CPU
+Target: Haswell/Ivy CPU
# Create your working directory
-Create a working directory (for example "~/yocto"):
+Create a working directory (for example "${HOME}/yocto","/mnt/ssd","/tmp"):
- mkdir ~/yocto
- cd ~/yocto
+ WORKINGDIR=${HOME}/yocto
+ mkdir -p ${WORKINGDIR}
+ cd ${WORKINGDIR}
Create a download directory (optional). It will act as a common download
directory amongst projects:
- mkdir ~/downloads
+ mkdir -p ${WORKINGDIR}/downloads
# Download sources
-Downlaod Poky:
+Downlaod Poky (tmp fork, poky is patched version for rpm 4 support):
- git clone git://git.yoctoproject.org/poky
+ git clone git@github.com:eurogiciel-oss/poky.git
Download Intel layers:
Download tizen layer:
- git@github.com:eurogiciel-oss/meta-tizen.git
+ git clone ssh://${YOURID}@review.tizen.org:29418/scm/bb/meta-tizen
# Configuration
Configure the environment:
- cd poky
- . ./oe-init-build-env
+ BUILDID="alice"
+ cd ${WORKINGDIR}/poky
+ source ./oe-init-build-env build-${BUILDID}
# Configuration files
This file contains the list of the layers in which poky has to search
for the recipes.
- # LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
- # changes incompatibly
- LCONF_VERSION = "6"
-
BBPATH = "${TOPDIR}"
BBFILES ?= ""
-
+
+ WORKINGDIR="${HOME}/yocto"
+
BBLAYERS ?= " \
- /home/user/yocto/poky/meta \
- /home/user/yocto/poky/meta-yocto \
- /home/user/yocto/poky/meta-yocto-bsp \
- /home/user/yocto/meta-intel \
- /home/user/yocto/meta-intel/meta-isg/meta-haswell-wc \
- /home/user/yocto/meta-openembedded/meta-efl \
- /home/user/yocto/meta-openembedded/meta-oe \
- /home/user/yocto/meta-openembedded/meta-multimedia \
- /home/user/yocto/meta-openembedded/meta-ruby \
- /home/user/yocto/meta-openembedded/meta-systemd \
- /home/user/yocto/meta-tizen \
+ ${WORKINGDIR}/poky/meta \
+ ${WORKINGDIR}/poky/meta-yocto \
+ ${WORKINGDIR}/poky/meta-yocto-bsp \
+ ${WORKINGDIR}/meta-intel \
+ ${WORKINGDIR}/meta-openembedded/meta-efl \
+ ${WORKINGDIR}/meta-openembedded/meta-oe \
+ ${WORKINGDIR}/meta-openembedded/meta-multimedia \
+ ${WORKINGDIR}/meta-openembedded/meta-ruby \
+ ${WORKINGDIR}/meta-openembedded/meta-systemd \
+ ${WORKINGDIR}/meta-tizen \
"
+ #For Arch haswell
+ #BBLAYERS_append = "${WORKINGDIR}/meta-intel/meta-isg/meta-haswell-wc "
+ #For Arch Ivy
+ BBLAYERS_append = "${WORKINGDIR}/meta-intel/meta-romley "
## conf/local.conf
Most of default values can be kept. The one that needs to be changed is:
+ #For qemu
+ MACHINE ?= "qemux86-64"
+ #For haswell
MACHINE ?= "haswell-wc"
+ #For Ivy
+ MACHINE ?= "romley-ivb"
Other useful option to set:
Download directory:
- DL_DIR ?= "${HOME}/yocto/downloads"
+ DL_DIR ?= "${WORKINGDIR}/downloads"
Setting the download directory DL_DIR to a directory shared amongst
projects prevents common data from being downloaded for each project.
The terminal emulator you want to use.
-Example of a complete configuration file (without comments):
-
- BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"
- PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"
- MACHINE ?= "genericx86-64"
- DL_DIR ?= "${HOME}/yocto/downloads"
- BB_GENERATE_MIRROR_TARBALLS = "1"
- DISTRO ?= "poky"
- PACKAGE_CLASSES ?= "package_rpm"
- EXTRA_IMAGE_FEATURES = "debug-tweaks"
- USER_CLASSES ?= "buildstats image-mklibs image-prelink"
- OE_TERMINAL = "screen"
- PATCHRESOLVE = "noop"
- BB_DISKMON_DIRS = "\
- STOPTASKS,${TMPDIR},1G,100K \
- STOPTASKS,${DL_DIR},1G,100K \
- STOPTASKS,${SSTATE_DIR},1G,100K \
- ABORT,${TMPDIR},100M,1K \
- ABORT,${DL_DIR},100M,1K \
- ABORT,${SSTATE_DIR},100M,1K"
- PACKAGECONFIG_pn-qemu-native = "sdl"
- ASSUME_PROVIDED += "libsdl-native"
- CONF_VERSION = "1"
+# WARNING' tmp add to /etc/sudoers 'WARNING
+1:
-# Build the Tizen Common image
+ sudoedit /etc/sudoers
+ alice ALL=(ALL) NOPASSWD: ALL
- bitbake tizen-common-core-image-minimal
+2:
-Two useful options are:
+ bitbake tar-replacement-native
-'k' "Continue as much as possible after an error. While the target that
- failed and anything depending on it cannot be built, as much as
- possible will be built before stopping."
-
-'v' "Output more log message data to the terminal."
+# Build the Tizen Common image
-Which gives:
+ bitbake -kv tizen-common-core-image-minimal-dev
+
+The generated image can be found in tmp/deploy/images/${MACHINE}
- bitbake -kv tizen-common-core-image-minimal
+If you made a qemu image you can run it with:
-The generate image can be found in tmp/deploy/images/genericx86-64/
+ runqemu qemux86-64 tizen-common-core-image-minimal-dev