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.
Ka-Ro 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 |
A list of supported MACHINE configurations
|
Description |
Supported Baseboards |
Display Support |
Camera Support |
---|---|---|---|---|
qs8m-mq00 |
QS8M-MQ00 i.MX8M Mini Solder-in Module |
QSBASE 2, QSBASE4 |
Raspberry Pi Display, 10 inch display**, RGB Displays** |
Raspberry Pi Camera (Sony IMX 219) |
qs8m-nd00 |
QS8M-MQ00 i.MX8M Nano Solder-in Module |
QSBASE 2, QSBASE4 |
Raspberry Pi Display, 10 inch display**, RGB Displays** |
Raspberry Pi Camera (Sony IMX 219)* |
qsxm-mm60 |
QSXM-MM60 i.MX8M Mini Solder-in Module |
QSBASE 3, QSBASE4 |
Raspberry Pi Display, 10 inch display**, RGB Displays** |
Basler daA2500-60mci |
qsxp-ml81 |
QSXP-ML81 i.MX8M Plus Solder-in Module |
QSBASE 3, QSBASE4 |
Raspberry Pi Display, 10 inch display**, RGB Displays** |
Basler daA3840-30mc, Raspberry Pi Camera (Sony IMX 219) |
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, MB7-RGB Display |
|
tx8m-nd00 |
TX8M-ND00 i.MX8M Nano CoM |
MIPI-MB, MB7 |
10 inch display |
|
tx8p-ml81 |
TX8P-ML81 i.MX8M Plus CoM |
LVDS-MB, MB7 |
10 inch display, MB7-RGB Display |
|
tx8p-ml82 |
TX8P-ML82 i.MX8M Plus CoM |
LVDS-MB, MB7 |
10 inch display, MB7-RGB Display |
|
qs93-5210 |
QS93-5210 i.MX93 CoM |
QSBASE93 |
LVDS Displays |
Raspberry Pi Camera (Sony IMX 219) |
tx93-5210 |
TX93-5210 i.MX93 CoM |
LVDS-MB, MB7 |
LVDS Displays |
* = Experimental
** = Additional Hardware Required
Detailed Display Information at Display Guide
Use this command to setup your build directory (specify the distro you want to use, the 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. TX8M-1610):
DISTRO=karo-minimal MACHINE=tx8m-1610 source karo-setup-release.sh -b build-tx8m-1610
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.
Baseboards¶
Machine |
Supported Baseboards |
---|---|
|
|
|
|
|
|
|
|
|
|
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
[1]
WiFi Only
DISTRO_FEATURES:append = " wifi"`
WiFi and Bluetooth
DISTRO_FEATURES:append = " bluetooth wifi"
Hint
For Bluetooth with the Laird WiFi module it is mandatory to have the WiFi firmware loaded!
Note
How to use WiFi / BT is documented in WiFi/BT Guide.
Raspberry Pi Camera¶
For
QS8M on QSBASE2
QSXP on QSBASE4
QS93 on QSBASE93
there is Raspberry Pi Camera (Sony IMX 219) support.
To enable simply build karo-image-weston and enable the according Devicetree Overlays inside U-Boot env.
Note
How to use Camera is documented in Camera Guide.
Basler Camera¶
QSXP on QSBASE3
QSXM on QSBASE3
support a Basler camera.
To build a Yocto Image supporting Basler camera see the Basler Camera section.
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.
Build the image with the following command inside your <build-dir>
:
bitbake <image>
Here are the different images you can build:
Image |
Description |
|
Provided by layer |
---|---|---|---|
Official Ka-Ro images |
|||
karo-image-minimal |
Image with minimal read-only rootfs |
karo-minimal |
meta-karo-distro |
karo-image-weston |
Image with weston desktop |
karo-(x)wayland |
meta-karo-distro |
karo-image-qt6 |
QT6 Image on weston desktop. To use it with QT-Creator see QT Guide. |
karo-(x)wayland |
meta-karo-distro |
karo-image-ml |
Image including and supporting imx Machine-Learning demos. |
karo-(x)wayland |
meta-karo-distro |
karo-image-basler |
Image with Basler Camera support on weston desktop. Also including imx Machine-Learning demos. See Basler Camera and Machine Learning Guide. |
karo-xwayland |
meta-karo-distro |
General Yocto / OE images |
|||
core-image-minimal |
N/A (any) |
Poky |
|
core-image-base |
N/A (any) |
Poky |
|
core-image-sato |
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
Tip
The SDK can e.g. be used for VS Code Cross-Compilation.
Image Deployment¶
After a build is complete, the results reside 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 |
---|---|
u-boot-<machine>.bin-<type> |
U-Boot flashable binaries |
Image |
Kernel image |
modules-<machine>.tgz |
Kernel modules |
<image>-<machine>.ext4 |
.ext4 RootFileSystem |
<image>-<machine>.tar.bz2 |
tar-archived RootFileSystem |
*.dtb |
Devicetree blob(s) |
<image>/ |
FlashImage standalone folder |
<image>/uuu.auto |
UUU FlashImage script |
Tip
To continue programming your board with these images, simply cd
into the above mentioned <image> folder inside deploy folder and run:
uuu -v
For further information about uuu see UUU - Universal Update Utility.