Unfortunately, the WESTON_DISABLE_ATOMIC=1 workaround is not a complete fix and this intermittent HDMI issue can still occur occasionally (1). Since you’re experiencing this in an automotive environment where reliability is critical, here are additional solutions:
Alternative Weston Configuration
There’s a more robust workaround that involves modifying the Weston container’s entry script. Instead of just disabling atomic mode, you can remove the --current-mode parameter from the Weston startup script (1). This approach is considered technically superior to the atomic disable workaround (1).
Programmatic Black Screen Detection
You can implement automatic detection and recovery using these methods:
1. Monitor DRM Output Status
Check the display connection status programmatically:
find /sys/devices -name "edid"
If no EDID is found, the display is not properly initialized.
2. Monitor Weston Container Health
Set up a monitoring script that checks if Weston is running and responding:
docker logs weston
Look for DRM disconnect/reconnect messages in the logs, which indicate HDMI state changes (4).
3. Framebuffer Content Detection
Monitor the framebuffer device to detect if it’s actually outputting content or remains black.
Automatic Recovery Implementation
Container Restart Strategy
Instead of rebooting the entire system, implement automatic Weston container restart:
docker container run -d --name=weston --net=host \
--cap-add CAP_SYS_TTY_CONFIG \
-v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ \
--device-cgroup-rule="c 4:* rmw" --device-cgroup-rule="c 253:* rmw" \
--device-cgroup-rule="c 13:* rmw" --device-cgroup-rule="c 226:* rmw" \
--device-cgroup-rule="c 10:223 rmw" --device-cgroup-rule="c 199:0 rmw" \
-e WESTON_DISABLE_ATOMIC=1 torizon/weston-imx8:4 \
--developer
Systemd Watchdog Service
Create a systemd service that monitors display output and automatically restarts the graphics stack when a black screen is detected.
Hardware Considerations
Since this is an automotive application, consider that vibrations and power fluctuations can cause false HDMI disconnect/reconnect events (4). The Apalis iMX8 supports DisplayPort as an alternative to HDMI, which might be more stable for automotive environments (5).
Long-term Solution
For production automotive systems, consider:
- Upgrade to Torizon OS 7.x: Newer versions have improved HDMI stability
- Use alternative display interfaces: Consider DSI or parallel RGB if your display supports them
- Hardware-level monitoring: Implement watchdog circuits that can detect display failures
The automatic container restart approach is typically more reliable than full system reboot and much faster for automotive applications where downtime must be minimized.
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.