uzbek-plus/logs/b12/b12q/B12Q-ALPINE-PRIMARY-ROOT.md

62 lines
5.3 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.

# B12Q — Alpine as primary rootfs (2026-10-04) — **RAM VALIDATED**
## Architecture
lk2nd/cache → kernel 7.2.7-aurora-b10b5 (unchanged) + prod DTB e47762d1 (unchanged) + B9C cmdline (unchanged)
→ initramfs **stage0** (`b12/b12q/rootfs/init`): eMMC RO → userdata p27 checks (PARTNAME, geometry, ext4 magic, label `aurora-alpine`)
→ lift disk RO flag + RW p27 only (every other partition + boot0/1 verified RO) → `e2fsck -p` → mount → validate (`/sbin/init`, `/sbin/openrc`,
`/etc/alpine-release`, `/etc/aurora/primary-root`, dev/proc/sys/run/tmp) → boot counter → `mount --move` dev/sys/proc → **switch_root** → Alpine `/sbin/init`
(busybox init from Alpine 3.24.2, inittab → OpenRC 0.63.2).
Rescue: `aurora.alpine=off`, any check failure, or ≥3 unconfirmed boots (`/var/lib/aurora/boot-attempts`, reset by `aurora-bootok`) → relock → `exec /init.lfs`
(= byte-identical B9C/B10 LFS init, never mounts p27). Reason printed to UART + fbcon via kmsg (`ALPINE PRIMARY ROOT NOT USED: …`).
## Audit (dependencies of the LFS boot)
- All non-Aurora userspace in the LFS initramfs = Alpine packages; every version exists in v3.24 (only pcre2 10.48→10.49, libcrypto 3.5.8→3.5.9 differ).
rmtfs, libqrtr, iw, ModemManager, qmi-proxy, libqmi from v3.24 packages are **bit-identical** to the initramfs files.
- Aurora-specific: aurora-modem (B12P gate), aurora-wifi, aurora-display + service wrappers, /etc/aurora/{modem,wifi}.conf, linebuf.so (rmtfs LD_PRELOAD),
/usr/libexec/aurora/{busybox (ntpd), wifi/hostapd bundle}, WCNSS NV, panel firmware, debug tools.
- Daemons udevd/dbus/polkitd/ModemManager are started by the modem controller itself (unchanged; OpenRC services for them installed but NOT enabled).
- Busybox applets used by the scripts are all in Alpine busybox; telnetd from busybox-extras. No kernel modules (CONFIG_MODULES=n).
- Init duties moved to OpenRC: devfs, sysfs (sysinit); hostname, aurora-ro (RO policy + /tmp tmpfs), aurora-firmware (B1 modem FAT RO + fw path),
aurora-ncm (USB gadget 18d1:d001 + 172.16.42.1 + telnetd) (boot); aurora-display, aurora-modem, aurora-wifi, aurora-bootok (default).
inittab: getty tty1, root shell on ttyMSM0. Time bootstrap stays inside aurora-modem. No syslog (kernel log only) to avoid eMMC writes.
## p27 changes (B12Q-2, writes only p27)
44 packages from a local signed-package repo (no network): openrc, busybox-extras, eudev, dbus, polkit, modemmanager(+udev), libqmi, qmi-utils,
libqrtr-glib, rmtfs, hostapd, iw, mobile-broadband-provider-info + deps; package scripts ran natively (messagebus/polkitd users). 150 packages total.
Overlay `b12/b12q/alpine-overlay` (contains the Wi-Fi PSK — never publish). Installer `b12/b12q/install-p27.sh`.
## RAM tests (fastboot boot, nothing flashed)
| | normal1 (aurora-b12q.img a0b66b59) | off1 (aurora.alpine=off) | failtest1 (aurora.b12q.failtest=init) |
|---|---|---|---|
| / | /dev/mmcblk0p27 ext4 rw | rootfs (initramfs) | rootfs |
| PID1 | /bin/busybox (/sbin/init, Alpine) → OpenRC | /bin/busybox sh /init.lfs | /bin/busybox sh /init.lfs |
| stage0 | fsck clean, switch_root 2.5 s, attempt 1/3, BOOT OK → counter 0 | "aurora.alpine=off … p27 not touched" | fsck clean, "/sbin/init.failtest-missing missing" → rescue, relocked |
| modem / LTE | START OK 71.7 s, ping 4/4 | START OK 72.9 s, ping 4/4 | START OK 72.8 s |
| Wi-Fi AP | 76 s, WCNSS+MSS running | 77 s | 77 s |
| NCM/telnet | OK | OK | OK |
| display | DISPLAY READY, getty tty1 | OK (LFS) | OK (LFS) |
| charger | CHARGING fault none | CHARGING | CHARGING |
| apk | 3.0.8, 150 pkgs, B12P file persisted | – | – |
| eMMC RO | all RO except disk flag + p27 | all 30 RO | all 30 RO |
| eMMC writes | p27 only (51) | 0 | p27 only (52, mount/umount) |
**PASS:** / = p27, PID1 = Alpine/OpenRC, modem, LTE, Wi-Fi, NCM, display, charger, rescue fallback (off + failtest), eMMC writes outside p27 = 0.
**Verdict: B12Q Alpine primary rootfs: RAM VALIDATED.**
## Persistent candidate (NOT written)
`b12/b12q/cache/cache-extlinux-b12q.img` **59272cd3** (B12P recipe, initrd 9ade7cff, label b12q). lk2nd emulator: S13 candidate boots
(kernel 8c8bfccb, dtb e47762d1, ramdisk 9ade7cff), S12 current B12P identical, F1/F3 revert. Write: `b12/b12q/B12Q-write.sh` (expects live cache B12P 98d061ef,
backup kept), rollback `b12/b12q/B12Q-rollback.sh` → B12P 98d061ef. Needs separate GO.
## Notes / open
- Root password locked (tty1 login unusable without one); access = telnet on NCM (no auth, dev) + UART shell. SSH not added yet.
- No default route → apk has no network (router stack next).
- Rescue path: to retry Alpine after 3 failed boots, from LFS rescue `aurora-alpine start` then `echo 0 > /alpine/var/lib/aurora/boot-attempts`.
## Persistent (2026-10-04, GO)
- HW EDL `B12Q-write.sh`: **B12Q_CACHE_WRITE_VERIFIED** — cache 59272cd3 (readback match), backup W/pre-cache.bin = B12P 98d061ef, all other partitions unchanged,
userdata superblock aurora-alpine.
- cold1 (normal power-on, no RESET): NCM 70 s after observer start, stage0 fsck clean + switch_root 3.1 s (attempt 1/3), BOOT OK 5.4 s, / = p27, PID1 = Alpine init/OpenRC,
modem START OK 70.4 s, ping 4/4, AP 74.9 s, DISPLAY READY, charger CHARGING fault none, apk 3.0.8, RW only disk flag + p27, eMMC writes only p27 (32).
- **B12Q CLOSED: Alpine is the primary rootfs.** Rollback `b12/b12q/B12Q-rollback.sh` → B12P 98d061ef.