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