TS-4900 - Build Yocto Distribution: Difference between revisions
No edit summary |
No edit summary |
||
Line 18: | Line 18: | ||
mkdir ts-bsp | mkdir ts-bsp | ||
cd ts-bsp | cd ts-bsp | ||
repo init -u https://github.com/embeddedarm/ts-oe-bsp.git -b | 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 | repo sync # This will take a while while it downloads around 10 git repos | ||
</source> | </source> | ||
Line 29: | Line 29: | ||
#export SDKMACHINE="i686" | #export SDKMACHINE="i686" | ||
# Generate the image based on quad or solo | # 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 | ## The SDK and MACHINE can be changed later by modifying build/conf/local.conf | ||
source ./setup-environment build | source ./setup-environment build | ||
</source> | |||
Next replace the newly generated contents of conf/bblayers.conf with this: | |||
<pre> | |||
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 \ | |||
" | |||
</pre> | |||
Edit the file conf/local.conf. To match our image, add these lines: | |||
<pre> | |||
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" | |||
</pre> | |||
You will need to select which image to build. Our default image is ts-x11-image. You can view the images we provide with: | You will need to select which image to build. Our default image is ts-x11-image. You can view the images we provide with: | ||
Line 61: | Line 92: | ||
#bitbake ts-headless-image | #bitbake ts-headless-image | ||
After the build has finished, it will be available in | 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 | ||
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 | |||
<source lang=bash> | <source lang=bash> | ||
mkdir /mnt/sd | mkdir /mnt/sd | ||
sudo mount /dev/sdc1 /mnt/sd | sudo mount /dev/sdc1 /mnt/sd | ||
sudo mkfs.ext4 /dev/sdc1 | sudo mkfs.ext4 /dev/sdc1 | ||
sudo tar -xf ts-x11-image- | sudo tar -xf ts-x11-image-tsimx6.tar.bz2 -C /mnt/sd | ||
sudo umount /mnt/sd/ | sudo umount /mnt/sd/ | ||
sync | sync |
Revision as of 14:40, 27 August 2015
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.