Skip to content
Snippets Groups Projects
Commit af6ef6f1 authored by Clemens Terasa's avatar Clemens Terasa
Browse files

README: Refactor Readme and add License info

Move build instruction into the manifest.
Add license information to the REAMDE.md.

BCS 746-000657
BCS 746-000659
BCS 746-000780
parent 5ff420af
No related branches found
No related tags found
1 merge request!208README: Refactor Readme and add License info
Pipeline #17979 passed with stage
in 15 seconds
Yocto Dunfell Repository for SECO North Platforms # meta-seconorth-machine
====================================================== See README.md in the ```manifest``` project for project information.
This layer provides support for SECO North platforms to be used with the This layer is intended to hold all recipes needed to build the Board Support Package (BSP) for
Yocto Project. SECO Northern Europe (by Garz & Fricke) boards.
This layer depends on: It does not provide a buildable image. Instead the necessary the Yocto MACHINE abstraction is provided that can be use dto build a custom distribution.
- openembedded: git://git.openembedded.org/meta-openembedded, branch: dunfell However, the primary use-case for this layer is the combination with the ```meta-seconorth-distro``` layer to create a SECO Northern Europe standard image build environment. See the ```manifest``` for details.
- poky: git://git.yoctoproject.org/poky, branch: dunfell
- meta-qt5: git://code.qt.io/yocto/meta-qt5, branch: dunfell
Description ## License
------------------------------------------------------
These repositories contain all the source code and metadata to build images and
packages for SECO North devices based on the NXP i.MX6, i.MX6ULL, i.MX8MM and
i.MX8MP processors.
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 package sources are downloaded during the build.
The SECO North 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 in the
meta-qt5 layer (git://code.qt.io/yocto/meta-qt5).
For the ```imx8m``` platforms the BSP from Freescale
(git://github.com/Freescale/meta-freescale) is included for GPU and VPU drivers
and tools.
For the ```imx6``` based platforms (SAN*) GPU and VPU drivers the etnaviv driver is
used, included in the mainline opensource layers.
The SECO North specific parts come as two layers:
* ```meta-seconorth-machine```
(https://git.seco.com/seco-ne/yocto/layers/meta-seconorth-machine)
This part is intended to contain all recipes needed to build the BSP for
SECO North boards
* ```meta-seconorth-distro```
(https://git.seco.com/seco-ne/yocto/layers/meta-seconorth-distro)
This layer is intended to contain recipes that make up the SECO North
distribution including the base image: seconorth-image.
The SECO North manifest repository
(https://git.seco.com/seco-ne/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 their specific revisions needed
to build the image for SECO North devices, the repo tool itself reads this
manifest and handles the download and directory setup for you.
Getting Started
=====================================================
Preparing the host system
------------------------------------------------------
There are some requirements to the host system.
### Ubuntu 20.04.2
Tested distribution is currently **Ubuntu 20.04.2 LTS**.
ISO-Installation-Image: https://releases.ubuntu.com/20.04/ubuntu-20.04.2.0-desktop-amd64.iso
This should work as virtual machine (VirtualBox, Qemu, etc.) or bare-metal installations.
#### Yocto related base software
Needed tools are listed in the yocto documentation
https://docs.yoctoproject.org/ref-manual/system-requirements.html#required-packages-for-the-build-host:
Execute the following commands to install them:
```sh
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:
```sh
sudo apt install -y quilt curl flex bison libssl-dev
```
#### Development Tools
```sh
sudo apt install git minicom gdb-multiarch crossbuild-essential-armhf \
meld gedit nano cscope quilt qtcreator
```
#### Install the Repo Tool
If available the tool can also be installed from the distributions package
manager. This directly downloads the latest version from Google.
```sh
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):
```sh
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
```sh
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 SECO North Yocto layers
------------------------------------------------------
The steps are to create a local build dir and use repo to download all needed
files. After that, the build directory is set up for one specific machine
(```imx6guf```, ```imx6ullguf```, ```imx8mguf``` or ```imx8mpguf```) and distribution
(```seconorth-wayland```).
### Download Source Code
```sh
mkdir -p ~/projects/yocto-dunfell
cd ~/projects/yocto-dunfell
repo init -u ssh://git@git.seco.com:4444/seco-ne/yocto/manifest.git -b dunfell
repo sync
```
The repo tool stores its metadata 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-seconorth-distro/scripts/setup-environment
└── sources
├── meta-freescale
├── meta-freescale-distro
├── meta-seconorth-distro
├── meta-seconorth-machine
├── meta-openembedded
├── meta-qt5
└── poky
```
### Build
To get the build environment ready run
For SECO North i.MX6Q/DL platforms:
```sh
MACHINE=imx6guf DISTRO=seconorth-wayland source ./setup-environment build
```
For SECO North i.MX6ULL platforms:
```sh
MACHINE=imx6ullguf DISTRO=seconorth-wayland source ./setup-environment build
```
For SECO North i.MX8M platforms (TANARO):
```sh
MACHINE=imx8mguf DISTRO=seconorth-wayland source ./setup-environment build
```
For SECO North i.MX8MP platforms (Trizeps VIII+):
```sh
MACHINE=imx8mpguf DISTRO=seconorth-wayland source ./setup-environment build
```
Build the default SECO North image
```sh
bitbake seconorth-image
```
Installation
---------------------------------------------------
### i.MX6 Based Machines
After the image was built the files are located under
``yocto-dunfell/build/tmp/deploy/images/imx6guf/``. The files needed are
installation file ``fng_install.sh`` and the root file system
``seconorth-image-imx6guf.tar.gz``. The files can be used in a Flash-N-Go System
installation process. See
http://support.garz-fricke.com/products/Santaro/Flash-N-Go/FNGSystem/FNGSystem-15.1-r8673/Flash-N-Go-System-15.1-r8673-Manual.pdf
for more information.
### i.MX8M Based Machines
See release page:
https://git.seco.com/seco-ne/yocto/layers/meta-seconorth-distro/-/releases/0.1
This layer is licensed under the Apache License 2.0. See also ```LICENSE.txt``` inside the root directory.
Recipes with deviating licenses have ```LICENSE.txt``` inside the recipe directories.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment