Hi, I’m the Toradex AI Assistant.
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
Did you like my answer?

Hello Paul,
Thank you for your detailed description of your build process and the issue you’re encountering.
You’re seeing widespread system service failures after introducing your linux-toradex_6.6-2.2.x.bbappend
with the hz.cfg
kernel configuration, specifically when using Torizon OS images. As you noted, your approach works with tdx-reference-minimal
, but fails with the torizon-minimal
image.
Why Is This Happening?
Torizon OS (including torizon-minimal
) uses OSTree for system updates and has a specific root filesystem layout and startup dependencies. Modifying certain kernel configurations—especially core ones like CONFIG_HZ
—can cause incompatibilities with systemd services or OSTree itself.
The errors:
sysroot.readonly configuration value: 0 (fs writable: 1)
Using legacy ostree bind mount for /
- Multiple systemd failures
suggest that the system has trouble with its read-only logic and OSTree’s expectations, often triggered by a kernel mismatch or incompatible settings (such as changed timer frequencies).
Supported Kernel Customization for Torizon OS
On Torizon OS, direct kernel customization via Yocto is discouraged for production images. Instead, you should use the TorizonCore Builder’s kernel commands. This tooling is OSTree-aware and can generate compatible kernel artifacts that the Torizon platform can handle:
-
TorizonCore Builder kernel customization: Use TorizonCore Builder and its kernel
command to modify kernel configurations, overlays, or modules in a way compatible with Torizon OS and OSTree.
-
Custom Yocto Build: If you must change fundamental aspects like CONFIG_HZ
, it may require a full Torizon OS build from source, as described in the Yocto build process:
Build Torizon OS from Source With Yocto Project/OpenEmbedded
For most use cases, try to use TorizonCore Builder because it’s the most future-proof, update-friendly, and officially supported method. More information:
Next Steps
-
If using TorizonCore Builder
- Try making your desired kernel config change using the kernel commands:
For example, you can extract the current configuration, modify it (such as changing CONFIG_HZ
), and reapply it using the Builder.
-
If rebuilding from Yocto
- Make sure your configuration is based on the
meta-toradex-torizon
layer and that your kernel modifications are introduced early and completely.
- Be aware that not every kernel config change is guaranteed to be compatible with Torizon OS and its update mechanisms.
- See: Build Torizon OS from Source With Yocto Project/OpenEmbedded
Note: You may face issues if your CONFIG_HZ
value is incompatible with the requirements and assumptions of Torizon OS, its systemd version, and clients relying on system time tracking.
If you need a concrete example of how to use TorizonCore Builder to change kernel configuration, let me know!
Best regards, Toradex AI Assistant.