Skip to content
Snippets Groups Projects
user avatar
Norman Stetter authored
* Split defconfig into two differnt defconfigs for the two platforms
* Enable PF1550 PMIC driver and disable PFUZE100 for imx6ullguf

BCS: 746-000033
1656e1da

Yocto BSP layer for Garz & Fricke Platforms

This layer provides support for Garz & Fricke platforms for use with Yocto.

This layer depends on:

URI: git://git.openembedded.org/meta-openembedded, branch: zeus

URI: git://git.yoctoproject.org/poky, branch: zeus

URI: git://github.com/meta-qt5, branch: zeus

Description

This BSP layer is split into two parts.

  • meta-guf-machine

    This part is intended to hold all recipes needed to build the BSP for Garz & Fricke Boards

  • meta-guf-distro

    This part is intended to hold recipes that make up the Garz & Fricke distribution

Preparing the host system

Ubuntu 18.04.1

ISO-Installation-Image: ubuntu-18.04.1-desktop-amd64 Base package configuration: 'Normal' Platform: Virtual Box 6.0.14r133895 Guest Addition installation: https://linuxize.com/post/how-to-install-virtualbox-guest-additions-in-ubuntu/

Yocto related base software

From the documentation (https://www.yoctoproject.org/docs/1.8/yocto-project-qs/yocto-project-qs.html#ubuntu):

sudo apt install -y gawk wget git-core diffstat unzip texinfo gcc-multilib \
    build-essential chrpath socat libsdl1.2-dev xterm

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

recommended tools

sudo apt install -y terminator meld

Development setup

SSH key for GitLab:

ssh-keygen -o -t rsa -b 4096 -C "carsten.behling@gmail.com" # use your email instead
cat ~/.ssh/id_rsa.pub
(copy and add the key content to your GitLab Profile User Settings -> SSH keys)

Local Git setup:

git config --global user.name "Carsten Behling" # use your name instead
git config --global user.email carsten.behling@gmail.com # use your email instead

Usage

Garz & Fricke uses the repo tool to setup all necessary layers to build the BSP.

Get Sources

It can be used like this:

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
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

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

Build the default Garz & Fricke image

bitbake guf-image

Installation

SANTINO:

Copy the files

  • ~/projects/yocto-dunfell/build/tmp/deploy/images/imx6guf/imx6dl-santino.dtb
  • ~/projects/yocto-dunfell/build/tmp/deploy/images/imx6guf/uImage
  • ~/projects/yocto-dunfell/build/tmp/deploy/images/imx6guf/guf-image-imx6guf.tar.gz

to a FAT32 partition on a SD card.

Boot int FlashNGo System by holding the button next to SD card slot pressed during power cycle.

Execute the following commands:

mkdir /tmp/boot && mount /dev/mmcblk0p2 /tmp/boot && rm /tmp/boot/uImage_dtb && cat /mnt/mmc1/uImage /mnt/mmc1/imx6dl-santino.dtb > /tmp/boot/uImage_dtb
mkdir /tmp/root && mount /dev/mmcblk0p3 /tmp/root && rm -Rf /tmp/root/* && tar -xzf /mnt/mmc1/guf-image-imx6guf.tar.gz -C /tmp/root
reboot

NALLINO:*

Copy the files:

Copy the files

  • ~/projects/yocto-dunfell/build/tmp/deploy/images/imx6guf/imx6ull-nallino.dtb
  • ~/projects/yocto-dunfell/build/tmp/deploy/images/imx6guf/boot-imx6ullguf.scr
  • ~/projects/yocto-dunfell/build/tmp/deploy/images/imx6guf/uImage
  • ~/projects/yocto-dunfell/build/tmp/deploy/images/imx6guf/guf-image-imx6guf.tar.gz

to a FAT32 partition on a SD card.

Boot int FlashNGo System by holding the button at the bottom side of the PCB left to the Ethernet connector pressed during power cycle.

Execute the following commands:

mkdir /tmp/boot && mount /dev/mmcblk0p2 /tmp/boot && rm -Rf /tmp/boot/* && cp /mnt/mmc1/zImage-imx6ullguf.bin /tmp/boot/ && cp /mnt/mmc1/imx6ull-nallino.dtb /tmp/boot/zImage--imx6ull-nallino.dtb && cp /mnt/mmc1/boot-imx6ullguf.scr /tmp/boot/boot.scr

#mkdir /tmp/root && mount /dev/mmcblk0p3 /tmp/root && rm -Rf /tmp/root/* && tar -xzf /mnt/mmc1/guf-image-imx6guf.tar.gz -C /tmp/root
mkdir /tmp/root && mount /dev/mmcblk0p3 /tmp/root && rm -Rf /tmp/root/* && tar -xzf /mnt/mmc1/guf-image-minimal-imx6ullguf.tar.gz -C /tmp/root
reboot

Usage

Run Cinematic Experience in fullscreen mode

Boot the target.

Execute the following commands from the serial console:

TODO(cbe): add autostart

systemctl stop weston && killall weston
export XDG_RUNTIME_DIR=/run/user/0
export QT_QPA_FONTDIR=/usr/share/fonts/truetype
weston --tty=2 &
QT_WAYLAND_DISABLE_WINDOWDECORATION=1 /usr/share/cinematicexperience-1.0/Qt5_CinematicExperience  --platform wayland-egl

Run Gstreamer pipeline for Big Bug Bunny video

systemctl stop weston && killall weston
export XDG_RUNTIME_DIR=/run/user/0
weston --tty=2 &
gst-launch-1.0 filesrc location=/usr/share/bbb/trailer_1080p_h264_mp3.avi ! avidemux ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! videoscale ! video/x-raw,width=1920,height=1080 ! waylandsink

Run glmark2 (Note: terrain shader are alwas bad due to limited memory)

systemctl stop weston && killall weston
export XDG_RUNTIME_DIR=/run/user/0
weston --tty=2 &
glmark2-es2-wayland --size 600x480

Run I2C endurance test

/usr/share/test/i2c/i2c_test_santino.sh