This commit is contained in:
2026-08-24 16:40:48 +03:00
parent f7e99516bf
commit 32abb8bf0a
73 changed files with 12364 additions and 9292 deletions
+20 -6
View File
@@ -48,6 +48,8 @@
- `final_ip` — static IP, который останется в `network.json` после установки
(по умолчанию `192.168.1.60`);
- `after_install``halt` (рекомендуется) или `reboot`;
- `reset_config``false` (сохранить config на устройстве) или `true`
(перезаписать `config.json` и `.master` из бандла — для переустановки);
- при необходимости — диапазон `pool_start`/`pool_end` (адрес `final_ip`
из пула исключается автоматически).
@@ -63,7 +65,8 @@
2. Включить GUI.
3. Выбрать сетевой интерфейс.
4. Выбрать `.tgz` бандл.
5. Нажать `Start`.
5. При переустановке на уже настроенное устройство — включить «Полный сброс конфига».
6. Нажать `Start`.
6. Вставить устройство в изолированную сеть.
7. Дождаться статуса `ГОТОВО`.
8. Вынуть устройство и повторить для следующего.
@@ -99,6 +102,11 @@ discover -> acked -> ждём ssh -> заливаю -> устанавливаю
Если где-то `ОШИБКА`, детали видны в таблице; полный вывод install пишется в
`logs/<mac>.log`.
Частая ошибка на шаге `сеть`: `Connection timed out` — SSH оборвался до записи
`network.json`. Устройство после этого остаётся на DHCP; в таблице будет
`ОШИБКА`, не `ГОТОВО`. С новых версий deploy-скрипта запись повторяется до 3
раз и проверяется чтением файла обратно.
Когда устройство показывает `ГОТОВО` — оно выключено. Можно отключать кабель
и включать уже на рабочей сети: поднимется на `final_ip` с сервисами
ButtonTask.
@@ -113,12 +121,18 @@ IP-адреса привязываются к MAC-адресу и запомин
Если нужно "сбросить" привязки/ключи — удалите `leases.json` и/или
`host_keys.json` (файлы создаются заново автоматически).
## device-install.sh менять не нужно
## device-install.sh
Сам скрипт установки на устройстве (`device-install.sh`) не менялся. На время
install `network.json` из бандла временно прячется, чтобы SSH не оборвался
из‑за смены IP; целевой static `final_ip` записывается уже после `INSTALL-OK`.
Изменился только способ доставки (SSH вместо `adb push`/`adb shell`).
На время install `network.json` из бандла временно прячется, а старый
`/opt/buttontask/config/network.json` на устройстве удаляется — иначе при
переустановке install мог бы применить static во время SSH-сессии и оборвать
связь. Целевой static `final_ip` записывается уже после `INSTALL-OK` и
проверяется чтением файла.
`config.json` и `.master` **по умолчанию сохраняются**, если уже есть на
устройстве (upgrade-safe). Для переустановки «как с завода» включите
`"reset_config": true` в `config.json`, галочку в GUI или переменную
`BUTTONTASK_RESET_CONFIG=1` при запуске install.
## Сборка в exe