uzbek-plus/logs/b14/B14-UI-RESULT.md

79 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# B14 — Cage + SDL2 modem UI (2026-10-04/05) — **USERSPACE VALIDATED**
Changes only in Alpine on p27 (no kernel/DTB/cache/GPT/firmware change). Running kernel 7.2.7-aurora-b12 (cache B12R).
## 1. SDL2
- Alpine 3.24: native **sdl2 2.32.10-r0** (not sdl2-compat). Compiled video drivers: `x11 wayland KMSDRM offscreen dummy evdev`;
under Cage `SDL_GetCurrentVideoDriver() = wayland` (aurora-ui refuses to run on anything else). No Xwayland binary on the system.
- Pitfalls found: (a) SDL2/Wayland has no shm framebuffer — every window path goes through EGL; (b) without `wayland-libs-egl`
(libwayland-egl.so.1, dlopened) SDL2 **segfaults** in `Wayland_CreateWindow` (SDL_waylandwindow.c:2055, NULL wl_egl_window_create);
(c) Mesa needs its libgallium/LLVM files (restored in B13W). With `LIBGL_ALWAYS_SOFTWARE=1` the renderer is SDL `opengl` on Mesa
**llvmpipe via EGL/wl_shm** (libgallium); the lavapipe Vulkan ICD (`mesa-vulkan-swrast`, installed while debugging) is **not used**
(UI works with `VK_ICD_FILENAMES=/nonexistent`, no lvp mapping) — removal can be tested separately.
- No SDL_ttf: 8x16 cp437 bitmap font extracted from Linux `lib/fonts/font_8x16.c` (GPL-2.0).
## 2–5. Application
`b14/src/aurora-ui.c` (~360 lines C, 75 KB binary, `-Wall -Wextra` clean), built on the board (`apk add build-base sdl2-dev`), installed
`/usr/local/bin/aurora-ui`. Software-drawn 128x128 ARGB → streaming texture, redraw 1/s (+ on events), worker thread for slow sources.
Layout (8 rows x 16 cols, 4 colours + grey):
```
BEELINE LTE operator / RAT (mmcli every 5 s, timeout 3 s, only while ModemManager runs)
▂▄▆█▒ 70% signal quality
10.82.242.155 wwan0 IPv4 (/run/aurora-modem/ipcfg, every 2 s)
WiFi 1 cl AP up + stations (iw info + station dump every 5 s)
↓73B ↑73B throughput (1 s; wwan0 counters are always 0 on bam-dmux → wlan0 LAN counters)
BAT 4.13V HOLD VADC VBAT + supervisor state (B10 /sys/kernel/debug/pm8916_lbc/state, 1 s) — no SOC (no fuel gauge)
PMIC 36°C NAT pm8916-thermal + default route
02:02 ONLINE clock (TZ=MSK-3 from /etc/aurora/aurora-ui.conf) + overall
```
Before START OK the top rows show `MODEM STARTING` + the controller state; FAIL → `MODEM FAIL`. Missing sources render `--`.
Finding: `pm8916-bms-vm` power_supply reports 4.41 V / "Over voltage" while the validated VADC says 4.19 V → the UI uses VADC only.
## 6–7. Launcher + wayvnc
`b14/run/ui-up.sh [--stop-gui]` (refuses if Xorg/Cage/Sway hold the panel; one instance; Pixman/seatd env; waits for first frame),
`ui-stop.sh`, `ui-status.sh` → /usr/local/lib/b14/run. Process lookup via /proc/PID/exe (the OpenRC script has the same comm name).
wayvnc (b13/run/wayvnc-up.sh) on Cage+aurora-ui: same output SPI-1, 172.16.42.1:5900 only (IPv6 listeners 0), TLS+password,
VNC pointer/keys do not disturb the app.
## 8. Test (manual start: X11 stop → Cage → aurora-ui → wayvnc)
- Startup: 0.9–2.2 s to first frame (aurora-ui first frame 1.1–1.5 s after exec).
- Soak 15 min (`soak.log`) + control 5 min (`soak2.log`): aurora-ui RSS 108–114 MB (PSS 95 MB; **private dirty ~34 MB**, ~43 MB clean
mesa/LLVM file pages), Cage 47.6–48.2 MB, both flat; CPU aurora-ui 1.5–1.6 %, Cage 0.16–0.22 %; MemAvailable ~269–271 MB stable.
modem BEARER_CONNECTED + LTE ping ok every minute; phone client: NAT forward counters grew, UI showed `WiFi 1 cl` and live ↓/↑;
charger CHARGING → HOLD shown; PMIC 36–49 °C; NCM ping from 480s 919/920 over the soak; eMMC writes outside p27 = 0.
- Kernel log: **65 `cma: __cma_alloc_frozen: reserved: alloc failed, req-size: 8 pages, ret: -16`** between uptime 3289–4892 s.
Root cause analysis: the 32 MiB CMA area was filled by movable page cache (after the apk/gdb installs: CmaFree 112 kB) and
page migration returned EBUSY; the bitmap had 8000 free pages. Not the UI: 0 failures without UI under LTE load, and after
`drop_caches` (CmaFree 30.6 MB) **0 failures in the 5-min control soak with UI + wayvnc running**. Allocations fell back (no traffic
impact: ping/NAT fine). Follow-up candidate (separate): watch CMA after large apk operations / consider `cma=` or vm tuning.
- Other kernel messages: only the known boot-time ones (wcnss.mdt at 1.4 s before /firmware, regulatory.db).
## 9. X11 regression — PASS
ui-stop → VT tty1 → `aurora-x start fbdev` → X-START OK 128x128, twm+xterm, x11vnc 172.16.42.1:5900 (IPv4 only), frame OK. UI restored afterwards.
## PASS matrix
Cage starts ✔ · SDL2 uses Wayland ✔ · 128x128 physical UI correct ✔ (operator) · live LTE ✔ · Wi-Fi ✔ · traffic ✔ (after fix, operator) ·
battery/charger ✔ · clock ✔ · wayvnc same output ✔ · LTE/Wi-Fi/router/NCM/charger unaffected ✔ · no kernel errors caused by B14 ✔
(CMA warnings explained above) · no writes outside p27 ✔ · X11 regression ✔
**B14 Cage + SDL2 modem UI: USERSPACE VALIDATED**
## 10–11. OpenRC autostart (prepared, NOT enabled)
`/etc/init.d/aurora-ui` installed on p27 (source `b14/run/aurora-ui.openrc`), in no runlevel. Activation patch (separate GO):
```
rc-update add aurora-ui default
```
Order: `need aurora-display; after aurora-ncm aurora-ro` — it does not wait for the modem (UI shows MODEM STARTING), starts ui-up in the
background so boot never blocks on the GUI; fbcon/getty on tty1 stay as fallback behind Cage; `rc-service aurora-ui stop` returns the console.
## p27 footprint
New packages: sdl2, wayland-libs-egl, mesa-vulkan-swrast (unused), build-base + sdl2-dev (+deps, build only), gdb/musl-dbg/sdl2-dbg (debug).
p27 now 1.0 GB used of 2.4 GB. Build/debug packages can be removed with `apk del build-base sdl2-dev gdb musl-dbg sdl2-dbg`.
## Autostart (2026-10-05, GO)
- `rc-update add aurora-ui default` on p27 (default runlevel: aurora-display, aurora-ui, aurora-modem, aurora-wifi, aurora-router, aurora-bootok).
- cold1 (normal power-on, no RESET; logs/b14/cold1/): stage0 fsck clean + switch_root at 4.3 s, BOOT OK 6.6 s, **UI UP at 9.47 s uptime**
(Cage + aurora-ui, first frame 1.04 s after exec, SDL wayland/opengl), modem START OK 81.6 s, AP 85.5 s, **aurora-router autostart:
ROUTER UP OK 88.1 s** (first boot with the router in the runlevel), all default services started, CMA failures 0, eMMC writes only p27.
Screenshot after boot: BEELINE LTE 60 %, 10.87.61.183, WiFi 0 cl, BAT 4.18 V CHG, PMIC 42 °C, NAT, ONLINE.
- Undo: `rc-update del aurora-ui default` (console/getty on tty1 returns on the next boot) or `rc-service aurora-ui stop` for this boot.