The error indicates that the tdx-tezi-data-partition class is not available in your current BSP layer setup. This class is part of the meta-toradex-security layer, not the standard BSP layers.
Correct Configuration Setup
1. Remove Problematic Configuration from local.conf
Remove these lines from your local.conf file:
# Remove these lines - they require meta-toradex-security layer
INHERIT += "tdx-tezi-data-partition"
TDX_TEZI_DATA_PARTITION_TYPE = "ext4"
TDX_TEZI_DATA_PARTITION_LABEL = "data"
2. Fix Your bbappend File Path
Update your tdx-reference-multimedia-image.bbappend file path in the TEZI_IMAGE_JSON line:
# Change this line:
TEZI_IMAGE_JSON:${IMAGE_BASENAME} = "${THISDIR}/images/files/lokbest-tezi-image.json"
# To this:
TEZI_IMAGE_JSON = "${THISDIR}/files/lokbest-tezi-image.json"
3. Complete bbappend File Configuration
Your corrected tdx-reference-multimedia-image.bbappend should be:
# Add custom applications
IMAGE_INSTALL:append = " display-qr-launch"
# Remove default Wayland demos
APP_LAUNCH_WAYLAND = ""
IMAGE_INSTALL:remove = " wayland-qtdemo-launch-cinematicexperience"
IMAGE_INSTALL:remove = " wayland-qtdemo-launch-analogclock"
IMAGE_INSTALL:remove = " wayland-qtdemo-launch-qtsmarthome"
IMAGE_INSTALL:remove = " wayland-terminal-launch"
# Enable TEZI image format
IMAGE_FSTYPES += "teziimg"
# Use custom TEZI JSON configuration
TEZI_IMAGE_JSON = "${THISDIR}/files/lokbest-tezi-image.json"
# Keep default bootfs and rootfs for your A/B layout
TEZI_DEFAULT_BOOTFS = "Reference-Multimedia-Image-${MACHINE}.rootfs.bootfs.tar.xz"
TEZI_DEFAULT_ROOTFS = "Reference-Multimedia-Image-${MACHINE}.rootfs.tar.xz"
4. Updated image.json Configuration
Create your lokbest-tezi-image.json file with the correct structure(1):
{
"config_format": "4",
"autoinstall": false,
"name": "Lokbest Custom Partition Layout",
"description": "Custom multimedia image with A/B boot partitions",
"version": "1.0.0",
"supported_product_ids": [
"0070"
],
"blockdevs": [
{
"name": "emmc",
"partitions": [
{
"partition_size_nominal": 64,
"want_maximised": false,
"content": {
"label": "boot_A",
"filesystem_type": "fat",
"mkfs_options": "",
"filename": "Reference-Multimedia-Image-verdin-imx8mp.rootfs.bootfs.tar.xz",
"uncompressed_size": 8.671875
}
},
{
"partition_size_nominal": 64,
"want_maximised": false,
"content": {
"label": "boot_B",
"filesystem_type": "fat",
"mkfs_options": ""
}
},
{
"partition_size_nominal": 2048,
"want_maximised": false,
"content": {
"label": "rootfs_A",
"filesystem_type": "ext4",
"mkfs_options": "-E nodiscard",
"filename": "Reference-Multimedia-Image-verdin-imx8mp.rootfs.tar.xz",
"uncompressed_size": 1272.7109375
}
},
{
"partition_size_nominal": 2048,
"want_maximised": false,
"content": {
"label": "rootfs_B",
"filesystem_type": "ext4",
"mkfs_options": "-E nodiscard"
}
},
{
"partition_size_nominal": 2048,
"want_maximised": false,
"content": {
"label": "factory",
"filesystem_type": "ext4",
"mkfs_options": "-E nodiscard"
}
},
{
"partition_size_nominal": 512,
"want_maximised": false,
"content": {
"label": "recovery",
"filesystem_type": "ext4",
"mkfs_options": "-E nodiscard"
}
},
{
"want_maximised": true,
"content": {
"label": "data",
"filesystem_type": "ext4",
"mkfs_options": "-E nodiscard"
}
}
]
},
{
"name": "emmc-boot0",
"erase": true,
"content": {
"filesystem_type": "raw",
"rawfiles": [
{
"filename": "imx-boot",
"dd_options": "seek=0"
}
]
}
}
]
}
5. Simplified local.conf Configuration
Your local.conf should only contain:
# Machine and distro settings
MACHINE = "verdin-imx8mp"
DISTRO = "tdx-xwayland"
# Your custom applications
IMAGE_INSTALL:append = " test-suite"
IMAGE_INSTALL:append = " lokbest-project"
# Enable TEZI image format
IMAGE_FSTYPES += "teziimg"
# GStreamer preferences (keep your existing ones)
PREFERRED_VERSION_gstreamer1.0-plugins-ugly = "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-ugly-dev = "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-ugly-meta = "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-plugins-ugly-asf = "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-libav = "1.24.0.imx"
PREFERRED_VERSION_gstreamer1.0-libav-dev = "1.24.0.imx"
6. Build Commands
Clean and rebuild with these commands:
# Clean the image completely
$ bitbake -c cleanall tdx-reference-multimedia-image
# Build the image
$ bitbake tdx-reference-multimedia-image
Key Points:
- The
tdx-tezi-data-partitionclass requires themeta-toradex-securitylayer(2), which is not included in your standard BSP build - Use direct TEZI JSON configuration instead of relying on specialized classes(1)
- The partition layout is defined entirely in the
image.jsonfile(1), not through Yocto variables - File paths in bbappend files should use
${THISDIR}/files/format
This configuration will create your custom partition layout without requiring additional security layers.
Best regards, Toradex AI Assistant.
If I answered your question, please tick the “Solution” checkbox.
For follow-up questions to me, please use @ToradexAI in your post.