Ошибка после попытки обновления устройств wirenboard

Здравствуйте! После попытки обновления прошивки любого устройства wirenboard командой к примеру - fw-updater update-fw /dev/ttyRS485-2 -a27, при вводе команды в консоли всё зависает и помогает остановка выполнения команды. После остановки команды, зависает wb-rules и не открывается файл /etc/wb-mqtt-serial.conf. После перезагрузки всё востанавливается.
версия контроллера 7.4.3.
прошивка крайняя тестовая.
Попытался объяснить что происходит.
Как решить проблему?

Добрый день.
Какой версии wb-mqtt-serial?
Как вы его останавливаете перед запуском wb-mcu-fw-updater?

Что такое “виснет”? Ну совершенно непонятно…
Какие команды надо выполнить чтобы получить такое же поведение (воспроизвести)?

● wirenboard-A7C5WKJX
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Mon 2024-09-30 19:15:21 +07; 5h 9min ago
   CGroup: /
           ├─user.slice
           │ └─user-0.slice
           │   ├─session-c3.scope
           │   │ ├─  459 systemctl status
           │   │ ├─  461 pager
           │   │ ├─32134 sshd: root@pts/0
           │   │ └─32370 -bash
           │   └─user@0.service …
           │     └─init.scope
           │       ├─32149 /lib/systemd/systemd --user
           │       └─32153 (sd-pam)
           ├─init.scope
           │ └─1 /sbin/init
           └─system.slice
             ├─wb-mqtt-confed.service
             │ └─2504 /usr/bin/wb-mqtt-confed -syslog /usr/share/wb-mqtt-confed/schemas /var/lib/wb-mqtt-confed/schemas
             ├─wb-mqtt-metrics.service
             │ └─2575 /usr/bin/python3 /usr/bin/wb-metrics -c /etc/wb-mqtt-metrics.conf
             ├─wb-cloud-agent-telegraf.service
             │ └─31505 /usr/bin/telegraf --config /var/lib/wb-cloud-agent/telegraf.conf
             ├─wb-mqtt-adc.service
             │ └─4411 /usr/bin/wb-mqtt-adc
             ├─wb-rules.service
             │ └─2602 /usr/bin/wb-rules -syslog -editdir /etc/wb-rules/ /usr/share/wb-rules-system/rules/ /etc/wb-rules>
             ├─wb-connection-manager.service
             │ └─1865 python3 /usr/lib/wb-connection-manager/wb-connection-manager
             ├─wb-cloud-agent-frpc.service
             │ └─7216 /usr/bin/frpc --config /var/lib/wb-cloud-agent/frpc.conf
             ├─mosquitto.service
             │ └─2143 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
             ├─nginx.service
             │ ├─2239 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             │ ├─2241 nginx: worker process
             │ ├─2243 nginx: worker process
             │ ├─2244 nginx: worker process
             │ └─2253 nginx: worker process
             ├─NetworkManager.service
             │ ├─ 438 /usr/sbin/NetworkManager --no-daemon
             │ └─5914 /usr/sbin/pppd nodetach lock nodefaultroute noipv6 ttyUSB2 noipdefault noauth usepeerdns lcp-echo>
             ├─dbus.service
             │ └─300 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslo>
             ├─wb-mqtt-w1.service
lines 1-48

fw-updater update-fw /dev/ttyRS485-2 -a27 эта команда взята из вики и должна обновить модуль на порту RS485-2 с адресом 27

или все же wb-mcu-fw-updater ?

Использование утилиты wb-mcu-fw-updater для обновления встроенного в модули WB
программного обеспечения (прошивки) описано на этой страничке Wiki Утилита обновления прошивок wb-mcu-fw-updater — Wiren Board

1 лайк

ну конечно wb-mcu-fw-updater. Здесь скопировалось не полностью. Делаю всё по инструкции, но после запуска команды, виснет wb-rules и помогает только перезагрузка контроллера.

Ещё раз пишу, что после ввода команды wb-mcu-fw-updater update-fw /dev/ttyRS485-2 -a27, либо команды с любым другим адресом. виснет wb-rules и не открывается файл настроек serial устройств. Что делать?

И в каком состоянии находится сам сервис?
У меня не виснет. То есть я останавливаю wb-mqtt-serial, выполняю какие-либо операции и снова запускаю.
Поэтому - для воспроизведения ожидаю последовательность команд.

В инструкции в вики ничего не сказано о том, что нужно останавливать wb-mqtt-serial…

вот инструкция что я делал:
Обновление прошивки устройства

  1. Узнать modbus-адрес обновляемого устройства и порт,
    к которому оно подключено, например, /dev/ttyRS485-1.
    узнал.
  2. Запустить утилиту wb-mcu-fw-updater со следующими ключами:
    wb-mcu-fw-updater update-fw <порт, на котором находится устройство> -a <modbus адрес устройства>
    запустил.
    Нигде не написано что требуется что-то останавливать или дополнительно загружать.

Пробую:

wb-mcu-fw-updater update-fw -a 60 /dev/ttyRS485-1 --branch feature-check-reg-overlaps/
Will find serial port settings for (/dev/ttyRS485-1 : 60; response_timeout: 0.20)... (elapsed: 00:03)
2024-10-02 07:32:10,146 Has found serial port settings: SerialSettings(baudrate=115200, parity='N', stopbits=2)
2024-10-02 07:32:11,015 
2024-10-02 07:32:11,023 Flashing device: "msw3Gc" branch: "feature-check-reg-overlaps/" version: "release" is requested.
2024-10-02 07:32:11,039         Stability cannot be guaranteed. Flash at your own risk? [Y/N]
y
2024-10-02 07:32:16,540 Confirmed update: 4.31.9 -> 4.31.5-rc2
2024-10-02 07:32:17,613 
2024-10-02 07:32:17,631 Bootloader update (v1.4.0 -> v1.4.3) for msw3Gc /dev/ttyRS485-1:60 is available! (bootloader updates are highly recommended to install) Do a bootloader update? [Y/N]
y
2024-10-02 07:32:32,312 Flashing /var/lib/wb-mcu-fw-updater/bootloader/wb-bootloader-updater_msw3Gc__1.4.3_master_c44258d.wbfw (36 data chunks)
100%|###########################################################################################################################################################################################################################################################################################################################################|36/36
2024-10-02 07:32:42,103 Flashing /var/lib/wb-mcu-fw-updater/fw/msw3Gc__4.31.5-rc2_feature-check-reg-overlaps_c0df1a8.wbfw (288 data chunks)
100%|#########################################################################################################################################################################################################################################################################################################################################|288/288
2024-10-02 07:33:26,070 Done

Завершено успешно.
Ну и сервис движка правил работает.

● wb-rules.service - MQTT Rule engine for Wiren Board
     Loaded: loaded (/lib/systemd/system/wb-rules.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2024-09-14 13:25:53 UTC; 2 weeks 3 days ago
   Main PID: 3186 (wb-rules)
      Tasks: 21 (limit: 1146)
     Memory: 22.3M
        CPU: 1d 6h 12min 30.314s
     CGroup: /system.slice/wb-rules.service
             └─3186 /usr/bin/wb-rules -syslog -editdir /etc/wb-rules/ /usr/share/wb-rules-system/rules/ /etc/wb-rules/ /usr/share/wb-rules/

Sep 14 13:26:22 wirenboard-AGH767IU wb-rules[3186]: WARNING: [device] Unknown metadata for device metrics: 'error'
Sep 14 13:26:25 wirenboard-AGH767IU wb-rules[3186]: WARNING: [rule warning] DAC: no config file
Sep 14 13:26:26 wirenboard-AGH767IU wb-rules[3186]: INFO: [rule info] ruleName: function anon() {/* source code */}
Sep 14 13:26:26 wirenboard-AGH767IU wb-rules[3186]: INFO: [rule info] strJson = {"params":{"response_size":8,"format":"HEX","path":"/dev/ttyRS485-2","baud_rate":9600,"parity":"N","data_bits":8,"stop_bits":2,"msg":"BD030200BD29EE"},"id":1}
Sep 14 13:26:26 wirenboard-AGH767IU wb-rules[3186]: INFO: [rule info] Work!
Sep 14 13:26:27 wirenboard-AGH767IU wb-rules[3186]: INFO: [rule info] script 08_08_test_01.js started
Sep 14 13:26:27 wirenboard-AGH767IU wb-rules[3186]: INFO: [rule info] xxx
Sep 14 13:26:27 wirenboard-AGH767IU wb-rules[3186]: INFO: [rule info] add your rules to /etc/wb-rules/
Sep 14 13:26:27 wirenboard-AGH767IU wb-rules[3186]: INFO: all rule files are loaded
Sep 27 02:55:49 wirenboard-AGH767IU wb-rules[3470]: cat: /sys/class/hwmon/hwmon1/temp1_input: Resource temporarily unavailable

Онн вообще не участвует в процессе прошивки, никак.

Да, я ведь и не спорю о том, что у вас всё обновляется. у меня тоже было всё нормально, но вот сейчас нет. Как и что сделать? запускаю команду на обновления одного устройства она виснет в консоли пока её не выключишь командой ctrl +z. ну и всё… После этого правила висят, файл настроек не открывается до полной перезагрузки контроллера.

Открываю консоль ввожу команду wb-mcu-fw-updater update-fw /dev/ttyRS485-2 -a27 и всё. ничего не происходит… в консоли просто всё висит до ввода ctrl +z. Никаких сообщений об ошибке в консоли нет. там вообще ничего не происходит. Просто консоль статична. Я не могу объяснить ещё подробнее. Если намеренно сделать ошибку в команде например wb-mcu-fw-updater update-fw /dev /ttyRS4852 -a27, то выводятся сообщения об ошибках.

Запустите с debug выводом, для того чтобы получить больше информации.

wb-mcu-fw-updater update-fw /dev/ttyMOD1 -a27 -f --debug
2024-10-02 23:27:39,231 Will run: fuser /dev/ttyMOD1
^[[D2024-10-02 23:27:39,367 Clients of /dev/ttyMOD1: 1981
2024-10-02 23:27:39,370 Will run: ps -o cmd= 1981
2024-10-02 23:27:39,440 Will run: fuser -k -STOP /dev/ttyMOD1
2024-10-02 23:27:39,574 Reading /usr/lib/wb-release for releases info
2024-10-02 23:27:39,577 Got releases info:
2024-10-02 23:27:39,579 defaultdict(<function parse_releases.. at 0xb60d6c88>, {‘RELEASE_NAME’:
‘unstable.latest’, ‘SUITE’: ‘testing’, ‘TARGET’: ‘wb7/bullseye’, ‘REPO_PREFIX’: ‘’})
2024-10-02 23:27:39,581 GET: http://fw-releases.wirenboard.com/

А есть ли с контроллера доступ к http://fw-releases.wirenboard.com/?

http://fw-releases.wirenboard.com/
-bash: http://fw-releases.wirenboard.com/: No such file or directory

Я не понимаю… Что вы хотите показать сообщением?
Пожалуйста, проверьте доступность этого узла с контроллера.
Работа с контроллером - подразумевает базовые знания компьютера все ж.
Для проверки достаточно выполнить совершенно стандартное

wget http://fw-releases.wirenboard.com/ -O -

Ну или каким-либо удобным способом. Пытаться выполнить адрес в помощью sh - ну, непродуктивно как минимум.
Если знаний мало - то у нас есть интеграторы спосмссобные реадлизовать любые проекты.

и что я должен увидеть благодаря данной команде
wget http://fw-releases.wirenboard.com/ -O -
команда отрабатывает, но в консоль ничего не выводит!
Мне кажется не продуктивно давать рекомендации с точки зрения супер пользователя линукс систем! Ведь я обращаюсь в тех. поддержку не с той целью, чтобы меня ткнули носом в то, что я не знаю консольных команд, а с той, чтобы мне подсказали как и что сделать для нормальной работы оборудования! Я ничего не менял и не устанавливал дополнительно, а просто обновил контроллер по инструкции, затем хотел обновить устройства опять же тоже по инструкции. и нигде там не было написано о том, что если стандартная функция не работает нужно обращаться к интегратору! Это как минимум не клиенто ориентировано с вашей стороны. Я много читаю этот форум и вопросов от интеграторов никак не меньше, чем от обычных пользователей. И всё же хочу ещё раз попытаться спросить - что мне надо сделать, чтобы функция по обновлению прошивок устройств работала так как должна? Напишите, пожалуйста, мне по шагам что нужно сделать! Я сделаю и предоставлю вам результат!

Добрый вечер!
А интернет есть на контроллере?

Можете, пожалуйста выполнить команду: ping ya.ru ?

Также приложите, пожалуйста, диагностический архив.