Building Images¶
Setup Build Directory¶
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.
DISTRO
configurations:
|
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 |
karo-x11 |
Ka-Ro Linux Distro with X11 support |
Possible
MACHINE
configurations:
Renesas
RZ/G2L Processors |
---|
|
qsrz-g2l0 |
txrz-g2l0 |
qsrz-g2l1 |
txrz-g2l1 |
txrz-g2l2 |
STM
STM32MP1 Processors |
---|
|
qsmp-1351 |
qsmp-1570 |
qsmp-1530 |
qsmp-1510 |
txmp-1570 |
txmp-1571 |
NXP
Note
i.MX6 machines are no longer supported in mickledore release.
i.MX6UL(L) single core Cortex A7 |
i.MX6S single core Cortex A9 |
i.MX6DL dual core Cortex A9 |
i.MX6Q(P) quad core Cortex A9 |
---|---|---|---|
TXUL |
TX6S |
TX6U |
TX6Q |
|
|
|
|
txul-5010 |
tx6s-8034 |
tx6u-8030 |
tx6q-1030 |
txul-5011 |
tx6s-8035 |
tx6u-8033 |
tx6q-1036 |
txul-8013 |
tx6s-8134 |
tx6u-8130 |
tx6q-1130 |
tx6s-8135 |
tx6u-8133 |
tx6q-8037 |
|
tx6q-8137 |
Use this command to setup your build directory (specify the distro, machine, and the build directory):
General Example:
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.
Specific Example (e.g. QSMP-1570):
DISTRO=karo-minimal MACHINE=qsmp-1570 source karo-setup-release.sh -b build-qsmp-1570-karo-minimal
Returning to existing build:
You can return to an already setup build directory by running:
source setup-environment <build-dir>
local.conf¶
To enable different features for your build you can modify the conf/local.conf
file inside your build-directory.
Baseboard (optional)¶
The baseboard variable only affects the bootloader (U-Boot) and it’s environment. Normally there’s no need to set it.
Linux related baseboard configurations are done with Devicetree Overlays.
Machine |
Supported Baseboards |
---|---|
General |
|
QS solder-in |
|
TX plug-in |
|
Additional |
|
TXRZ-G2L2 |
|
QSMP-1570 QSRZ-G2L0 |
|
To set the KARO_BASEBOARD
variable, modify your conf/local.conf
:
KARO_BASEBOARD = "baseboard"
Machine Features¶
Machine Feature |
Description |
Default? |
---|---|---|
extmod |
Disables |
No |
lcd |
LCD support |
Automatically selected via $MACHINE if supported |
lvds |
LVDS display support |
Automatically selected via $MACHINE if supported |
nand |
NAND storage support |
Automatically selected via $MACHINE if supported |
sata |
SATA interface support |
Automatically selected via $MACHINE if supported |
dsi83 |
SN65DSI83 mipi-lvds bridge support |
Automatically selected via $MACHINE if supported |
To expand the MACHINE_FEATURES
variable to your needs, modify your conf/local.conf
:
MACHINE_FEATURES:append = " item1 item2 ..."
Distro Features¶
Machine Feature |
Description |
Default? |
---|---|---|
bluetooth |
Bluetooth support |
No |
ipv6 |
IPV6 support |
No |
systemd |
Changes init-system to systemd, e.g. neccessary when using Debian |
No |
wifi |
WiFi support |
No |
To expand the DISTRO_FEATURES
variable to your needs, modify your conf/local.conf
:
DISTRO_FEATURES:append = " item1 item2 ..."
Build the Image¶
Note
The setup-environment provided by the BSP already sets up a SSTATE CACHE to speedup the build process.
For more about sstate caches see Enable sstate cache.
Here are (some of) the different images (and packages) that can be build:
Image |
Description |
|
Provided by layer |
---|---|---|---|
Official Ka-Ro BSP images |
|||
karo-image-minimal |
Image with minimal read-only rootfs |
karo-minimal |
meta-karo-distro |
karo-image-weston |
Image with basic weston desktop, graphics accelerated |
karo-wayland |
meta-karo-distro |
karo-image-qt6 |
Image with basic weston desktop and QT5. To use it wit QT-Creator see QT Guide |
karo-wayland |
meta-karo-distro |
karo-image-x11 |
Image with X11 support |
karo-x11 |
meta-karo-distro |
Ka-Ro packages images |
|||
u-boot-karo |
U-Boot flashable binary |
N/A (any) |
meta-karo |
linux-karo |
Linux Kernel and specified .dtb files only |
N/A (any) |
meta-karo |
General Yocto / OE images |
|||
core-image-minimal |
N/A (any) |
Poky |
OpenEmbedded Layer Index for Recipes
Examples
Build the kernel image with the following command inside your <build-dir>
.
bitbake linux-karo
Build the karo-image-minimal with the following command inside your <build-dir>
.
bitbake karo-image-minimal
Getting the SDK¶
To build the SDK of a certain image run inside your <build-dir>
:
bitbake <image> -c populate_sdk
Tip
The SDK can e.g. be used for VS Code Cross-Compilation.
Image Deployment¶
After a build is complete, the created image resides in the tmp/deploy/images/<machine>
sub-directory. An image is, for the most
part, specific to the machine set in the environment setup. Each image build creates different files.
The following files are created for Ka-Ro QSMP/TXMP modules when running karo-image-minimal:
Filename |
Content |
Module Type |
---|---|---|
flashlayout_*.tsv |
FlashLayout File for STM32CubeProgrammer |
any |
uImage-<version>-<machine> |
Kernel uImage |
any |
modules-<machine>.tgz |
Kernel modules |
any |
<image>-<machine>.tar.{bz2|gz} |
RFS (bzip2/gzip) tar |
any |
<image>-<machine>.ext4 |
RFS ext4 filesystem image |
eMMC |
<image>-<machine>.ubi |
NAND |
|
<image>-<machine>.ubifs |
NAND |
|
*.dtb |
Device Tree Blob |
any |
*.dtbo |
Device Tree Overlay Blob |
any |
<image>/ |
FlashImage standalone folder |
any |
<image>/uuu.auto |
UUU FlashImage script |
any |
QSRZ/TXRZ¶
Tip
To continue with these images use Flashing RZ/G2L Boards or TFTP boot.
QSMP/TXMP¶
Tip
To continue with these images use STM32CubeProgrammer or TFTP boot.
Tip
See what you can do with Yocto built images at Mainline BSP. If you compiled karo-image-qt6
check out QT Guide.
TX6/TXUL¶
Tip
To continue with these images use Mfgtool or TFTP boot.
UUU is currently not supported for TX6/TXUL!
Tip
See what you can do with Yocto built Images at Mainline BSP. If you compiled karo-image-qt5
check out QT Guide.