Skip to content
Snippets Groups Projects
Jonas Höppner's avatar
Jonas Höppner authored
One logo, centered, white background, no rotation.
Rotation may be set in a postinstall step later.

BCS 746-000275
aa6fb3dc

Yocto Dunfell repository for Garz & Fricke Platforms

This layer provides support for Garz & Fricke platforms to be used with Yocto.

This layer depends on:

Description

These repositories contain all the source code and metadata to build images and packages for Garz & Fricke devices based on the imx6, imx6ull and imx8mm processor.

The build system is based on the yocto project, further information and documentation can be found at http://docs.yoctoproject.org/. The yocto project uses so called 'layers' containing the metadata to build all needed packages, while the packages sources are downloaded during the build.

The Garz & Fricke yocto is based on the base layers from poky (git://git.yoctoproject.org/poky) and openembedded (git://git.openembedded.org/meta-openembedded). QT5 support is included the meta-qt5 layer (git://code.qt.io/yocto/meta-qt5).

For the imx8m platform Tanaro the BSP from Freescale (git://github.com/Freescale/meta-freescale) is included for GPU and VPU drivers and tools.

For the imx6 based platforms (SANT*) GPU and VPU drivers the etnaviv driver is used, included in the mainline opensource layers.

This Garz & Fricke specific part comes as two parts layers:

The Garz & Fricke manifest repository (https://gitlab.com/garz-fricke/yocto/manifest) contains the so called manifest (default.xml) for the repo tool (https://gerrit.googlesource.com/git-repo). The manifest file contains a list of all layers and there specific revisions needed to build the image for Garz&Fricke devices, the repo tool itself reads this manifest and handles the clone and directory setup for you.

Getting started

Preparing the host system

There are some requirements to the host system.

Ubuntu 18.04.1

Tested distribution is currently Ubuntu 18.04. LTS. ISO-Installation-Image: https://releases.ubuntu.com/18.04/ubuntu-18.04.5-desktop-amd64.iso

This should work as virtual machine (Virtual box ...) or baremetal installation.

Yocto related base software

Needed tools are listed in the yocto documentation http://docs.yoctoproject.org/brief-yoctoprojectqs/brief-yoctoprojectqs.html#compatible-linux-distribution:

Execute the following commands to install them:

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
    build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
    xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa 
    libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev

Additionally needed:

sudo apt install -y quilt curl flex bison libssl-dev

Development tools

sudo apt install git minicom gdb-multiarch crossbuild-essential-armhf \
    meld gedit nano cscope quilt qtcreator

Install repo tool

If available the tool can also be installed from the distributions package manager. This directly downloads the latest version from google.

mkdir ~/bin # once
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo # once
chmod a+x ~/bin/repo # once
echo "export PATH=${PATH}:~/bin" >> ~/.bashrc # once
source ~/.bashrc

Gitlab access

To download source code from gitlab the generation of a ssh key pair is needed.

SSH key for GitLab (https://docs.gitlab.com/ee/ssh/README.html#generating-a-new-ssh-key-pair):

ssh-keygen -t ed25519 -C "name@provider.com" # use your email instead
cat ~/.ssh/id_ed25529.pub
(copy and add the key content to your GitLab Profile User Settings -> SSH keys)

Local Git setup:

git config --global user.name "Surname Name" # use your name instead
git config --global user.email name.provider.com # use your email instead

Download the Garz & Fricke yocto

The steps are to create a local build dir and use repo to download all needed files. After that the build directory gets setup for one specific machine (imx6guf, imx6ullguf or imx8mguf) and distribution (guf-wayland)

Download source code

mkdir -p ~/projects/yocto-dunfell
cd ~/projects/yocto-dunfell
repo init -u ssh://git@gitlab.com/garz-fricke/yocto/manifest.git -b dunfell
repo sync

The repo tool stores its meta data in a hidden subdirectory called .repo. The manifest file is stored at .repo/manifests/default.xml and is used for the sync command which actually downloads the sources.

The selected branch is dunfell.

After the download the resulting directory structure should look like this:

yocto-dunfell$ tree -L 2 -a
.
├── .repo
│   ├── manifests
│   ├── manifests.git
│   ├── manifest.xml
│   ├── project.list
│   ├── project-objects
│   ├── projects
│   ├── repo
│   └── .repo_fetchtimes.json
├── setup-environment -> sources/meta-guf-distro/scripts/setup-environment
└── sources
    ├── meta-freescale
    ├── meta-freescale-distro
    ├── meta-guf-distro
    ├── meta-guf-machine
    ├── meta-openembedded
    ├── meta-qt5
    └── poky

Build

To get the build environment ready run

for Garz & Fricke i.MX6Q/DL platfroms:

MACHINE=imx6guf DISTRO=guf-wayland source ./setup-environment build

for Garz & Fricke i.MX6ULL platfroms:

MACHINE=imx6ullguf DISTRO=guf-wayland source ./setup-environment build

for Garz & Fricke i.MX8M platfroms (Tanaro):

MACHINE=imx8mguf DISTRO=guf-wayland source ./setup-environment build

Build the default Garz & Fricke image

bitbake guf-image

Installation

imx6 based machines

TODO

imx8 based machines (Tanaro)

See release page: https://gitlab.com/garz-fricke/yocto/layers/meta-guf-distro/-/releases/0.1