Hello,
We are trying to create a multi-container application using torizon-os and .NET. We have 3 parts to this application, and one of them is an Avalonia Framebuffer GUI container.
Up until recently we have had no issues with this set up, the framebuffer works perfectly through a HDMI cord. We use the iMX8MP and test on both the verdin dev board and a mallow board. Mallow boards for local testing and then the verdin board is running on an actual unit.
Recently the Verdin Dev Board device has stopped working with Avalonia framebuffer. The container crashes with code 133, and leaves this exception and stack trace in the logs:
[13:29:17 ERR] Framebuffer initialization failed: Operation is not supported on this platform.
[13:29:17 ERR] Stack trace: at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
at Avalonia.Controls.DesktopApplicationExtensions.Run(Application app, CancellationToken token)
at LinuxFramebufferPlatformExtensions.StartLinuxDirect(AppBuilder builder, String args, IOutputBackend outputBackend, IInputBackend inputBackend)
at LinuxFramebufferPlatformExtensions.StartLinuxFbDev(AppBuilder builder, String args, String fbdev, Double scaling, IInputBackend inputBackend)
at smartui.Program.Main(String args) in /home/torizon/app/Program.cs:line 106
[13:29:17 ERR] Unhandled exception: System.PlatformNotSupportedException: Operation is not supported on this platform.
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
at Avalonia.Controls.DesktopApplicationExtensions.Run(Application app, CancellationToken token)
at LinuxFramebufferPlatformExtensions.StartLinuxDirect(AppBuilder builder, String args, IOutputBackend outputBackend, IInputBackend inputBackend)
at LinuxFramebufferPlatformExtensions.StartLinuxFbDev(AppBuilder builder, String args, String fbdev, Double scaling, IInputBackend inputBackend)
at smartui.Program.Main(String args) in /home/torizon/app/Program.cs:line 106
System.PlatformNotSupportedException: Operation is not supported on this platform.
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
at Avalonia.Controls.DesktopApplicationExtensions.Run(Application app, CancellationToken token)
at LinuxFramebufferPlatformExtensions.StartLinuxDirect(AppBuilder builder, String args, IOutputBackend outputBackend, IInputBackend inputBackend)
at LinuxFramebufferPlatformExtensions.StartLinuxFbDev(AppBuilder builder, String args, String fbdev, Double scaling, IInputBackend inputBackend)
at smartui.Program.Main(String args) in /home/torizon/app/Program.cs:line 106
[13:29:17 ERR] Stack Trace: at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
at Avalonia.Controls.DesktopApplicationExtensions.Run(Application app, CancellationToken token)
at LinuxFramebufferPlatformExtensions.StartLinuxDirect(AppBuilder builder, String args, IOutputBackend outputBackend, IInputBackend inputBackend)
at LinuxFramebufferPlatformExtensions.StartLinuxFbDev(AppBuilder builder, String args, String fbdev, Double scaling, IInputBackend inputBackend)
at smartui.Program.Main(String args) in /home/torizon/app/Program.cs:line 106
Unhandled exception. System.PlatformNotSupportedException: Operation is not supported on this platform.
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
at Avalonia.Controls.DesktopApplicationExtensions.Run(Application app, CancellationToken token)
at LinuxFramebufferPlatformExtensions.StartLinuxDirect(AppBuilder builder, String args, IOutputBackend outputBackend, IInputBackend inputBackend)
at LinuxFramebufferPlatformExtensions.StartLinuxFbDev(AppBuilder builder, String args, String fbdev, Double scaling, IInputBackend inputBackend)
at smartui.Program.Main(String args) in /home/torizon/app/Program.cs:line 106
We have not had this error before, the UI was working perfectly fine. What caused the change is updating to a new version of our program via an Over the Air update through torizon cloud. The version we pushed was not correct so we pushed another new version and since then it started failing with this error.
Some important info:
The screen appears to be working, our splashscreen image included in Torizon Core Builder shows up properly on startup and shutdown.
The latest Torizon OS + Container bundle USB we have works on our mallow boards, it is only the verdin dev board that is failing. A fresh OS install from the same USB with 0 changes between works on the mallow but not the verdin board.
The error is “operation is not supported on this platform.” The fb0 file is present in the boards host file system as well as inside the docker container.
Steps we have taken to debug:
We installed a new fresh iMX8MP into the verdin dev board, and fresh installed our OS onto it. It still fails to work with framebuffer.
We tried using Avalonia DRM instead of FB and got it working on our test mallow boards. We pushed that working version to the broken verdin board and Avalonia still failed to initialize using DRM.
We tried rolling back the OS we installed on it to the version we had previously that was working, it also had the same framebuffer error.
We saw that the device tree used in our TCB project was:
imx8mp-verdin-wifi-mallow.dts
so we switched it to:
imx8mp-verdin-wifi-dev.dts
This didnt change anything, and it still works after this on the mallow and still is broken on the verdin.
At this point we can’t think of any other things we could look into to fix. We don’t believe its our code because it works on the mallows, and it used to work on the verdin. We don’t think its a hardware issue with the SOM because we replaced it. It seems it could only be a hardware issue with the board unless we are missing something.
Here is the tdx-info output:
Software summary
Bootloader: U-Boot
Kernel version: 6.6.94-7.3.0-g5a62539de8f9 #1-Torizon SMP PREEMPT Wed Jun 25 09:14:55 UTC 2025
Kernel command line: root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.1/torizon/d8c21aa760fd7985364658bad9cbc0c9a0d8ac56fbe068f0688ba6f42d512f1a/0 video=HDMI-A-1:1024x600
Distro name: NAME=“Torizon OS”
Distro version: VERSION_ID=7.3.0-build.18
Distro variant: VARIANT=“Docker”
Hostname: smartcontroller-15677728
Hardware info
HW model: Toradex Verdin iMX8M Plus WB on Verdin Development Board
Toradex version: 0058 V1.1B
Serial number: 15677728
Processor arch: aarch64