#!/bin/sh # B10A 30-min read-only monitor: every 60 s read LBC/USB/BMS registers. Reads only (regmap debugfs), no writes. grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug R=/sys/kernel/debug/regmap/0-00/registers rd() { dd if=$R bs=9 skip=$(($1)) count=$2 2>/dev/null | cut -d' ' -f2 | tr '\n' ' '; } i=0 while [ $i -lt ${1:-31} ]; do echo "M $i up=$(cut -d' ' -f1 /proc/uptime) st1009=$(rd 0x1009 3) rt1010=$(rd 0x1010 1) vdd1040=$(rd 0x1040 1) ibat1044=$(rd 0x1044 1) ctrl1049=$(rd 0x1049 1) usb1308=$(rd 0x1308 2) usbrt1310=$(rd 0x1310 1) batrt1210=$(rd 0x1210 1) fifo=$(rd 0x40c0 10) ocv=$(rd 0x406a 2) bms4008=$(rd 0x4008 2) tcpu=$(cat /sys/class/thermal/thermal_zone4/temp)" i=$((i+1)); [ $i -lt ${1:-31} ] && sleep 60 done echo B10A-MON-END