#!/bin/sh # 480s side, B12P RAM test (nothing written to eMMC boot partitions). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B12P RAM image. # Checks: modem START OK (patched safety gate), Wi-Fi AP, ALPINE OK (/alpine mounted from userdata, RW only p27), display, eMMC write stats. K=$1; MODE=${2:-ram}; [ -n "$K" ] || { echo "usage: $0 K [ram|cold]"; exit 2; } # cold = normal power-on from eMMC cache, no fastboot cd ~/doc/modem/jz08-aurora; O=logs/b12/b12p/$MODE$K; mkdir -p $O; IMG=b12/b12p/out/aurora-b12p.img A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S) $*" | tee -a $A; } tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; } if [ $MODE = ram ]; then echo "00af916024671553f873a92d6ba7057443a239eaf3e38384d0b51845af5689b9 $IMG" | sha256sum -c || exit 1 act "B12P ram$K: waiting for fastboot (power off, then hold RESET while powering on)" i=0; until fastboot devices 2>/dev/null | grep -q ; do i=$((i+1)); [ $i -ge 900 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A else act "B12P cold$K: waiting for normal power-on WITHOUT RESET (cache B12P 98d061ef)" i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q && { act "ABORT: board in fastboot - RESET held?"; exit 1; }; i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no NCM"; exit 1; }; sleep 1; done fi i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; exit 1; }; sleep 1; done; act "NCM ping ok" printf 'grep -E "START OK|FAIL in|rollback|SAFETY" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.w i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done act "modem: $(tn $O/.w 3 | grep -E '^\[[0-9.]+\]' | tail -2 | tr '\n' ' ')" printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 30 ] && break; sleep 6; done act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\]' | tail -1)" cat > $O/.c <<'C' echo SNAP-BEGIN; cat /proc/uptime; uname -a; cat /proc/cmdline echo ---alpine; cat /run/aurora-alpine/alpine.log /run/aurora-alpine/service.log; /etc/init.d/aurora-alpine status echo ---ro; for x in /dev/mmcblk0 /dev/mmcblk0p* /dev/mmcblk0boot0 /dev/mmcblk0boot1; do printf "%s=%s " ${x#/dev/} $(blockdev --getro $x); done; echo echo ---chroot; chroot /alpine /bin/sh -c 'cat /etc/alpine-release /etc/aurora-alpine-release; ls /usr/libexec/Xorg; cat /root/persist-test.txt' echo ---modem; /etc/init.d/aurora-modem status; grep -E "SAFETY|START OK" /run/aurora-modem/lifecycle.log echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2 echo ---wifi; /etc/init.d/aurora-wifi status | tail -3 echo ---display; /etc/init.d/aurora-display status; cat /sys/class/tty/tty0/active echo ---charger; cat /sys/kernel/debug/pm8916_lbc/state 2>/dev/null || { mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; } echo ---emmc; cat /sys/block/mmcblk0/stat; for p in /sys/class/block/mmcblk0p*; do s=$(awk '{print $5}' $p/stat); [ "$s" != 0 ] && echo "$(basename $p) writes=$s"; done echo ---mem; free; dmesg | grep -iE "ext4|mmcblk0p27|aurora-alpine" | tail echo SNAP-END C tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end; $(grep -m1 'ALPINE OK' $O/snapshot.txt)" grep -A1 -- "---ro" $O/snapshot.txt | tail -1 | tr ' ' '\n' | grep "=0" | tee -a $A act "B12P $MODE$K END"