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() {
|
||||
local rc=$?
|
||||
rm -rf "${BUILD_TMP:-}"
|
||||
if [ "$KLIPPER_STOPPED" = 1 ]; then
|
||||
echo; echo "=== Запуск klipper ==="
|
||||
sudo systemctl start klipper || echo "!!! Не удалось запустить klipper — запустите вручную: sudo systemctl start klipper" >&2
|
||||
@@ -156,10 +157,15 @@ if [ "$BUILD_ONLY" = 0 ]; then
|
||||
fi
|
||||
|
||||
# ---------- Сборка ----------
|
||||
BUILD_TMP=$(mktemp -d)
|
||||
build() { # build <цель> <конфиг> <артефакт: bin|elf>
|
||||
local name=$1 cfg=$CONFIG_DIR/$2 ext=$3
|
||||
local name=$1 ext=$3
|
||||
STAGE="сборка $name"
|
||||
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" olddefconfig KCONFIG_CONFIG="$cfg"
|
||||
make -C "$KLIPPER" -j"$JOBS" KCONFIG_CONFIG="$cfg"
|
||||
@@ -192,7 +198,7 @@ if want host; then
|
||||
STAGE="прошивка host MCU"
|
||||
section "Прошивка host (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 не обновился"
|
||||
wait_for 10 "klipper-mcu не запустился" systemctl is-active --quiet klipper-mcu
|
||||
echo "klipper-mcu: $(systemctl is-active klipper-mcu), $HOST_BIN обновлён"
|
||||
|
||||
Reference in New Issue
Block a user