Build Yocto SECO Layer BSP 8.0

From WIKI SECO
Seco yocto ok.png


Introduction

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.

Host Setup

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)

Host Packages

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

Output:

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:

Gui1.png

Choose the right Ram Size and Configuration:

Gui2.png

Select DISTRO:

Gui3.png

Write the name of your BUILD directory;

Gui4.png

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
core-image-minimal

A small image that only allows a device to boot.

Poky
core-image-base

A console-only image that fully supports the target device hardware.

Poky
core-image-sato

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.

Poky
seco-image-base

Builds a base image for Seco boards with custom features packages for test and debug.

Seco
seco-image-qt

Builds image for Seco boards with QT5 custom features packages for GUI development.

Seco
seco-image-test-multimedia

Builds image for Seco boards with testing packages for multimedial application.

Seco



Logo seco.png