Build Yocto SECO Layer BSP 8.0
This guideline provides instructions to setup and build Yocto Project for SECO boards only with SECO BSP. The guideline is not valid using the community BSP.
To get the Yocto Project expected behavior in a Linux Host Machine, the packages and utilities described below must be installed. An important consideration is the hard disk space required in the host machine. For example, when building on a machine running Ubuntu, the minimum hard disk space required is about 50 GB for the X11 backend. It is recommended that at least 120 GB is provided, which is enough to compile any backend.
The recommended minimum Ubuntu version is 14.04 but builds for Jethro works on 12.04 or later. Earlier versions may cause the Yocto Project build setup to fail, because it requires python versions only available starting wtih Ubuntu 12.04. See The Yocto Project reference manual for more information.
|Ubuntu Distro release||Supported/Unsupported|
|Ubuntu Release 12.04 (precise)||Supported|
|Ubuntu Release 14.04 (Trusty)||Supported|
|Ubuntu Release 16.04 (Xenial)||Supported *|
|Ubutnu Release 18.04 (Bionic)||Unsupported|
Note:Ubuntu 16.04 users have commented on errors during build for SDL. To fix this comment out in local.conf the following lines as such adding # character
#PACKAGECONFIG_append_pn-qemu-native = " sdl" (In <build-folder>/conf/local.conf) #PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" (In <build-folder>/conf/local.conf)
A Freescale Yocto Project Community BSP build requires that some packages be installed for the build that are documented under the Yocto Project.You can go to Yocto Project Quick Start and check for the packages that must be installed for your build machine. Essential Yocto Project host packages:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat libsdl1.2-dev
i.MX layers host packages for a Ubuntu 12.04,14.04,16.04 host setup:
$ sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html \ docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils \ libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc
i.MX layers host packages for a Ubuntu 12.04 host setup only:
$ sudo apt-get install uboot-mkimage
i.MX layers host packages for a Ubuntu 14.04,16.04 host setup only are:
$ sudo apt-get install u-boot-tools
The configuration tool uses the default version of grep that is on your build machine. If there is a different version of grep in your path, it may cause builds to fail. One workaround is to rename the special version to something not containing "grep".
Setting up the repo utility
Repo is a tool built on top of Git that makes it easier to manage projects that contain multiple repositories, which do not need to be on the same server. Repo complements very well the layered nature of the Yocto Project, making it easier for customers to add their own layers to the BSP.
To install the “repo” utility, perform these steps:
1. Create a bin folder in the home directory.
$ mkdir ~/bin (this step may not be needed if the bin folder already exists) $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo
2. Add the following line to the .bashrc file to ensure that the ~/bin folder is in your PATH variable.
$ export PATH=~/bin:$PATH
Yocto Project Setup
The following example shows how to download the Freescale Yocto Project Community BSP recipe layers. Exit from the root and create a home directory For example, a directory called imx-yocto-bsp is created for the project.
$ mkdir ~/seco_bsp_4_14_78 $ cd ~/seco_bsp_4_14_78 $ git config --global user.name "Your Name" $ git config --global user.email "Your Email" $ git config --list $ repo init -u https://git.seco.com/arm/nxp/imx6/bsp8/release/seco-imx-manifest-rel.git -m seco-imx-4.14.78-1.0.0_ga.xml $ repo sync
Configuration And Build Using Bash Script
At this point you can use seco-setup.sh help command -h to know more about various configurations and usages:
To use GUI tool option -h you need to install
$ source seco-setup.sh -h
Usage: source seco-setup.sh -m <machine> -r <ram-size> -d <distro> -b <build-dir> Optional parameters: [-r ram-size] [-d distro] [-b build-dir] [-g] * [-m]: Machine name, if unspecified script uses 'seco_uq7_962' as default * [-r]: Ram size of SECO board, if unspecified script uses '1G_4x256M' as default * [-d]: Distro name, if unspecified script uses 'seco-imx-fb' as default * [-b]: Build directory, if unspecified script uses 'build' as output directory * [-g] : Sets project options via graphics wizard (requires python). With this each other arguments will be ignored * [-h] : Prints this help and each other arguments will be ignored Configurations: -m [ seco-uq7-962 | seco-uq7-a75 | seco-q7-928 | seco-sbc-a62 | seco-sbc-b08 ] -r [ 256M_1x256M | 512M_2x256M | 512M_2x256M | 1G_4x256M | 1G_2x512M | 2G_4x512M] -d [ seco-imx-wayland | seco-imx-fb | seco-imx-x11 ] Eg: source seco-setup.sh -m seco-q7-928 -r 1G_4x256M -d seco-imx-fb -b build
Then as the script suggests choose your Seco board ram-configuration, distro, board and build-folder. Now start to bitbake. For example after:
source seco-setup.sh -m seco_q7_928 -r 1G_4x256M -d seco-imx-fb -b build
Can bitbake for example a Seco recipe using:
$ bitbake seco-image-base
Configuration And Build Using GUI
To configure and build Seco Yocto Project using GUI first install needed packages
sudo apt-get install python-wxtools
Now start the configuration GUI using:
source seco-setup.sh -g
GUI will starts, choose the right MACHINE:
Choose the right Ram Size and Configuration:
Write the name of your BUILD directory;
With space scroll all therminal log anche click "y" to accept EULA conditions. Configuration is done, start to bitbake.
Choosing Yocto Project image
The Yocto Project provides some images which are available on different layers. Poky provides some images, meta-fsl-arm and meta-fsl-demos provide others, and additional image recipes are provided in the meta-fsl-bsp-release layer. The following table lists various key images, their contents, and the layers that provide the image recipes.
|Image Name||Target||Provided By Layer|
A small image that only allows a device to boot.
A console-only image that fully supports the target device hardware.
An image with Sato, a mobile environment and visual style for mobile
devices. The image supports X11 with a Sato theme, Pimlico applications.It contains a terminal, an editor and a file manager.
Builds a base image for Seco boards with custom features packages for test and debug.
Builds image for Seco boards with QT5 custom features packages for GUI development.
Builds image for Seco boards with testing packages for multimedial application.