The Yocto 1.5 release is approaching and the Freescale layer trees are now frozen.
Bootlin added support for the various Crystalfontz boards to that release as you can check on the OpenEmbedded metadata index.
First some preparative work has been done in the meta-fsl-arm layer in order to add the required features to generate an image able to boot on the Crystalfontz boards:
- Support for a newer version of the Barebox mainline, 2013.08.0. As the previously supported version of Barebox was too old, it didn’t include support for the Crystalfontz boards. Also, some work has been done to make the recipe itself more generic so that custom layers can reuse it more easily.
- Inclusion of the patches allowing the imx-bootlets to boot Barebox. The imx-bootlets were only able to boot U-Boot or the Linux kernel until now.
- Creation of a new image type, using the imx-bootlets, then Barebox to boot the Linux kernel. All the boards based on a Freescale mxs SoC (i.mx23 and i.mx28) will benefit of this new image type. This is actually the difficult part where you lay out the compiled binaries (bootloaders, kernel and root filesystem) in the final file that is an SD card image ready to be flashed.
Then, the recipes for the Crystalfontz boards have been added to the meta-fsl-arm-extra
layer:
- First the bootloaders, imx-bootlets and Barebox, including the specific patches and configurations for the Crystalfontz boards.
- Then the kernel. The
linux-cfa
recipe uses the 3.10 based kernel available on github. - The machine configurations themselves, selecting Barebox as the bootloader and the correct kernel recipe. Also, these are choosing to install the kernel in the root filesystem instead of in its own partition.
- Touchscreen calibration for the cfa-10057 and the cfa-10058 boards. This is required to get
xinput-calibrator
working properly as it can’t calibrate without starting values.
In a nut shell, you can now use the following commands to get a working image for your particular Crystalfontz board:
- For your convenience, Freescale is providing a repo manifest to retrieve all the necessary git repositories. So first download and install
repo
:
mkdir ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
PATH=${PATH}:~/bin - We will work in a directory named
fsl-community-bsp
:
mkdir fsl-community-bsp
cd fsl-community-bsp - Ask
repo
to get themaster
branch, when Yocto 1.5 is released, you could select the new branch. (Edit: starting from September, 28th, you can use the branch nameddora
)
repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b master
- Download the layers:
repo sync
- Configure the build for
cfa-10036
:
MACHINE=cfa10036 source ./setup-environment build
- Start the build with:
bitbake core-image-minimal
- Grab a cup of coffee!
You’ll end up with an image that you can flash using the following command:
sudo dd if=tmp/deploy/images/cfa10036/core-image-minimal-cfa10036.sdcard of=/dev/mmcblk0
Obviously, you need to replace cfa10036
by the board model you are using in the above commands. While not completely perfect, core-image-sato
is also working.
In detail, the contributions from Bootlin are:
- In
meta-fsl-arm
:- Alexandre Belloni (6):
- In
meta-fsl-arm-extra
:- Alexandre Belloni (14):
- barebox 2013.08.0: Add support for the cfa10036
- imx-bootlets: Add a recipe for barebox and cfa-10036 support
- linux-cfa: Add a kernel recipe supporting Crystalfontz boards
- cfa10036: Add cfa10036 machine configuration
- linux-cfa: always use cfa10036 as MACHINE for the kernel link
- cfa10036: split configuration
- Add a machine configuration for cfa-10037
- Add a machine configuration for cfa-10049
- Add a machine configuration for cfa-10055
- Add a machine configuration for cfa-10056
- Add a machine configuration for cfa-10057
- Add a machine configuration for cfa-10058
- pointercal-xinput: add calibration for cfa10057 and cfa10058
- formfactor: add cfa10057 and cfa10058 information
- Alexandre Belloni (14):
- In
meta-fsl-base
:- Alexandre Belloni (1):
Using the old version as shown in this document may cause an error:
gpg: Signature made Tue 01 Oct 2013 06:44:27 PM CEST using RSA …
gpg: Can’t check signature: public key not found
error: could not verify the tag ‘v1.12.4’
To solve it simply update repo with the latest version
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo