DF-5518 / race.sh
#!/bin/sh # DF-5518 race attempt: boot rig, (re)build kmods from on-disk sources, # plant register image, wait for the thermal _TMP hammer, then race the # detach. Usage: race.sh [n] (attempt label for logs) set -e cd "$(dirname "$0")" ROOT="$(cd ../../.. && pwd)" VM="$ROOT/dfbsd-qemu/vm.sh" N="${1:-1}" $VM down >/dev/null 2>&1 || true QEMU_EXTRA="-device loader,file=$(pwd)/gpio_chain.bin,addr=0x40000000,force-raw=on" \ $VM up 300 >/dev/null $VM run_root 'mkdir -p /root/gposrc /tmp/gpo && cp /root/gposrc/gpo_detach.c /tmp/gpo/ && cd /tmp/gpo && printf "KMOD=\tgpo_detach\nSRCS=\tgpo_detach.c\nSRCS+=\tbus_if.h device_if.h\n.include <bsd.kmod.mk>\n" > Makefile && make >/dev/null 2>&1 && cp gpo_detach.ko /root/gpo/gpo_detach.ko.new && mv /root/gpo/gpo_detach.ko.new /root/gpo/gpo_detach.ko && echo KMOD-FRESH' || { $VM run_root 'echo KMOD-STALE (build failed, using previous)' || true } $VM run_root 'kldload /root/gpo/gpoke.ko >/dev/null 2>&1; sleep 25; kldload /root/gpo/gpo_detach.ko; echo RC=$?; sleep 3; echo ALIVE; uptime' || echo "SSH-DIED" sleep 5 echo "STATUS: $($VM status)" $VM log 40 > "run.race.$N.log" || true tail -10 "run.race.$N.log" |