11#! /usr/bin/env bash
22# Two-pane i.MX95 demo. Runs ON THE BOARD as root.
33#
4- # left - wolfCrypt PQC benchmarks in a container on the Cortex-A55 cluster
4+ # left - wolfBoot's own ML-DSA-87 verified boot of Linux, replaced by the
5+ # wolfCrypt PQC benchmarks once the container has results
56# right - wolfBoot ML-DSA-87 verified boot of the Cortex-M7
67#
78# Everything is local to the board, so once this is running nothing depends on
89# a host being connected.
910#
1011# sudo bash demo-run.sh # render on this terminal
11- # sudo bash demo-run.sh /dev/tty1 # render on the HDMI console
12+ # sudo bash demo-run.sh /dev/tty1 # render on the DisplayPort panel
1213#
1314# The M7 can only be started ONCE per Linux boot, so re-running the demo needs a
1415# full board power cycle. That is the "reboot beat" - and it has to come from
@@ -31,9 +32,23 @@ bash "$DEMO/m7-start.sh" || echo " (M7 already running - power cycle to replay
3132
3233echo " == rendering =="
3334if [ -n " $TARGET " ]; then
34- # A getty owns tty1; stop it first or the two fight over the console.
35+ # Torizon's kernel has no fbdev emulation, so text written to a VT reaches
36+ # no display: the renderer has to own the DisplayPort through KMS. Take the
37+ # screen away from everything else that wants it first - the getty on the
38+ # console, the framebuffer console redrawing over the KMS output, and
39+ # Torizon's pairing overlay - then render as the sole DRM master.
3540 systemctl stop getty@" $( basename " $TARGET " ) " 2> /dev/null || true
36- exec python3 " $DEMO /twopane.py" > " $TARGET " 2> /dev/null
41+ for v in /sys/class/vtconsole/vtcon* ; do
42+ if grep -qi ' frame buffer' " $v /name" 2> /dev/null; then
43+ echo 0 > " $v /bind" 2> /dev/null || true
44+ fi
45+ done
46+ docker stop torizon-easy-pairing-bash-1 > /dev/null 2>&1 || true
47+ # stderr is left alone on purpose: the DRM path is the most failure-prone
48+ # part of the demo (hotplug, EDID, DRM-master contention), and discarding
49+ # it turns a black screen into a silent restart loop with nothing in the
50+ # journal to explain it.
51+ exec env RENDER=drm python3 " $DEMO /twopane.py"
3752else
3853 exec python3 " $DEMO /twopane.py"
3954fi
0 commit comments