Hi @ToradexAI and Toradex Team,
I am working with Verdin iMX8MP using TDX Wayland with XWayland (Scarthgap, 7.5.0-devel) and I am trying to disable kernel console logs permanently at OS flash / first boot time using Yocto, not by running commands manually after boot.
Problem Statement
- Disabling kernel console logs works correctly when done manually on the device using
fw_setenv - None of the Yocto-based approaches (local.conf, U-Boot bbappend, kernel bbappend) are reflected in
/proc/cmdlineafter flashing the image - The device always boots with the following kernel arguments:
console=tty1 console=ttymxc2,115200
What Works (Manual on Device)
The following commands successfully disable kernel console output after reboot:
fw_setenv console
fw_setenv stdout
fw_setenv stdin
fw_setenv stderr
fw_setenv defargs ""
fw_setenv tdxargs "quiet loglevel=0 logo.nologo vt.global_cursor_default=0 vt.default_redraw=0"
fw_setenv bootargs '${defargs} ${tdxargs}'
reboot
Result:
cat /proc/cmdline
root=PARTUUID=... ro rootwait quiet loglevel=0 logo.nologo vt.global_cursor_default=0 vt.default_redraw=0
What Does NOT Work (Yocto Build Time)
1. local.conf
UBOOT_ENV = ""
UBOOT_ENV_FORCE = "1"
TDX_KERNEL_ARGS:remove = "console=tty1"
TDX_KERNEL_ARGS:remove = "console=ttymxc2,115200"
TDX_KERNEL_ARGS:append = " quiet loglevel=0 logo.nologo vt.global_cursor_default=0"
No effect on /proc/cmdline.
2. U-Boot bbappend (custom meta layer)
silent.env.txt
bootdelay=0
console=
stdin=
stdout=
stderr=
defargs=
tdxargs=quiet loglevel=0 logo.nologo vt.global_cursor_default=0 vt.default_redraw=0
u-boot-toradex_2024.07.bbappend
SRC_URI += "file://silent.env.txt"
UBOOT_ENV = "silent.env"
UBOOT_ENV_FORCE = "1"
The environment files are generated, but U-Boot still injects console arguments at boot.
3. Kernel bbappend
APPENDARGS += " quiet loglevel=0 logo.nologo vt.global_cursor_default=0 vt.default_redraw=0"
Kernel arguments are ignored because U-Boot rebuilds bootargs internally.
Observations
- U-Boot dynamically rebuilds
bootargsusing internal logic (defargs,setupargs,rootfsargs) - Manual
fw_setenvmodifies the persistent U-Boot environment, which Yocto build-time changes do not override - There is no extlinux.conf or GRUB; the boot flow is fully Toradex DistroBoot + boot.scr
Questions
- What is the Toradex-supported Yocto method to:
- remove
console=tty* - inject silent boot arguments
2.at first boot (image flash), without using manual fw_setenv?*
- Which variable is the correct one to override at build time:
defargstdxargsAPPENDvsAPPENDARGS
- Is it expected behavior that UBOOT_ENV_FORCE is ignored when a saved U-Boot environment already exists on the device?
- Is there an official Toradex example or reference for a silent or kiosk-style boot on Verdin iMX8MP?
Goal
Every flashed device should boot cleanly and silently on the very first boot, producing the same result as the manual fw_setenv sequence, without any post-flash reboot or manual intervention.
At this point, I have tried multiple recipes and layers, but I am clearly missing where and how Toradex expects kernel arguments to be overridden in Yocto so that they are respected by the U-Boot boot flow.
Any guidance on the correct layer, variable, or supported mechanism.