Ошибка при обновлении прошивки WB-MAI6, но прошивка встает

пока не началась установка устройств, обновляю прошивки. На RS485-1 только одно устройство, WB-MAI6, связь с ним есть, работает корректно.

Запустил обновление, получил вот такую ошибку:

root@wirenboard-A74U7X7Q:~# wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a43
2024-01-31 00:04:05,327 Will find serial port settings for (/dev/ttyRS485-1 : 43; response_timeout: 0.20)...
2024-01-31 00:04:12,559 Has found serial port settings: {'baudrate': 115200, 'parity': 'N', 'stopbits': 2}
2024-01-31 00:04:18,171 fw (wb-mai6-15 43 on /dev/ttyRS485-1):
2024-01-31 00:04:18,172 Update: 2.0.6 -> 2.0.7 (wb-mai6-15 43 /dev/ttyRS485-1)
2024-01-31 00:04:22,513 Flashing /var/lib/wb-mcu-fw-updater/wb-mai6-15__2.0.7_main_ac58f00.wbfw
100%|###################################################################################################|276/276
2024-01-31 00:05:34,982 Flashing fw to (/dev/ttyRS485-1 43; response_timeout: 0.20s) has failed!
2024-01-31 00:05:34,985 

При этом прошивка обновилась, но ошибка смущает. Запустил принудительно обновление, вот результаты с дебагом. Прошу помочь. Спасибо.

root@wirenboard-A74U7X7Q:~# wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a43 --force --debug
2024-01-31 00:12:54,376 Will run: fuser /dev/ttyRS485-1
2024-01-31 00:12:54,500 Clients of /dev/ttyRS485-1: 22955
2024-01-31 00:12:54,501 Will run: ps -o cmd= 22955
2024-01-31 00:12:54,568 Will run: fuser -k -STOP /dev/ttyRS485-1
2024-01-31 00:12:54,730 Reading /usr/lib/wb-release for releases info
2024-01-31 00:12:54,732 Got releases info:
2024-01-31 00:12:54,733 	defaultdict(<function parse_releases.<locals>.<lambda> at 0xb5deec40>, {'RELEASE_NAME': 'wb-2401', 'SUITE': 'stable', 'TARGET': 'wb7/bullseye', 'REPO_PREFIX': ''})
2024-01-31 00:12:54,734 GET: http://fw-releases.wirenboard.com/
2024-01-31 00:12:56,824 Set {'baudrate': 9600, 'parity': 'N', 'stopbits': 2} to /dev/ttyRS485-1
2024-01-31 00:12:56,825 /dev/ttyRS485-1 response_timeout -> 0.20
2024-01-31 00:12:56,826 Set {'baudrate': 9600, 'parity': 'N', 'stopbits': 2} to /dev/ttyRS485-1
2024-01-31 00:12:56,827 /dev/ttyRS485-1 response_timeout -> 0.20
2024-01-31 00:12:56,828 Will find serial port settings for (/dev/ttyRS485-1 : 43; response_timeout: 0.20)...
2024-01-31 00:12:57,033 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 1/5): No communication with the instrument (no answer)
2024-01-31 00:12:57,239 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 2/5): No communication with the instrument (no answer)
2024-01-31 00:12:57,443 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 3/5): No communication with the instrument (no answer)
2024-01-31 00:12:57,647 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 4/5): No communication with the instrument (no answer)
2024-01-31 00:12:57,851 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 5/5): No communication with the instrument (no answer)
2024-01-31 00:12:57,852 Trying serial port settings: (9600, 'N', 2)
2024-01-31 00:12:57,853 Set {'baudrate': 9600, 'parity': 'N', 'stopbits': 2} to /dev/ttyRS485-1
2024-01-31 00:12:58,056 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 1/5): No communication with the instrument (no answer)
2024-01-31 00:12:58,260 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 2/5): No communication with the instrument (no answer)
2024-01-31 00:12:58,464 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 3/5): No communication with the instrument (no answer)
2024-01-31 00:12:58,668 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 4/5): No communication with the instrument (no answer)
2024-01-31 00:12:58,872 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 5/5): No communication with the instrument (no answer)
2024-01-31 00:12:58,873 Trying serial port settings: (9600, 'N', 1)
2024-01-31 00:12:58,874 Set {'baudrate': 9600, 'parity': 'N', 'stopbits': 1} to /dev/ttyRS485-1
2024-01-31 00:12:59,077 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 1/5): No communication with the instrument (no answer)
2024-01-31 00:12:59,281 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 2/5): No communication with the instrument (no answer)
2024-01-31 00:12:59,484 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 3/5): No communication with the instrument (no answer)
2024-01-31 00:12:59,688 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 4/5): No communication with the instrument (no answer)
2024-01-31 00:12:59,891 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 5/5): No communication with the instrument (no answer)
2024-01-31 00:12:59,892 Trying serial port settings: (9600, 'O', 2)
2024-01-31 00:12:59,893 Set {'baudrate': 9600, 'parity': 'O', 'stopbits': 2} to /dev/ttyRS485-1
2024-01-31 00:13:00,097 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 1/5): No communication with the instrument (no answer)
2024-01-31 00:13:00,300 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 2/5): No communication with the instrument (no answer)
2024-01-31 00:13:00,503 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 3/5): No communication with the instrument (no answer)
2024-01-31 00:13:00,707 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 4/5): No communication with the instrument (no answer)
2024-01-31 00:13:00,910 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 5/5): No communication with the instrument (no answer)
2024-01-31 00:13:00,911 Trying serial port settings: (9600, 'O', 1)
2024-01-31 00:13:00,912 Set {'baudrate': 9600, 'parity': 'O', 'stopbits': 1} to /dev/ttyRS485-1
2024-01-31 00:13:01,115 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 1/5): No communication with the instrument (no answer)
2024-01-31 00:13:01,318 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 2/5): No communication with the instrument (no answer)
2024-01-31 00:13:01,522 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 3/5): No communication with the instrument (no answer)
2024-01-31 00:13:01,730 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 4/5): No communication with the instrument (no answer)
2024-01-31 00:13:01,934 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 5/5): No communication with the instrument (no answer)
2024-01-31 00:13:01,935 Trying serial port settings: (9600, 'E', 2)
2024-01-31 00:13:01,937 Set {'baudrate': 9600, 'parity': 'E', 'stopbits': 2} to /dev/ttyRS485-1
2024-01-31 00:13:02,140 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 1/5): No communication with the instrument (no answer)
2024-01-31 00:13:02,344 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 2/5): No communication with the instrument (no answer)
2024-01-31 00:13:02,547 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 3/5): No communication with the instrument (no answer)
2024-01-31 00:13:02,750 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 4/5): No communication with the instrument (no answer)
2024-01-31 00:13:02,954 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 5/5): No communication with the instrument (no answer)
2024-01-31 00:13:02,955 Trying serial port settings: (9600, 'E', 1)
2024-01-31 00:13:02,955 Set {'baudrate': 9600, 'parity': 'E', 'stopbits': 1} to /dev/ttyRS485-1
2024-01-31 00:13:03,159 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 1/5): No communication with the instrument (no answer)
2024-01-31 00:13:03,362 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 2/5): No communication with the instrument (no answer)
2024-01-31 00:13:03,565 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 3/5): No communication with the instrument (no answer)
2024-01-31 00:13:03,768 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 4/5): No communication with the instrument (no answer)
2024-01-31 00:13:03,972 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5268>, 128) not succeed (try 5/5): No communication with the instrument (no answer)
2024-01-31 00:13:03,972 Trying serial port settings: (115200, 'N', 2)
2024-01-31 00:13:03,974 Set {'baudrate': 115200, 'parity': 'N', 'stopbits': 2} to /dev/ttyRS485-1
2024-01-31 00:13:04,078 Has found serial port settings: {'baudrate': 115200, 'parity': 'N', 'stopbits': 2}
2024-01-31 00:13:04,392 /dev/ttyRS485-1 43:
2024-01-31 00:13:04,706 	WBMAI6 161710 wb-mai6-15 2.0.7 149
2024-01-31 00:13:04,811 Removing device: {'slaveid': 43, 'port': '/dev/ttyRS485-1', 'fw_signature': 'wb-mai6-15'}
2024-01-31 00:13:04,917 FW releases files: ['http://fw-releases.wirenboard.com/fw/by-signature/release-versions.yaml']
2024-01-31 00:13:04,918 Looking to http://fw-releases.wirenboard.com/fw/by-signature/release-versions.yaml (suite: stable)
2024-01-31 00:13:04,919 GET: http://fw-releases.wirenboard.com/fw/by-signature/release-versions.yaml
2024-01-31 00:13:07,130 FW version for wb-mai6-15 on release stable: 2.0.7 (endpoint: fw/by-signature/wb-mai6-15/main/2.0.7.wbfw)
2024-01-31 00:13:07,131 GET: http://fw-releases.wirenboard.com/fw/by-signature/wb-mai6-15/main/2.0.7.wbfw
2024-01-31 00:13:08,022 Trying to get fname from content-disposition
2024-01-31 00:13:08,023 Got fname: wb-mai6-15__2.0.7_main_ac58f00.wbfw
2024-01-31 00:13:08,024 http://fw-releases.wirenboard.com/fw/by-signature/wb-mai6-15/main/2.0.7.wbfw => /var/lib/wb-mcu-fw-updater/wb-mai6-15__2.0.7_main_ac58f00.wbfw
2024-01-31 00:13:08,027 fw (wb-mai6-15 43 on /dev/ttyRS485-1):
2024-01-31 00:13:08,029 Force update: 2.0.7 -> 2.0.7 (wb-mai6-15 43 /dev/ttyRS485-1)
2024-01-31 00:13:08,135 Flashing approved for "wb-mai6-15" (/dev/ttyRS485-1 : 43)
2024-01-31 00:13:08,344 Bootloader uses port settings set in firmware
2024-01-31 00:13:09,049 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5a30>, 128) not succeed (try 1/5): No communication with the instrument (no answer)
2024-01-31 00:13:09,252 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5a30>, 128) not succeed (try 2/5): No communication with the instrument (no answer)
2024-01-31 00:13:09,455 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5a30>, 128) not succeed (try 3/5): No communication with the instrument (no answer)
2024-01-31 00:13:09,660 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5a30>, 128) not succeed (try 4/5): No communication with the instrument (no answer)
2024-01-31 00:13:09,870 f = read_u16(<wb_modbus.bindings.WBModbusDeviceBase object at 0xb5df5a30>, 128) not succeed (try 5/5): No communication with the instrument (no answer)
2024-01-31 00:13:09,872 Set {'baudrate': 115200, 'parity': 'N', 'stopbits': 2} to /dev/ttyRS485-1
2024-01-31 00:13:09,872 /dev/ttyRS485-1 response_timeout -> 0.20
2024-01-31 00:13:09,873 /dev/ttyRS485-1 response_timeout -> 5.00
2024-01-31 00:13:11,929 Flashing /var/lib/wb-mcu-fw-updater/wb-mai6-15__2.0.7_main_ac58f00.wbfw
2024-01-31 00:13:11,933 /dev/ttyRS485-1 response_timeout -> 6.00
2024-01-31 00:13:12,745 /dev/ttyRS485-1 response_timeout -> 5.00
100%|###################################################################################################|276/276
2024-01-31 00:13:45,465 GET: http://fw-releases.wirenboard.com/bootloader/by-signature/wb-mai6-15/main/latest.txt
2024-01-31 00:13:48,819 Flashing fw to (/dev/ttyRS485-1 43; response_timeout: 0.20s) has failed!
2024-01-31 00:13:48,821 
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/fw_downloader.py", line 47, in read_remote_file
    ret = get_request(url_path)
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/fw_downloader.py", line 42, in get_request
    raise WBRemoteStorageError(url_path)
wb_mcu_fw_updater.fw_downloader.WBRemoteStorageError: http://fw-releases.wirenboard.com/bootloader/by-signature/wb-mai6-15/main/latest.txt

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/bin/wb-mcu-fw-updater", line 90, in _update_alive_device
    update_monitor.flash_alive_device(modbus_connection, mode, branch, version, force, erase_settings)
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py", line 581, in flash_alive_device
    if mode == MODE_FW and not is_bootloader_latest(modbus_connection):
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py", line 456, in is_bootloader_latest
    remote_version = fw_downloader.RemoteFileWatcher(mode=MODE_BOOTLOADER).get_latest_version_number(fw_sig)
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/fw_downloader.py", line 140, in get_latest_version_number
    return read_remote_file(url_path)
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/fw_downloader.py", line 50, in read_remote_file
    six.raise_from(RemoteFileReadingError, e)
  File "<string>", line 3, in raise_from
wb_mcu_fw_updater.fw_downloader.RemoteFileReadingError
2024-01-31 00:13:48,832 Has saved db to /var/lib/wb-mcu-fw-updater/devices.jsondb
2024-01-31 00:13:48,835 Will run: fuser -k -CONT /dev/ttyRS485-1

Добрый день.
Пришлите диагностический архив. Укажите ревизию контроллера и версию ПО.
Укажите серийный номер модуля WB-MAI6. По логу видно, что прошивка обновилась.
По самой ошибке пока что не подскажу. Обращусь к разработчикам. Далее сообщим о результате.

Также я бы порекомендовал попробовать еще раз обновиться с флагом debug и сообщить о результате.

От разработчиков пришел ответ, что в ближайшее время выйдет обновление для загрузчика и данная ошибка отпадет. По сути все верно, сама прошивка у вас обновилась. Постараюсь вам написать, когда проблема будет исправлена.

Добрый день!

@mikhail.burchu

Пишу в этой теме, чтобы не создавать новую такую же.

Собрал стенд из новых компонентов (от 13.02.2024, WB7.4 + MAI6 + M1W2 + MSW4).

При запуске обновления прошивок всех устройств возникает такая же ошибка.
Если отключить MAI6 от шины, то обновление прошивки всех устройств проходит успешно.
Если запустить команду обновления отдельно для MAI6, то возникает ошибка.

Насколько я вижу, 14 февраля появилась новая весрия прошивки 2.0.8 для MAI6:
https://fw-releases.wirenboard.com/?prefix=fw/by-signature/wb-mai6-15/main/

я буквально пару дней назад готовил такой же модуль, та же ошибка. Видимо в стейбл исправление не добавляли

Добрый день.
Если не ошибаюсь, если у вас модуль с сигнатурой wb-mai6-15, то вам необходимо подождать новой версии загрузчика (старше 1.3.0).

Подскажите, пожалуйста, когда ориентировочно планируется выпуск новой версии загрузчика (чтобы запускать каждые два дня команду обновления прошивки)?

Добрый день.
Коллеги сообщили, что появился релиз загрузчика для wb-mai6-15. Можете обновляться.

1 Like