Table of Contents |
---|
Yocto Dunfell
Currently under Test/Development
The Keith & Koep Seco Yocto Dunfell release is derived from the Garz & Fricke GIT-project.
As part of Garz & Fricke Group, we share GIT repositories between Garz & Fricke GmbH and Keith & Koep GmbH Seco with their own branches,
which are synchronized on regular basis.
meta-guf-machine
This layer provides support for Garz & Fricke platforms to be used with Yocto.
This layer depends on:
GIT | Branch | |
---|---|---|
openembedded | git://git.openembedded.org/meta-openembedded | dunfell |
poky | git://git.yoctoproject.org/poky | dunfell |
meta-qt5 | git://code.qt.io/yocto/meta-qt5 | dunfell |
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 following link.
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:http://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:http://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:
meta-guf-machine (https://gitlab.com/garz-fricke/yocto/layers/meta-guf-machine)
This part is intended to hold all recipes needed to build the BSP for Garz & Fricke Boards
meta-guf-distro (https://gitlab.com/garz-fricke/yocto/layers/meta-guf-distro)
This part is intended to hold recipes that make up the Garz & Fricke distribution including the base image: guf-image.
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:
...
Code Block |
---|
sudo apt install -y quilt curl flex bison libssl-dev |
Development tools
Code Block |
---|
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.
Code Block |
---|
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 ):
Code Block |
---|
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
Code Block |
---|
git config --global user.name "Surname Name" # use your name instead git config --global user.email name.provider.com # use your email instead |
Download 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
Code Block |
---|
mkdir -p ~/projects/yocto-dunfell cd ~/projects/yocto-dunfell repo init -u ssh://git@gitlab.keith-koep.com:30001/yocto/manifest.git -b kuk_dunfell repo sync |
...
Code Block |
---|
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 Keith & Koep Seco i.MX 8M platforms ( Trizeps VIII Mini, Myon II, SBCSOM):
...
Code Block |
---|
MACHINE=imx6ullguf DISTRO=guf-wayland source ./setup-environment build |
for Garz & Fricke i.MX 8M platforms (Tanaro):
Code Block |
---|
MACHINE=imx8mguf DISTRO=guf-wayland source ./setup-environment build |
...
Code Block |
---|
bitbake guf-image |