How to use the meta-warp7-distro
This article is intented to present and explain how to work with the meta-warp7-distro, which is a new dedicated DISTRO
layer for the WaRP7.
The Layers used in this post are:
The content
The meta-warp7-distro provides several parts such as:
Class
A single class base-image.bbclass
, to handle the image configuration. This includes for example:
- SWUpdate (to manage software updade)
- Alsa (utils and tools)
- dnsmasq and hostapd (needed if you want to turn on the Hotspot)
- bluez5 (To play with Bluetooth protocol)
- mosquitto (libs and associated tools ->
mosquitto_pub
andmosquitto_sub
) - An SSH (dropbear) server and a sftp server (to deploy Qt5 Application via QtCreator)
- There are also packages like
i2c-tools
,spitools
,dbus
orevtest
Images
2 Images are available:
- base-image.bb (inherit of
base-image
class) - qt5-image (with qtbase, qtbase-*, qtserialbus modules)
Kernel
The bbappend file allows to support new features like:
- gpio-exporter driver (see documentation)
- Cortex M4 support (Thanks to Vanessa for this)
The gpio-exporter is used by init script to export all GPIO’s into /dev/mikrobus/gpio_name
, as defined in device-tree source file.
Userspace Application
Furthermore, some application are provided to work with the MikroBUS Socket and click modules (air Quality 2 click, DAC 3 Click, …)
Building the qt image
To build the qt image, follow the next command lines.
First, install the repo
tool (very useful to manage several git
repository):
$: mkdir ~/bin
$: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$: chmod a+x ~/bin/repo
Then, you have to download the BSP (from FSL community)
$: PATH=${PATH}:~/bin
$: mkdir warp7_bsp
$: cd warp7_bsp
$: repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b pyro (replace pyro by master if you want to test master instead)
$: repo sync
Now, it’s time to download the meta-warp7-distro and its dependencies (always on pyro branch)
$: cd sources
$: git clone -b pyro https://github.com/WaRP7/meta-warp7-distro.git
$: git clone -b pyro https://github.com/meta-qt5/meta-qt5.git
$: git clone -b pyro https://github.com/sbabic/meta-swupdate.git
$: cd ../
Once is done, you can create your environment (Machine + Distribution) via the following command line:
$: MACHINE=imx7s-warp DISTRO=warp7 source setup-environment warp7-build/
MACHINE
: imx7s-warp, specify the target.DISTRO
: warp7, to use the specifc configuration available inside the layer.warp7-build/
, where you want to build.
It’s now the moment to prepare your build. For this, you must include all layers that you need, either by the conf/bblayers.conf
file or by directly via the bitbake-layers
util:
$: bitbake-layers add-layer ../sources/meta-qt5/
$: bitbake-layers add-layer ../sources/meta-warp7-distro/
$: bitbake-layers add-layer ../sources/meta-swupdate/
$: bitbake-layers add-layer ../sources/meta-openembedded/meta-python/
$: bitbake-layers add-layer ../sources/meta-openembedded/meta-networking/
Let’s build with bitbake
$: bitbake qt5-image
After a long while, you can find generated files (Bootloader, Root-Filesystem and so on) inside the following directory : warp7-build/tmp/deploy/images/imx7s-warp
You can now flashing your board through the bootloader (u-boot) and the ums
utility to mount the eMMC.
For further information about Flashing procedure, follow this documentation.
Some examples on next articles !