uzbek-plus/logs/b7/b7b/B7B-RESULT.md
q 8d7721c775 B7: add network time bootstrap and persistent B7C cache
B7A: QMI DMS time vs VNIIFTRI NTP (DMS = UTC - 0.28 s, sigma 1 ms; NITZ = DMS
truncated to 1 s). B7B: a 1970 -> 2026 date -s step is harmless for the modem
stack. B7C: aurora-modem probes DMS/NITZ along the start flow and steps
CLOCK_REALTIME once at the first valid sample (REG registered/attached), never
RTC; background SNTP check (query only) after START OK. 3/3 class-A cold boots
PASS (residual +0.04/+0.36/+0.84 s), cache 14fe453a written (B7C_WRITE_VERIFIED)
and verified by a normal power-on (V1, +0.26 s).

Also publishes the prerequisite R2 (boot-hang / lk eMMC investigation, T4
telnet baseline that B7C builds on) and R3 (autonomous cold boot, NCM loss)
material, and extends tools/publish-sanitize.py to r2/, r3/, b7/.
Binary images, initramfs, busybox and raw logs stay out (see b7/*/SHA256SUMS).
2026-10-02 20:18:25 +03:00

33 lines
2.9 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.

# B7B — one system clock step 1970 → QMI DMS UTC on the live modem: **PASS**
2026-10-02, same boot as R3A/R3B/B7A (uptime ≈ 2925–3130 s). No eMMC write (writes 0), no RTC write, image unchanged, no reboot. Only RAM files in /tmp/b7b
and one temporary /32 route to ntp1.vniiftri.ru (89.109.251.21), removed afterwards. Script b7/b7b/b7b-run.sh (sha 58ed0d00…), detached on the board.
## Time-source checks (b7b-time-source.txt)
3 DMS samples + 1 NITZ, each bracketed by `adjtimex` µs timestamps. All PASS → VERDICT=GO:
values present; DMS ≥ image build 2026-10-02T08:09:01Z; year ≥ 2026; < build + 5 y (1980/2017 excluded); 3 samples consistent (spread 0.8 ms); |DMS − NITZ| = 0.54 s < 2.
Dry runs first (logs dry/): run 1 was stopped by the gate itself, because my parser bug gave DMS = 1980-01-06 → STOP, clock not touched. Fixed, run 2 = GO (dry).
## Step (b7b-actions.txt)
`date -u -s @1790934303` (09:45:03 UTC), started at a local instant chosen so that the new clock lands on a whole DMS second (usleep 1.386 s), rc=0.
Clock 2929.968714 → 1790934303.002845. No hwclock. adjtimex stays `status 64 (UNSYNC)`, offset 0, so the kernel 11-min RTC sync does not engage.
RTC since_epoch kept counting from boot (2926 → 2929 → … 3112): **RTC untouched**.
Right after the step: DMS − clock = +14.5/+14.2/+14.0 ms (date -s exec ran ≈ 12 ms after the target instant).
## Stack after the step (b7b-post.txt, b7b-observe.txt, b7b-host-checks.txt)
- PIDs unchanged pre/post/all of the observation: ModemManager 1655, rmtfs 1056, qmi-proxy 1701, telnetd 615, udevd 1613, dbus 1640, polkitd 1644.
- 36 samples over 182 s (every 5 s): state BEARER_CONNECTED, wwan0 10.41.212.24/28, **LTE ping 77.88.8.8 36/36 ok**, host 172.16.42.2 up 36/36;
mm `connected/home`, bearer1 connected=yes in all 13 mmcli samples.
- lifecycle.log 35 lines before and after (no FAIL/rollback/error). dmesg: only the three `[b7b]` marker lines after the step, no kernel message.
ModemManager log: no new lines at all after the step. dmesg-errs 0.
- Host: telnet + ping 172.16.42.1 OK on 15/15 checks during the run.
## Residual vs NTP (b7b-ntp-check.txt, ntpd -w query only, ntp1.vniiftri.ru)
4 replies: offset **+0.2922 / +0.3001 / +0.3002 / +0.2985 s** (RTT 60–75 ms). Best (min delay) = +0.292 s: the system clock is 0.29 s slow.
That matches B7A: DMS bias −0.280 s plus the ≈ 0.013 s step latency (DMS − clock = +13…14 ms at the end too, so no drift in 200 s).
Route removed, table identical to before.
## Verdict
PASS on every criterion: the clock is current (2026-10-02, −0.29 s vs VNIIFTRI), the modem stack did not react to the 56-year forward step,
bearer/wwan0 stayed up, MM/rmtfs were not restarted, LTE ping worked, no new FAIL/rollback/error, residual ≈ 0.3 s as expected.
Not covered (B7C): DMS validity before registration on a class-A cold boot; ntpd in the image; integrating the step into the boot flow.