YOCTO is the tool of choice for NXP for the creation of embedded Linux distributions for i.MX6.
This page details how to get setup to build Linux for Opal-6 using YOCTO.
We assume you already have a Linux machine (virtual or not) setup and ready to use. If not, you can follow our instructions here to setup a Virtual Machine for this purpose.
There are two way to get setup:
- Automated setup using our installer script
- Manual setup - for advanced users who want to have more control over the process
Automated Setup
The following link is for a script that will take care of downloading and configuring all the pieces required to setup YOCTO
install_opal6_yocto.sh
Manual Setup
Initial Setup and YOCTO Installation
Original instructions can be found here: https://community.freescale.com/docs/DOC-1616
In a terminal windows on your Linux machine, do the following:
Install the required components:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm curl
Next run the following commands to install the YOCTO build environment. This installs the 'repo' tool used to manage YOCTO:
$ mkdir ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ export PATH=$PATH:~/bin
If you have not setup git previously, do the following, replacing the "you@example.com" and "Your Name" with your real details:
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
Now complete the YOCTO install
$ mkdir fsl-community-bsp
$ cd fsl-community-bsp
$ repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b jethro
$ repo sync
The Opal-6 meta layer contains the recipes required to build the Opal6 demo images. These include u-boot, the Linux kernel, root file system images and some demo applications.
To install the Opal-6 meta layer for YOCTO:
$ cd sources
$ git clone https://github.com/DeviceSolutions/meta-opal6-demos.git
$ cd meta-opal6-demos
$ git checkout jethro
Install Third Party Components
The default Opal-6 image requires external components acquired from third parties so install them as follows:
$ cd ~/fsl-community-bsp/sources
$ git clone -b jethro https://github.com/OSSystems/meta-browser.git
$ git clone git://git.yoctoproject.org/meta-mono.git
You should now have three new layers called meta-opal6-demos, meta-browser and meta-mono.
Initialise YOCTO using the following commands. This generates the build environment files.
$ cd ~/fsl-community-bsp
$ source setup-environment build
Next we modify the build file to specify it is Opal-6 we are building. This is specified by the MACHINE variable in ~/fsl-community-bsp/build/conf/local.conf. Open the file in an editor and set:
For Opal-6 QUAD:
MACHINE ??= ‘opal6q’
For Opal-6 DualLite:
MACHINE ??= ‘opal6dl’
Now add our meta layers to ~/fsl-community-bsp/build/conf/bblayers.conf. This file needs careful editing. Add the lines below in bold:
BBLAYERS = "
${BSPDIR}/sources/poky/meta \
${BSPDIR}/sources/poky/meta-yocto \
\
${BSPDIR}/sources/meta-openembedded/meta-oe \
${BSPDIR}/sources/meta-openembedded/meta-multimedia \
\
${BSPDIR}/sources/meta-fsl-arm \
${BSPDIR}/sources/meta-fsl-arm-extra \
${BSPDIR}/sources/meta-fsl-demos \
\
${BSPDIR}/sources/meta-openembedded/meta-python \
${BSPDIR}/sources/meta-openembedded/meta-networking \
${BSPDIR}/sources/meta-openembedded/meta-gnome \
${BSPDIR}/sources/meta-openembedded/meta-xfce \
${BSPDIR}/sources/meta-opal6-demos \
${BSPDIR}/sources/meta-mono \
"