evidence · 5.2 KiB

board-2026-10-16.md

Committed at docs/evidence/hdmi-plug-cma/board-2026-10-16.md. This is what grounds the requirements that cite it.

Open raw source

HDMI plug: CMA for scanout buffers (tasks 1.1 and 2.1)

1.1 Host build

The board boot files were built with nix build "git+file://…?rev=84b8b993#kernelMainlineDrmShellLandscapeHdmiBootFiles" (exit 0). 84b8b993 is the integration branch integ-cma-popup, which contains this change’s dcbbab82 (rebased as this branch’s source commit), the keyboard-popup fix and the vision redesign.

The built kernel /nix/store/b7jgc85iri7i1i77dvr1353yg9whg45m-linux-riscv64-unknown-linux-gnu-7.3.0-rc5 has these lines in its config:

CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=64

The running compositor’s config, /nix/store/gfg4gwkbdslab8x0rkwqsvq5pzfnjw1i-k230-sway.conf, line 36:

output HDMI-A-1 mode 1280x800 transform normal bg #000000 solid_color max_render_time 8

2.1 Board boot

Evidence class: board shell over SSH after a soft systemctl reboot into /nix/store/6mmvyyasczi0xsgw9hx2bhx6vrlycr07-nixos-system-nixos-26.11.20260919.20b1ddd (installed with /boot kernel, initrd and DTB from the same bundle). HDMI was unplugged and the panel was the active output.

$ uptime
 15:41:22  up   0:01,  1 user,  load average: 6.01, 1.76, 0.61
$ dmesg | grep -i cma
[    0.000000] cma: Reserved 64 MiB at 0x000000003a000000
[    0.018038] Memory: 845372K/1048576K available (16490K kernel code, 5952K rwdata, 14336K rodata, 3029K init, 843K bss, 128688K reserved, 65536K cma-reserved)
$ grep -i cma /proc/meminfo
CmaTotal:          65536 kB
CmaFree:           63016 kB

At about one minute of uptime, 2.5 MiB of the pool was already in use, which matches the panel’s scanout buffers. The panel’s buffers now come from CMA rather than the buddy allocator.

2.2 Plug after hours of uptime (2026-10-17 00:21Z)

The board had been up 13279 s (3 h 41 min) since the 2.1 reboot. In that time there were several live deploys (switch-to-configuration test, each restarting the shell) and repeated Vision and theme changes; the journal held 174 theme-helper lines. Just before the plug, CmaFree read 1424 kB. That low figure means the kernel had lent the pool to movable pages, not that the pool was used up. At the plug it read 252 kB.

The operator plugged in the HP 27wm at 19:21:03 local (00:21:03Z).

1.2 The black background (2026-10-17)

The wallpaper was missing because the sway config line output HDMI-A-1 … bg #000000 solid_color runs a swaybg -o HDMI-A-1 -c #000000. Its background-layer surface stacked over the shell’s own wallpaper surface after the hotplug. Killing that swaybg (pid 7628) showed the wallpaper at once (board-hdmi-swaybg-stopped.png).

The fix drops bg from that line. The built config /nix/store/x9j62ghnbmsv7z2aj9dwin2i6x0lav1d-k230-sway.conf line 41 reads output HDMI-A-1 mode 1280x800 transform normal max_render_time 8. It was deployed live as /nix/store/8c75n3nxwppr8i658ing1yi4kcqpca1y-nixos-system-…, and no swaybg runs afterwards.

The operator then unplugged and replugged twice.

First replug (19:54:37–19:54:42). The board side was complete by 19:54:44.9 (lt9611 video check). The operator reported the monitor black. The journal then shows two power-key presses: 19:55:06 (output * power off) and 19:55:11 (output * power on). The picture came back after them. The operator later said they had not touched the power button “the second time”. It is unclear whether these presses were the operator’s.

Second replug (20:30:53 out, 20:30:57.6 in).

Limits