Тиражирование проекта с Wirenboard

Доброго дня! Нам нужно тиражировать решение с ПЛК WB6.7 с 3G модулем на WB6.7 с 4G модулем. Штатном решения на вики я не нашел. Вот хотел узнать про подводные камни. Я так понимаю весь образ встроенной памяти я не могу сделать т.к. на втором устройстве будут проблемы с аппаратными зависимостями. Тот ПЛК с которого надо вытянуть бэкап имеет изменение в wb-rules, настроен OpenVPN клиентом с конфигом и сертифкатом, изменены правила крона, включена надстройка ngnix, изменены настройки Network, изменены настройки wb-mqtt-serial, обновлен wb-mbgate с modbus rtu (с соответсвующим конфигом). Хотел сделать бэкап по этой статье https://sprut.ai/client/article/3671. Хотелось бы узнать мнение экспертов.

Добрый день.
Да, статья толковая. Но там не описана сама идеология расположения объектов в ФС контроллера:
https://wirenboard.com/wiki/WB_Firmware_Update_Details#.D0.A1.D1.85.D0.B5.D0.BC.D0.B0_.D1.80.D0.B0.D0.B7.D0.B4.D0.B5.D0.BB.D0.BE.D0.B2_microSD.2FeMMC
Вообще, как в любом решении на правильной ОС есть несколько путей. Достаточно выбрать удобный.
Например:
Для начала пишем список файлов (конфигов), которые хотим изменить на новом контроллере.
Для каждого конфига определяем - требуется ли менять что-то внутри него или нет, от этого тактика зависит.
Ну и методы:

  • первый: Все конфиги запаковываем в архив, пишем скрипт который редактирует конфиги после их распаковки с помощью sed например.
    перед выполнением скрипта определяем переменные:
export NEW_SSID=TestTestTest

строчка скрипта:

sed  -i 's/^ssid=.*/ssid='$NEW_SSID'/g' /mnt/data/etc/hostapd.conf

Можно менять значения в определенных строках уже существующих конфигов, для настройки той же сети.

  • второй: пишем скрипт, который создает конфиги по месту, сразу с нужными значениями, хотя бы так:
    перед выполнением скрипта:
export NEW_SSID=TestTestTest

Кусок скрипта

#Чистим файл
echo "" > /mnt/data/etc/hostapd.conf
#Заполняем
echo "Создаем hostapd.conf с ssid="$NEW_SSID
cat <<EOF >> /mnt/data/etc/hostapd.conf
interface=wlan0
#driver=nl80211
ssid=$NEW_SSID
channel=1

EOF

Ну или комбинировать оба метода.
Можно пойти еще третьим путем - создать deb пакет, в котором в postinst скриптах запрашивать нужные значения, например.

Главное тут - хорошо понимать что менять.

2 лайка

Спасибо тиражировал через создание DEB пакета)

1 лайк