firmware/update_fw.sh: собирать из копии конфига, не трогая файлы репозитория
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -78,6 +78,7 @@ on_err() {
|
|||||||
}
|
}
|
||||||
on_exit() {
|
on_exit() {
|
||||||
local rc=$?
|
local rc=$?
|
||||||
|
rm -rf "${BUILD_TMP:-}"
|
||||||
if [ "$KLIPPER_STOPPED" = 1 ]; then
|
if [ "$KLIPPER_STOPPED" = 1 ]; then
|
||||||
echo; echo "=== Запуск klipper ==="
|
echo; echo "=== Запуск klipper ==="
|
||||||
sudo systemctl start klipper || echo "!!! Не удалось запустить klipper — запустите вручную: sudo systemctl start klipper" >&2
|
sudo systemctl start klipper || echo "!!! Не удалось запустить klipper — запустите вручную: sudo systemctl start klipper" >&2
|
||||||
@@ -156,10 +157,15 @@ if [ "$BUILD_ONLY" = 0 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# ---------- Сборка ----------
|
# ---------- Сборка ----------
|
||||||
|
BUILD_TMP=$(mktemp -d)
|
||||||
build() { # build <цель> <конфиг> <артефакт: bin|elf>
|
build() { # build <цель> <конфиг> <артефакт: bin|elf>
|
||||||
local name=$1 cfg=$CONFIG_DIR/$2 ext=$3
|
local name=$1 ext=$3
|
||||||
STAGE="сборка $name"
|
STAGE="сборка $name"
|
||||||
section "Сборка $name ($2)"
|
section "Сборка $name ($2)"
|
||||||
|
# Собираем из копии: olddefconfig переписывает конфиг и создаёт <конфиг>.old,
|
||||||
|
# а файлы в репозитории должны оставаться нетронутыми
|
||||||
|
local cfg="$BUILD_TMP/$2"
|
||||||
|
cp "$CONFIG_DIR/$2" "$cfg"
|
||||||
make -C "$KLIPPER" clean KCONFIG_CONFIG="$cfg" >/dev/null
|
make -C "$KLIPPER" clean KCONFIG_CONFIG="$cfg" >/dev/null
|
||||||
make -C "$KLIPPER" olddefconfig KCONFIG_CONFIG="$cfg"
|
make -C "$KLIPPER" olddefconfig KCONFIG_CONFIG="$cfg"
|
||||||
make -C "$KLIPPER" -j"$JOBS" KCONFIG_CONFIG="$cfg"
|
make -C "$KLIPPER" -j"$JOBS" KCONFIG_CONFIG="$cfg"
|
||||||
@@ -192,7 +198,7 @@ if want host; then
|
|||||||
STAGE="прошивка host MCU"
|
STAGE="прошивка host MCU"
|
||||||
section "Прошивка host (klipper-mcu)"
|
section "Прошивка host (klipper-mcu)"
|
||||||
# flash-linux.sh копирует out/klipper.elf в /usr/local/bin/klipper_mcu и перезапускает klipper-mcu
|
# flash-linux.sh копирует out/klipper.elf в /usr/local/bin/klipper_mcu и перезапускает klipper-mcu
|
||||||
make -C "$KLIPPER" flash KCONFIG_CONFIG="$CONFIG_DIR/$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 не обновился"
|
||||||
wait_for 10 "klipper-mcu не запустился" systemctl is-active --quiet klipper-mcu
|
wait_for 10 "klipper-mcu не запустился" systemctl is-active --quiet klipper-mcu
|
||||||
echo "klipper-mcu: $(systemctl is-active klipper-mcu), $HOST_BIN обновлён"
|
echo "klipper-mcu: $(systemctl is-active klipper-mcu), $HOST_BIN обновлён"
|
||||||
|
|||||||
Reference in New Issue
Block a user