docs: record the LattePanda deployment and the traps it turned up
The rack display has been running v2 since today and passed a physical swipe test and a cold boot, so the hardware table now says what is actually in service and what is merely intended: the Wyse 3040 has not been tried yet and should not read as though it has. notes/HARDWARE-NOTES.md gains the two traps that cost the most time during the deployment, both of which will recur: lightdm autologin fires when a seat starts, not after a logout, so `i3-msg exit` does not test the autostart -- it strands a keyboard-less wall display at a greeter that nobody standing at the rack can get past. Only a real reboot tests the boot path. And `ssh host 'sudo ...'` allocates no TTY, so sudo has nowhere to prompt and fails; chaining the rest of the recovery behind `&&` then swallows it silently. Use `ssh -t`, and `;` for steps that must run regardless. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -45,12 +45,12 @@ you left.
|
|||||||
|
|
||||||
## Hardware
|
## Hardware
|
||||||
|
|
||||||
| Part | What was used | Notes |
|
| Part | What was used | Status |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| Display host | LattePanda (Atom x5-Z8350, 1.9 GB) | Debian 11, i3 on X11 |
|
| Display host | LattePanda (Atom x5-Z8350, 1.9 GB), Debian 11, i3 on X11 | in daily use |
|
||||||
| Display host | Dell Wyse 3040 (Atom x5-Z8350, 2 GB) | ~$35 used; 8/16 GB eMMC, DP out |
|
| Display host | Dell Wyse 3040 (Atom x5-Z8350, 2 GB), 8/16 GB eMMC, DP out | not yet tried |
|
||||||
| Panel | GeeekPi 9" 1280x720 3U touchscreen | ILITEK USB touch |
|
| Panel | GeeekPi 9" 1280x720 3U touchscreen, ILITEK USB touch | in daily use |
|
||||||
| Mounting | [`cad/`](cad) — 19" rack adapter | 3D-print or laser-cut aluminium |
|
| Mounting | [`cad/`](cad) — 19" rack adapter | printed and in the rack |
|
||||||
|
|
||||||
Any Linux box with a USB or DSI touchscreen will do. It is deliberately modest
|
Any Linux box with a USB or DSI touchscreen will do. It is deliberately modest
|
||||||
hardware: the whole point is a display that idles at a few watts.
|
hardware: the whole point is a display that idles at a few watts.
|
||||||
|
|||||||
@@ -103,3 +103,19 @@ adapter for the panel; roughly 3-4 W idle, 101x101x28 mm, VESA holes.
|
|||||||
|
|
||||||
The eMMC is why the installer checks free space before starting a build: a Rust
|
The eMMC is why the installer checks free space before starting a build: a Rust
|
||||||
toolchain plus a target directory is around 1.8 GB.
|
toolchain plus a target directory is around 1.8 GB.
|
||||||
|
|
||||||
|
## Never log out of a keyboard-less wall display
|
||||||
|
|
||||||
|
lightdm autologin fires when a **seat starts**, not after a logout. `i3-msg exit`
|
||||||
|
therefore drops the display to the greeter and leaves it there — and the rack
|
||||||
|
panel has no keyboard, so nobody can log back in at the machine. Recovering it
|
||||||
|
needs `sudo systemctl restart lightdm` or a reboot, and the LattePanda has no
|
||||||
|
passwordless sudo.
|
||||||
|
|
||||||
|
So: **`i3-msg exit` does not test the autostart, it only strands the box.** The
|
||||||
|
only honest test of the boot path is an actual reboot.
|
||||||
|
|
||||||
|
Related trap when handing over a root command: `ssh host 'sudo …'` allocates no
|
||||||
|
TTY, so sudo has nowhere to prompt and fails. Use `ssh -t`. Chaining with `&&`
|
||||||
|
then swallows the rest of the line, which is how a recovery command silently did
|
||||||
|
nothing at all. Use `;` for recovery steps that must run regardless.
|
||||||
|
|||||||
+6
-3
@@ -1,8 +1,11 @@
|
|||||||
# socktop-swipe v2 — release plan
|
# socktop-swipe v2 — release plan
|
||||||
|
|
||||||
Status: **implemented**, 2026-09-09. Milestones 1-7 are done on branch `v2-rust`;
|
Status: **implemented and in service**, 2026-09-09. Milestones 1-7 done on branch
|
||||||
milestone 8 (the Wyse 3040 validation) is the remaining acceptance gate. Where the
|
`v2-rust` (PR #1); the LattePanda rack display has been running v2 since, and
|
||||||
built thing differs from this plan, `notes/DESIGN.md` is authoritative.
|
passed a physical swipe test and a cold boot. Milestone 8, the Wyse 3040 install
|
||||||
|
following only the README, is the remaining acceptance gate.
|
||||||
|
|
||||||
|
Where the built thing differs from this plan, `notes/DESIGN.md` is authoritative.
|
||||||
|
|
||||||
v1 is three POSIX shell scripts driving lisgd and tmux. It works and is running on
|
v1 is three POSIX shell scripts driving lisgd and tmux. It works and is running on
|
||||||
the rack display today, but it hard-codes a single linear carousel of socktop hosts,
|
the rack display today, but it hard-codes a single linear carousel of socktop hosts,
|
||||||
|
|||||||
+6
-7
@@ -12,13 +12,12 @@
|
|||||||
Build there: 108 s, peak 1.1 GB of 1.9 GB, 103 MB target dir.
|
Build there: 108 s, peak 1.1 GB of 1.9 GB, 103 MB target dir.
|
||||||
- [ ] Remove the v1 leftovers in `/usr/local/bin` on the LattePanda -- needs root:
|
- [ ] Remove the v1 leftovers in `/usr/local/bin` on the LattePanda -- needs root:
|
||||||
`sudo rm -f /usr/local/bin/socktop-rack /usr/local/bin/socktop-swipe /usr/local/bin/socktop-gestures /usr/local/etc/socktop-swipe.env`
|
`sudo rm -f /usr/local/bin/socktop-rack /usr/local/bin/socktop-swipe /usr/local/bin/socktop-gestures /usr/local/etc/socktop-swipe.env`
|
||||||
- [ ] **Physically swipe-test the LattePanda.** Everything was verified over the
|
- [x] **Physically swipe-tested 2026-09-09** -- and it found a real bug the unit
|
||||||
control socket; the evdev path itself has only unit tests. Nobody has put a
|
tests could not: every swipe classified as up-to-down, because a contact's
|
||||||
finger on the panel against v2 yet.
|
start position was captured from the X event alone and recorded Y as zero.
|
||||||
- [ ] **Cold-boot test the LattePanda.** lightdm autologin fires at seat start, so
|
Fixed, with protocol-B decoding tests. QA passed on the retest.
|
||||||
an `i3-msg exit` drops to the greeter instead of restarting the session --
|
- [x] **Cold boot verified 2026-09-09.** Autologin, i3, and `socktop-swipe run`
|
||||||
it does not exercise the boot path, and on a keyboard-less wall display it
|
all come up unattended.
|
||||||
strands the box. Test with a real reboot, not a logout.
|
|
||||||
- [ ] Add the tested-hardware table to the README once the Wyse is done.
|
- [ ] Add the tested-hardware table to the README once the Wyse is done.
|
||||||
- [ ] Decide on the position indicator (`indicator: true`). Implemented; keep or
|
- [ ] Decide on the position indicator (`indicator: true`). Implemented; keep or
|
||||||
cut based on whether it actually helps on the wall.
|
cut based on whether it actually helps on the wall.
|
||||||
|
|||||||
Reference in New Issue
Block a user