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

5.3 KiB
Raw Permalink Blame History

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.