Hi Toradex Team,
I try to create the separate partition as dual bootload and dual rootfs and some partition for also need the factory.
By manually partition separation is done by the cmdline inside the device terminal shell it was working good, but I need to implement in the yocto build to affect .wks in the wic tool at the build instead of the toradex default rootfs and bootfs are creating while I update the json, image tdx append file not affecting at the build tar.
only the toradex default rootfs and bootfs are created at the build succes, Instead of I need my custom partiton need to affect in the emmc at the SD card has the OS booting time and at the build the tar folder needs my custion partition in after the build success.
Device Info:
root@verdin-imx8mp-15722244:~# tdx-info
Software summary
------------------------------------------------------------
Bootloader: U-Boot
Kernel version: 6.6.101-7.5.0-devel #1 SMP PREEMPT Mon Oct 27 12:24:20 UTC 2025
Kernel command line: root=PARTUUID=f7e4900a-02 ro rootwait console=tty1 console=ttymxc2,115200 quiet loglevel=0 vt.global_cursor_default=0 vt.default_redraw=0
Distro name: NAME="TDX Wayland with XWayland"
Distro version: VERSION_ID=7.5.0-devel-20251114145026-build.0
Distro variant: -
Hostname: verdin-imx8mp-15722244
------------------------------------------------------------
Hardware info
------------------------------------------------------------
HW model: Toradex Verdin iMX8M Plus WB on Verdin Development Board
Toradex version: 0070 V1.1A
Serial number: 15722244
Processor arch: aarch64
------------------------------------------------------------
Wic and Recipe bbappend Files:
hari@Administrator:~/oe-core/layers/meta-lokbest/wic$ ls
lokbest-partition-image.wks
hari@Administrator:~/oe-core/layers/meta-lokbest/wic$ cat lokbest-partition-image.wks
part /boot --source bootimg-efi --sourceparams "loader=u-boot" --ondisk mmcblk2 --fstype=vfat --label BOOT --size 64M
part / --source rootfs --ondisk mmcblk2 --fstype=ext4 --label rootfs_A --size 2048M
part /rootfsB --source blank --ondisk mmcblk2 --fstype=ext4 --label rootfs_B --size 2048M
part /factory --source blank --ondisk mmcblk2 --fstype=ext4 --label factory --size 2048M
part /recovery --source blank --ondisk mmcblk2 --fstype=ext4 --label recovery --size 512M
part /data --source blank --ondisk mmcblk2 --fstype=ext4 --label data --size 0
bootloader --ptable gpt
hari@Administrator:~/oe-core/layers/meta-lokbest/wic$ cd ../recipes-images/
hari@Administrator:~/oe-core/layers/meta-lokbest/recipes-images$ ls
images
hari@Administrator:~/oe-core/layers/meta-lokbest/recipes-images$ tree .
.
└── images
├── lokbest-tezi-image.json
├── tdx-reference-multimedia-image.bbappend
└── tdx-reference-multimedia-image.bbappend.bkp
1 directory, 3 files
hari@Administrator:~/oe-core/layers/meta-lokbest/recipes-images$ cat images/lokbest-tezi-image.json
{
"config_format": "4",
"autoinstall": false,
"name": "Lokbest Firmware",
"description": "Lokbest Partitioned Firmware with A/B OTA + Factory + Recovery + Data",
"version": "1.0.0",
"release_date": "2026-01-13",
"supported_product_ids": [ "0063" ],
"blockdevs": [
{
"name": "emmc-boot0",
"erase": true,
"content": {
"filesystem_type": "raw",
"rawfiles": [
{ "filename": "imx-boot", "dd_options": "seek=0" }
]
}
},
{
"name": "emmc",
"content": {
"filesystem_type": "raw",
"rawimages": [
{
"filename": "${IMAGE_NAME}.wic.bz2",
"compressed": "bz2",
"dd_options": "of=/dev/mmcblk2 bs=4M"
}
]
}
}
],
"prepare_script": "prepare.sh",
"wrapup_script": "wrapup.sh",
"icon": "toradexlinux.png",
"marketing": "marketing.tar",
"license": "LA_OPT_NXP_SW.html",
"u_boot_env": "u-boot-initial-env-sd"
}
hari@Administrator:~/oe-core/layers/meta-lokbest/recipes-images$ cat images/tdx-reference-multimedia-image.bbappend
# Add our kiosk launcher
IMAGE_INSTALL:append = " display-qr-launch"
# Remove Toradex auto-launch system entirely
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 WIC formats
IMAGE_FSTYPES += " wic wic.bz2 teziimg"
# Override WIC to use Lokbest partition layout
WKS_FILE:${IMAGE_BASENAME} = "lokbest-partition-image.wks"
WKS_FILES:${IMAGE_BASENAME} = "lokbest-partition-image.wks"
WKS_FILES_DIR:${IMAGE_BASENAME} = "${LAYERDIR}/wic"
WKS_FILE_CHECKSUM:${IMAGE_BASENAME} = ""
# Override Tezi JSON to use raw WIC installer
TEZI_IMAGE_JSON:${IMAGE_BASENAME} = "${THISDIR}/images/lokbest-tezi-image.json"
# Turn off default rootfs/bootfs tarballs
TEZI_DEFAULT_BOOTFS = ""
TEZI_DEFAULT_ROOTFS = ""
Tar Build folder created after this recipes update as only default changes not affected in that:
hari@Administrator:~/oe-core/build/deploy/images/verdin-imx8mp$ ls
Image.gz
Image.gz--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.bin
Image.gz-verdin-imx8mp.bin
LA_OPT_NXP_SW.html
Reference-Multimedia-Image-imx-imx-boot-bootpart.wks
Reference-Multimedia-Image-verdin-imx8mp.rootfs.bootfs.tar.xz
Reference-Multimedia-Image-verdin-imx8mp.rootfs.manifest
Reference-Multimedia-Image-verdin-imx8mp.rootfs.spdx.tar.zst
Reference-Multimedia-Image-verdin-imx8mp.rootfs.tar.xz
Reference-Multimedia-Image-verdin-imx8mp.rootfs.testdata.json
Reference-Multimedia-Image-verdin-imx8mp.rootfs.wic
Reference-Multimedia-Image-verdin-imx8mp.rootfs.wic.bmap
Reference-Multimedia-Image-verdin-imx8mp.rootfs.wic.bz2
Reference-Multimedia-Image-verdin-imx8mp.rootfs.wic.gz
Reference-Multimedia-Image.env
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi.tar
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0.tar
Verdin-iMX8MP_Reference-Multimedia-Image.bootfs.tar.xz
Verdin-iMX8MP_Reference-Multimedia-Image.manifest
Verdin-iMX8MP_Reference-Multimedia-Image.spdx.tar.zst
Verdin-iMX8MP_Reference-Multimedia-Image.tar.xz
Verdin-iMX8MP_Reference-Multimedia-Image.testdata.json
Verdin-iMX8MP_Reference-Multimedia-Image.wic
Verdin-iMX8MP_Reference-Multimedia-Image.wic.bmap
Verdin-iMX8MP_Reference-Multimedia-Image.wic.bz2
Verdin-iMX8MP_Reference-Multimedia-Image.wic.gz
addonaa64.efi.stub
bl31-imx8mp.bin
boot.scr-verdin-imx8mp
devicetree
flash.bin
flash.bin-verdin-imx8mp-sd
flash.bin.tagged
grub-efi-bootaa64.efi
image-Reference-Multimedia-Image.json
imx-boot
imx-boot-tools
imx-boot.tagged
imx8mp-verdin-nonwifi-dahlia--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-nonwifi-dahlia-verdin-imx8mp.dtb
imx8mp-verdin-nonwifi-dahlia.dtb
imx8mp-verdin-nonwifi-dev--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-nonwifi-dev-verdin-imx8mp.dtb
imx8mp-verdin-nonwifi-dev.dtb
imx8mp-verdin-nonwifi-ivy--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-nonwifi-ivy-verdin-imx8mp.dtb
imx8mp-verdin-nonwifi-ivy.dtb
imx8mp-verdin-nonwifi-mallow--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-nonwifi-mallow-verdin-imx8mp.dtb
imx8mp-verdin-nonwifi-mallow.dtb
imx8mp-verdin-nonwifi-yavia--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-nonwifi-yavia-verdin-imx8mp.dtb
imx8mp-verdin-nonwifi-yavia.dtb
imx8mp-verdin-wifi-dahlia--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-wifi-dahlia-verdin-imx8mp.dtb
imx8mp-verdin-wifi-dahlia.dtb
imx8mp-verdin-wifi-dev--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-wifi-dev-verdin-imx8mp.dtb
imx8mp-verdin-wifi-dev.dtb
imx8mp-verdin-wifi-ivy--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-wifi-ivy-verdin-imx8mp.dtb
imx8mp-verdin-wifi-ivy.dtb
imx8mp-verdin-wifi-mallow--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-wifi-mallow-verdin-imx8mp.dtb
imx8mp-verdin-wifi-mallow.dtb
imx8mp-verdin-wifi-yavia--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.dtb
imx8mp-verdin-wifi-yavia-verdin-imx8mp.dtb
imx8mp-verdin-wifi-yavia.dtb
kernel-config
kernel-config--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611
linuxaa64.efi.stub
lpddr4_pmu_train_1d_dmem_202006.bin
lpddr4_pmu_train_1d_imem_202006.bin
lpddr4_pmu_train_2d_dmem_202006.bin
lpddr4_pmu_train_2d_imem_202006.bin
marketing.tar
modules--6.6.101+git0+meta_68a4964b43-r0-verdin-imx8mp-20260110104611.tgz
modules-verdin-imx8mp.tgz
overlays
overlays.txt
prepare.sh
signed_dp_imx8m.bin
signed_hdmi_imx8m.bin
systemd-bootaa64.efi
tezi_image
toradexlinux.png
u-boot-initial-env-sd
u-boot-initial-env-verdin-imx8mp-sd
u-boot-initial-env-verdin-imx8mp-sd-2024.07-r0
u-boot-sd-2024.07-r0.bin
u-boot-spl.bin
u-boot-spl.bin-sd
u-boot-spl.bin-sd-2024.07-r0
u-boot-spl.bin-verdin-imx8mp
u-boot-spl.bin-verdin-imx8mp-sd
u-boot-verdin-imx8mp.bin
u-boot-verdin-imx8mp.bin-sd
u-boot.bin
u-boot.bin-sd
wrapup.sh
hari@Administrator:~/oe-core/build/deploy/images/verdin-imx8mp$ tar -xvf Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0.tar -C tezi_image/.
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/toradexlinux.png
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/marketing.tar
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/prepare.sh
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/wrapup.sh
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/LA_OPT_NXP_SW.html
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/image.json
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/Reference-Multimedia-Image-verdin-imx8mp.rootfs.tar.xz
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/Reference-Multimedia-Image-verdin-imx8mp.rootfs.bootfs.tar.xz
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/u-boot-initial-env-sd
Verdin-iMX8MP_Reference-Multimedia-Image-Tezi_7.5.0-devel-20260120100419+build.0/imx-boot
hari@Administrator:~/oe-core/build/deploy/images/verdin-imx8mp$
I need the help and suggestion to build the custom partition through the yocto build and while boot the device it need to create with the custom partition instead of the default toradex rootfs and bootfs.