TS-4900 - Build Yocto Distribution
Recommended reading
Build Yocto
To get started, install repo. This is a tool for downloading and updating a set of git repositories.
mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=${PATH}:~/bin
Check out our BSP:
mkdir ts-bsp
cd ts-bsp
repo init -u https://github.com/embeddedarm/ts-oe-bsp.git -b fido
repo sync # This will take a while while it downloads around 10 git repos
Once it is downloaded the environment needs to bet set up:
## The SDK will default to the architecture of the build system
## or you can override it with one of the following:
#export SDKMACHINE="x86_64"
#export SDKMACHINE="i686"
# Generate the image based on quad or solo
export MACHINE="tsimx6"
## The SDK and MACHINE can be changed later by modifying build/conf/local.conf
source ./setup-environment build
Next replace the newly generated contents of conf/bblayers.conf with this:
LCONF_VERSION = "6" BBPATH = "${TOPDIR}" BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}" BBFILES ?= "" BBLAYERS = " \ ${BSPDIR}/sources/poky/meta \ ${BSPDIR}/sources/poky/meta-yocto \ ${BSPDIR}/sources/poky/meta-yocto-bsp \ \ ${BSPDIR}/sources/meta-openembedded/meta-oe \ ${BSPDIR}/sources/meta-openembedded/meta-systemd \ ${BSPDIR}/sources/meta-openembedded/meta-multimedia \ ${BSPDIR}/sources/meta-openembedded/meta-networking \ ${BSPDIR}/sources/meta-openembedded/meta-ruby \ ${BSPDIR}/sources/meta-openembedded/meta-python \ ${BSPDIR}/sources/meta-openembedded/meta-gnome \ \ ${BSPDIR}/sources/meta-fsl-arm \ ${BSPDIR}/sources/meta-fsl-arm-extra \ ${BSPDIR}/sources/meta-fsl-demos \ ${BSPDIR}/sources/meta-ts \ ${BSPDIR}/sources/meta-mono \ ${BSPDIR}/sources/meta-qt5 \ ${BSPDIR}/sources/meta-browser \ "
Edit the file conf/local.conf. To match our image, add these lines:
LICENSE_FLAGS_WHITELIST = "commercial_libav commercial" PACKAGECONFIG_append_pn-qtbase = " icu accessibility" # Skip these three if you do not want systemd DISTRO_FEATURES_append = " systemd" VIRTUAL-RUNTIME_init_manager = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
You will need to select which image to build. Our default image is ts-x11-image. You can view the images we provide with:
ls -l ../sources/meta-ts/recipes-*/images/*
These images may change in the future, or more may be added. There are descriptions in the top comments of each file.
- Build our common image with X11/QT support
bitbake ts-x11-image
- Alternatively, this is a smaller image with X11/QT omitted
- bitbake ts-headless-image
After the build has finished, it will be available in "tmp/deploy/images/tsimx6". Use gparted or fdisk+mkfs to format an SD card with a single partition. From your pc, mount the SD card. Assuming /dev/sdc is the SD card
mkdir /mnt/sd
sudo mount /dev/sdc1 /mnt/sd
sudo mkfs.ext4 /dev/sdc1
sudo tar -xf ts-x11-image-tsimx6.tar.bz2 -C /mnt/sd
sudo umount /mnt/sd/
sync
Updating the distribution
Occasionally we will make updates to Yocto. To pull these down:
export PATH=${PATH}:~/bin
cd ts-bsp
repo sync
source ./setup-environment build
From here, you can bitbake your desired image which will include any updates.