Bitbake Setup¶
We provide a script, karo-setup-release.sh
, that simplifies the setup for our machines. To use the script, the name
of the specific machine to be built for needs to be specified as well as the desired distro. The script sets up a
directory and the configuration files for the specified machine and distro. It also adds our layers to the bblayers.conf
file.
There are different configurations you can choose from.
- NXP DISTRO configurations
DISTRO= |
Description |
---|---|
fsl-imx-wayland | Wayland weston graphics |
fsl-imx-xwayland | Wayland graphics and X11. X11 applications using EGL are not supported |
fsl-imx-fb | Frame Buffer graphics - no X11 or Wayland. Frame Buffer is not supported on i.MX 8 |
- Ka-Ro DISTRO configurations
DISTRO= |
Description |
---|---|
karo-minimal | Ka-Ro Linux Distro with minimal read-only rootfs |
karo-wayland | Ka-Ro Linux Distro with wayland backend |
karo-xwayland | Ka-Ro Linux Distro with xwayland backend |
- A list of supported MACHINE configurations
MACHINE= |
Description | Supported Baseboards | Display Support | Camera Support |
---|---|---|---|---|
qs8m-mq00 | QS8M-MQ00 i.MX8M Mini Solder-in Module | QSBASE 2 | Raspi Display, 10 inch display** | Raspi Camera (Sony IMX 219) |
qs8m-nd00 | QS8M-MQ00 i.MX8M Nano Solder-in Module | QSBASE 2 | Raspi Display, 10 inch display** | Raspi Camera (Sony IMX 219)* |
qsxm-mm60 | QSXM-MM60 i.MX8M Mini Solder-in Module | QSBASE 3 | Raspi Display, 10 inch display** | |
qsxp-ml81 | QSXP-ML81 i.MX8M Plus Solder-in Module | QSBASE 3 | Raspi Display, 10 inch display** | Basler daA3840-30mc |
tx8m-1610 | TX8M-1610 i.MX8M Mini CoM | MIPI-MB, MB7 | 10 inch display | |
tx8m-1620 | TX8M-1620 i.MX8M Mini CoM | LVDS-MB, MB7 | 10 inch display | |
tx8m-nd00 | TX8M-ND00 i.MX8M Nano CoM | MIPI-MB, MB7 | 10 inch display | |
** = Additional Hardware Required |
Tip
Before setting up your build-directory, read to the Starting Build section to see which distro you might need.
Use this command to setup your build directory (specify the distro you want to use, the machine, and the build directory):
DISTRO=<distro> MACHINE=<machine> source karo-setup-release.sh -b <build-dir>
When the script has run, your current directory changes to the <build-dir>
you chose before.
Example:
DISTRO=karo-minimal MACHINE=tx8m-1610 source karo-setup-release.sh -b build-tx8m-1610
local.conf¶
To enable different features for your build you can modify the conf/local.conf
file inside your build-directory.
WiFi/Bluetooth¶
For Qsbase3 baseboard there is WiFi and BT support with a Laird WiFi Module.
To enable add the following line to your conf/local.conf
.
WiFi Only
DISTRO_FEATURES_append = " wifi"
WiFi and Bluetooth
DISTRO_FEATURES_append = " bluetooth wifi"
Hint
With the Laird WiFi module it is mandatory to have the WiFi firmware loaded to get Bluetooth up and running!
Note
How to use WiFi / BT is documented in WiFi/BT Guide.
Raspi Camera¶
For QS8M on Qsbase2 there is Raspi Camera (Sony IMX 219) support.
To enable add the following line to your conf/local.conf
.
DISTRO_FEATURES_append = " imx219"
Note
How to use Camera is documented in Camera Guide.
Starting Build¶
Note
The setup-environment provided by the Zeus release already sets up a SSTATE CACHE to speedup the build process.
For more about sstate caches see Enable sstate cache 1.
Build the image with the following command inside your <build-dir>
:
bitbake <image>
Here are the different images you can build:
Image | Description | DISTRO= (required) |
Provided by layer |
---|---|---|---|
Official Ka-Ro images | |||
karo-image-minimal | Image with minimal read-only rootfs | karo-minimal | meta-karo-nxp-distro |
karo-image-base | Image with minimal rootfs using udev instead of mdev | karo-minimal | meta-karo-nxp-distro |
karo-image-weston | Image with weston desktop | karo-(x)wayland | meta-karo-nxp-distro |
karo-image-qt5 | QT5 Image on weston desktop. To use it wit QT-Creator see Toolchain with QT Creator |
karo-(x)wayland | meta-karo-nxp-distro |
karo-image-basler | Image with Basler Camera support on weston desktop. For Details follow Basler Camera section. |
karo-xwayland | meta-karo-nxp-distro |
Official NXP images | |||
imx-boot | U-Boot flashable binaries | N/A (any) | meta-karo-nxp |
linux-imx | Linux Kernel, specified .dtb files, Kernel modules | N/A (any) | meta-karo-nxp |
fsl-image-validation-imx | Builds an i.MX image with a GUI without any Qt content | fsl-imx-(x)wayland | meta-fsl-bsp-release |
fsl-image-qt5-validation-imx | Builds an opensource Qt 5 image. These images are only supported for i.MX SoC with hardware graphics | fsl-imx-(x)wayland | meta-fsl-bsp-release |
fsl-image-multimedia | Fsl multimedia image | fsl-imx-(x)wayland | meta-fsl-bsp-release |
imx-image-full | Full i.MX image with machine learning, camera and QT support | fsl-imx-(x)wayland | meta-imx |
General Yocto / OE images | |||
core-image-minimal | See https://layers.openembedded.org/layerindex/recipe/579/ | N/A (any) | Poky |
core-image-base | See https://layers.openembedded.org/layerindex/recipe/584/ | N/A (any) | Poky |
core-image-sato | See https://layers.openembedded.org/layerindex/recipe/658/ | N/A (any) | Poky |
Getting the SDK¶
To build the SDK of a certain image run inside your <build-dir>
:
bitbake <image> -c populate_sdk
Image Deployment¶
After a build is complete, the created image resides in the tmp/deploy/images
sub-directory. An image is, for the most part, specific to the machine set in the environment setup. Each image build usually creates U-Boot, kernel, and an images based on the IMAGE_FSTYPES
defined in the machine configuration file.
Usually created files are:
Filename | Content |
---|---|
imx-boot-<machine>.bin-<type>-flash_tx8m | U-Boot flashable binaries |
Image | Kernel image |
modules-<machine>.tgz | Kernel modules |
<image>-<machine>.ext4 | .ext4 RootFileSystem |
*.dtb | Devicetree blob(s) |
Tip
To continue programming your board with these images have a look at UUU - Universal Update Utility.
Tip
See what you can do with Yocto Zeus built Images at NXP Zeus BSP.
If you compiled karo-image-qt5
check out Toolchain with QT Creator.