Если вы используете Raspberry Pi не просто «поиграться», а в реальном проекте — вы точно сталкивались с одной проблемой: чтобы обновить систему, к нему нужно подключаться.
Даже если есть SSH или веб-доступ — это всё равно лишние действия. А если устройство находится далеко — задача превращается в неудобную или вообще невозможную.
Теперь это меняется. В Raspberry Pi Connect появилась функция удаленных обновлений (OTA), которая позволяет управлять устройством буквально «по воздуху».
Что это значит на практике
Раньше всё выглядело так:
sudo apt update
sudo apt upgrade
Ты подключался к Raspberry Pi, запускал команды и ждал.
Теперь можно просто отправить обновление удалённо — без подключения к устройству.
Даже если Raspberry Pi сейчас выключен — обновление выполнится, когда он появится в сети.
Как включить удаленные обновления
Чтобы начать использовать OTA, нужно установить пакеты:
sudo apt update
sudo apt install rpi-connect rpi-connect-ota
Если используется облегчённая версия:
sudo apt install rpi-connect-lite rpi-connect-ota
После этого включаем функцию:
rpi-connect ota on
Готово — теперь устройство умеет принимать удаленные обновления.
Как устроена система: артефакты и деплой
Вся логика строится вокруг двух вещей:
-
артефакт — файл с обновлением или скриптом
-
деплой — команда выполнить этот файл
То есть ты создаешь пакет, отправляешь его на устройство — и оно выполняет нужные действия.
Простой пример: удалённый apt upgrade
Можно создать артефакт, который делает обычное обновление системы.
Вот пример скрипта:
#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt update
if apt -y -o DPKG::Options::="--force-confnew" upgrade > output.txt; then
if [ -r /var/run/reboot-required ]; then
echo Rebooting to finish the upgrade
exit 2
fi
else
echo Upgrade failed:
cat output.txt
exit 1
fi
echo Upgrade complete
exit 0
Этот скрипт:
-
обновляет пакеты
-
автоматически принимает изменения
-
перезагружает систему при необходимости
Описание артефакта (YAML)
К скрипту добавляется YAML-файл:
artefact:
name: aptupgrade
version: 1.0
device_type: rpi
payloads:
- name: aptupgradescript
type: script
Дальше собираем артефакт:
otamaker aptupgrade.yaml
На выходе получаем файл вида:
aptupgrade.tar.zst
Как отправить обновление на устройство
-
Узнаем IP компьютера:
hostname -I
-
Поднимаем простой сервер:
python3 -m http.server 8000 --directory .
-
Загружаем артефакт в Raspberry Pi Connect
-
Нажимаем Deploy
После этого:
-
устройство скачает файл
-
выполнит скрипт
-
при необходимости перезагрузится
Почему это важно
Самое интересное — это не просто обновления.
Ты можешь выполнять любые действия:
-
деплоить свое приложение
-
запускать команды
-
обновлять сервисы
-
управлять железом
Например, можно отправить скрипт, который включает LED или запускает музыку.
Что если обновление сломает систему?
Это главный страх при удалённом управлении.
Поэтому используется схема A/B:
-
есть две версии системы
-
новая ставится во вторую
-
если всё ок — переключаемся
-
если нет — откатываемся
Это делает обновления безопасными даже без физического доступа к устройству.
Ограничения
Функция пока в бета-версии.
Главный минус — вывод скриптов смотреть неудобно.
Можно посмотреть через:
journalctl -t rpi-ota-connector
Итог
Raspberry Pi становится не просто мини-компьютером, а полноценной управляемой системой.
Теперь можно:
-
обновлять устройства удаленно
-
управлять ими без подключения
-
автоматизировать задачи
И это уже уровень:
-
серверов
-
IoT
-
продакшн-решений
