qemu: wake verb, idle stat, and no fbcon cursor in the framebuffer

- tests/qmp.py: `wake` is a judged verb (the reply must be the channel's
  own ack) and `assert_stat` knows `idle` (0 awake, 1 dimmed, 2 asleep).
  warden-ui's sleep.c swallows the touch that wakes a dimmed or blanked
  panel, so every compiled flow script now opens with wake (flare-edge
  #148); tests cover both.
- run.sh: vt.global_cursor_default=0. fbcon shares the virtio-gpu
  framebuffer with warden-ui and its cursor blinked an 8x2 block onto the
  top-left corner in some boots and not others, which made a structural
  pixel reference fail by one cell (#18). The panel has no fbcon on its
  display, so this only makes the rig match it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013aHKWzT5EF86RFKRMtAv9n
This commit is contained in:
Noah
2026-09-07 23:39:07 -06:00
co-authored by Claude Fable 5.1
parent 86a9544dcc
commit eb16a301c0
4 changed files with 36 additions and 10 deletions
+6 -1
View File
@@ -82,7 +82,12 @@ fi
# NOTE: never add `earlyprintk`: the config's DEBUG_UART_PHYS is the RV1106's
# 0xff4c0000, which does not exist on -M virt.
APPEND="console=ttyAMA0 rdinit=/init"
# vt.global_cursor_default=0: the virt kernel binds fbcon to the virtio-gpu
# framebuffer, and its blinking cursor lands on /dev/fb0 under warden-ui (an
# 8x2 block at the top-left, present in one boot and absent in the next). The
# panel has no fbcon on its display, and a pixel reference captured with the
# cursor in frame fails without it (issue #18).
APPEND="console=ttyAMA0 rdinit=/init vt.global_cursor_default=0"
# Port 0 disables a forward. A boot smoke needs no host ports and must not
# fail on a busy default port.
NETDEV="user,id=n0"