update_fw.sh: явная диагностика crash-loop klipper-mcu после прошивки host
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+12
-2
@@ -207,8 +207,18 @@ if want host; then
|
|||||||
HOST_PID_OLD=$(systemctl show -p ExecMainPID --value klipper-mcu)
|
HOST_PID_OLD=$(systemctl show -p ExecMainPID --value klipper-mcu)
|
||||||
make -C "$KLIPPER" flash KCONFIG_CONFIG="$BUILD_TMP/$HOST_CFG"
|
make -C "$KLIPPER" flash KCONFIG_CONFIG="$BUILD_TMP/$HOST_CFG"
|
||||||
[ "$(stat -c %Y "$HOST_BIN")" -ge "$START_TS" ] || die "$HOST_BIN не обновился"
|
[ "$(stat -c %Y "$HOST_BIN")" -ge "$START_TS" ] || die "$HOST_BIN не обновился"
|
||||||
host_restarted() { [ "$(systemctl show -p ExecMainPID --value klipper-mcu)" != "$HOST_PID_OLD" ] && [ -e /tmp/klipper_host_mcu ]; }
|
host_restarted() {
|
||||||
wait_for 10 "klipper-mcu не перезапустился (PID $HOST_PID_OLD)" host_restarted
|
[ "$(systemctl show -p ExecMainPID --value klipper-mcu)" != "$HOST_PID_OLD" ] \
|
||||||
|
&& [ "$(systemctl show -p SubState --value klipper-mcu)" = "running" ] && [ -e /tmp/klipper_host_mcu ]
|
||||||
|
}
|
||||||
|
if ! wait_for 10 "klipper-mcu не перезапустился (PID $HOST_PID_OLD)" host_restarted; then
|
||||||
|
journalctl -u klipper-mcu -n 8 --no-pager -o cat || true
|
||||||
|
die "klipper-mcu не работает после прошивки (см. journalctl -u klipper-mcu)"
|
||||||
|
fi
|
||||||
|
# Убедиться, что процесс не падает в цикле перезапуска (Restart=always)
|
||||||
|
sleep 3
|
||||||
|
[ "$(systemctl show -p SubState --value klipper-mcu)" = "running" ] \
|
||||||
|
|| { journalctl -u klipper-mcu -n 8 --no-pager -o cat || true; die "klipper-mcu перезапускается в цикле"; }
|
||||||
echo "klipper-mcu перезапущен (PID $HOST_PID_OLD -> $(systemctl show -p ExecMainPID --value klipper-mcu)), $HOST_BIN обновлён"
|
echo "klipper-mcu перезапущен (PID $HOST_PID_OLD -> $(systemctl show -p ExecMainPID --value klipper-mcu)), $HOST_BIN обновлён"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user