На днях нарвался на неприятных баг в прошивке wb-2207 контроллера wirenboard, который был исправлен в актуальной прошивке. Оба имеющихся у меня контроллера давно намекали на необходимость обновления ПО, также, оба страдали от проблем с источниками обновлений для apt, ругаясь на недоступность некоторых из них.

Так как баг мешал жить, а обновляться через заливку FIT-файла было откровенно лень, так как требовало резервного копирования и воспоминаний что именно было настроено/допоставленно на контроллере помимо собственно функций wirenboard-а, провел обновление, на мой взгляд, с минимальными проблемами и трудозатратами. Далее привожу описание шагов и обнаруженных подводных камней.

Disclaimer

Проведите резервное копирование. У меня лично все важное с котроллеров еженочьно сливается в мой локальный GIT-репозиторий. Скопируйте все данные из /mnt/data/ и из домашних директорий пользователей, если таковые имеются

После обновления до актуальной версии прошивки (wb-2304 на момент написания данной статьи), часть функционала контроллера может откатиться к заводским настройкам, а часть -- работать с багами. Стоит обратить внимание на следующие подсистемы:

  1. Сеть. У меня после обновления выключенный WiFi вновь начал выходить в эфир и строить из себя полностью открытую точку доступа, о чем его никто не просил.

  2. На момент написания Mosquitto MQTT брокер поднимается до версии 2.0.11. У меня в хозяйстве есть несколько MQTT клиентов, которые устанавливают соединения с облачными брокерами и сообщают свои имена и пароли, настроенные производителем. В моих системах эти соединения перенаправляются на местный MQTT брокер. В качестве брокера я использовал wirenboard, который до обновления успешно принимал запросы на соединения с username-ом и паролем и пускал клиента, отрабатывая "allow_anonymous true". Обновленный брокер, несмотря на наличие "allow_anonymous true", видя username в запросе на соединение сразу отказывает клиенту со статусом unauthorized. Имеющиейся под рукой брокеры версий 2.0.15 и 1.6.9 такими проблемами не обладают

Обновляем ПО

Для начала пробуем обновиться "как есть":

root@wirenboard:~#  wb-release --update-debian-release

...
19:28:52 Try to install new wb-update-manager version 
19:28:53 Ign:1 http://deb.debian.org/debian stretch InRelease 
19:28:53 Ign:2 http://security.debian.org stretch/updates InRelease 
19:28:53 Err:3 http://security.debian.org stretch/updates Release 
19:28:53   404  Not Found [IP: 151.101.242.132 80] 
19:28:53 Ign:4 http://deb.debian.org/debian stretch-updates InRelease 
19:28:53 Hit:5 http://deb.wirenboard.com/wb6/stretch stable InRelease 
19:28:53 Err:6 http://deb.debian.org/debian stretch Release 
19:28:53   404  Not Found [IP: 151.101.242.132 80] 
19:28:54 Err:8 http://deb.debian.org/debian stretch-updates Release 
19:28:54   404  Not Found [IP: 151.101.242.132 80] 
19:28:54 Ign:7 http://cdn-fastly.deb.debian.org/debian stretch-backports InRelease 
19:28:55 Err:9 http://cdn-fastly.deb.debian.org/debian stretch-backports Release 
19:28:55   404  Not Found [IP: 146.75.54.132 80]
...

Как видим проблемы с источниками обновлений присутствуют и мешают процессу. Корень проблемы -- в файле /etc/apt/sources.list.d/debian-upstream.list

root@wirenboard:~# cat /etc/apt/sources.list.d/debian-upstream.list

deb http://deb.debian.org/debian/ stretch main
deb http://deb.debian.org/debian/ stretch-updates main
deb http://security.debian.org stretch/updates main

Часть источников была перенесена в архивные ветки а stretch-updates канул в небытие. Применяем черную магию:

root@wirenboard:~# sed -i -e 's/deb.debian.org/archive.debian.org/g' -e 's|security.debian.org|archive.debian.org/debian-security/|g' -e '/stretch-updates/d' /etc/apt/sources.list.d/debian-upstream.list

Теперь файл с источниками выглядит вот так:

root@wirenboard:~# cat /etc/apt/sources.list.d/debian-upstream.list
deb http://archive.debian.org/debian/ stretch main
deb http://archive.debian.org/debian-security/ stretch/updates main

Теперь apt-get update и apt-get upgrade должны отработать нормально

ВАЖНО на одном из моих контроллеров при работе apt-get upgrade вносились изменения в файлы источников в /etc/apt/sources.list.d/. apt-get спросил что делать (оставить как есть или вписать новые) и я установил новые файлы источников, так как что в них править чтобы заработало мы теперь знаем. Но, похоже, новые файлы источников уже были с внесенными нужными изменениями

После того как apt-get обновило компоненты, можно выполнить обновление релиза

root@wirenboard:~#  wb-release --update-debian-release

Это длинный процесс, у меня на одном из контроллеров занял часа полтора, на другом -- около часа

По окончании процесса перезагрузитесь, проверьте настройки сети и работоспособность всех внешних устройств

Удачи с обновлениями

Комментарии (2)


  1. Mitya78
    05.06.2023 17:17

    А что позволяют эти контроллеры, в чём их преимущество, помимо цены, перед тем же Сименсом?

    Без всякого подвоха спрашиваю.


    1. Blck-1 Автор
      05.06.2023 17:17

      Если совсем коротко -- удобный комбаин для автоматизации, который прямо из коробки умеет 2 порта 485/MODBUS, 2 порта ethernet, wifi, 1-wire, (опционально) сотовый модем, и многое другое.
      У него на борту линукс и свой софт для скриптования действий, что позволяет интегрировать его в современные системы мониторинга, журнализации и т.д. Также производитель продает кучу разной периферии, работающей по MODBUS и не только

      С сименсом дела не имел, но, подозреваю что преимущество в цене и универсальности. Недостатки -- это не real-time устройство, поэтому управлять процессами с миллисекундными точностями я бы на нем не стал. А для умных домов дач и энергоуправления на объектах -- более чем удобная железка