Перестал работать модуль wbio-do-r10a8

Добрый вечер.

Перезагрузил контроллер и перестали работать все выходы реле у модуля wbio-do-r10a8.
Правила работают, даже контролы переключаются в web-интерфейсе и происходит изменение состояния если посмотреть в настройки или через команды MQTT в терминале. Физически нет тока на выходах реле. Можно ли предположить, что он не оживет больше? или что еще стоит посмотреть прежде чем выбрасывать?

была ранее подобная тема про тот же модуль, но там одно реле не отвечало:
ссылка на тему

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

Посмотреть можно, нет ли ошибок обмена с модулем:

dmesg | grep -i i2c

запущен ли сервис wb-homa-gpio:

ps aux | grep wb-homa-gpio

есть ли у него в конфиге эти выходы:

cat /etc/wb-homa-gpio.conf

или в веб-интерфейсе в Configs /etc/wb-homa-gpio.conf

Евгений, здравствуйте, и это даже при том, что все другие модули, подключённые по rs485, работают?

root@wirenboard-ARAXKJYF:~# dmesg | grep -i i2c
[ 1.080211] i2c /dev entries driver
root@wirenboard-ARAXKJYF:~# ps aux | grep wb-homa-gpio
root 3445 0.9 1.9 19700 2440 ? Sl Aug23 55:41 /usr/bin/wb-homa-gpio -c /etc/wb-homa-gpio.conf
root 27993 0.0 1.0 2040 1240 pts/2 S+ 09:02 0:00 grep wb-homa-gpio
root@wirenboard-ARAXKJYF:~# cat /etc/wb-homa-gpio.conf
{
“device_name”: “Discrete I/O”,
“channels”: [
{
“gpio”: 26,
“name”: “A1_OUT”,
“inverted”: false
},
{
“gpio”: 16,
“name”: “A2_OUT”,
“inverted”: false
},
{
“gpio”: 24,
“name”: “A3_OUT”,
“inverted”: false
},
{
“gpio”: 20,
“name”: “A4_OUT”,
“inverted”: false
},
{
“gpio”: 6,
“name”: “A1_IN”,
“inverted”: true,
“direction”: “input”
},
{
“gpio”: 7,
“name”: “A2_IN”,
“inverted”: true,
“direction”: “input”
},
{
“gpio”: 28,
“name”: “A3_IN”,
“inverted”: true,
“direction”: “input”
},
{
“gpio”: 27,
“name”: “A4_IN”,
“inverted”: true,
“direction”: “input”
},
{
“gpio”: 5,
“name”: “R1_IN”,
“inverted”: true,
“direction”: “input”
},
{
“gpio”: 57,
“name”: “BATTERY_PRESENT”,
“inverted”: true,
“direction”: “input”
},
{
“gpio”: 126,
“name”: “BATTERY_CHARGING”,
“inverted”: true,
“direction”: “input”
},
{
“gpio”: 78,
“name”: “5V_OUT”,
“direction”: “output”,
“initial_state”: true
},
{
“name”: “EXT1_R3A1”,
“gpio”: 160,
“direction”: “output”
},
{
“name”: “EXT1_R3A2”,
“gpio”: 161,
“direction”: “output”
},
{
“name”: “EXT1_R3A3”,
“gpio”: 162,
“direction”: “output”
},
{
“name”: “EXT1_R3A4”,
“gpio”: 163,
“direction”: “output”
},
{
“name”: “EXT1_R3A5”,
“gpio”: 164,
“direction”: “output”
},
{
“name”: “EXT1_R3A6”,
“gpio”: 165,
“direction”: “output”
},
{
“name”: “EXT1_R3A7”,
“gpio”: 166,
“direction”: “output”
},
{
“name”: “EXT1_R3A8”,
“gpio”: 167,
“direction”: “output”
}
]
}
root@wirenboard-ARAXKJYF:

конечно, ведь другие модули подключены по RS-485, а R10A8 - нет. Там другие драйвера совершенно за него отвечают.

Покажите мне ещё вывод

mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/gpio

и фотографию контроллера с подключенными моделями.

Щелчок реле при переключении вы слышите?

Вроде так. Первая команда ничего не ответила. Все верно?

root@wirenboard-ARAXKJYF:~# mount -t debugfs none /sys/kernel/debug
root@wirenboard-ARAXKJYF:~# cat /sys/kernel/debug/gpio
GPIOs 0-31, platform/80018000.pinctrl:gpio@0, 80018000.pinctrl:gpio@0:
gpio-0 (80000000.apbh:ssp1gp) in lo
gpio-2 (sysfs ) out lo
gpio-3 (spi32766.0 ) out hi
gpio-5 (sysfs ) in lo IRQ
gpio-6 (sysfs ) in hi IRQ
gpio-7 (sysfs ) in hi IRQ
gpio-16 (sysfs ) out lo
gpio-17 (sysfs ) out hi
gpio-20 (sysfs ) out lo
gpio-21 (80000000.apbh:ssp1gp) out lo
gpio-24 (sysfs ) out lo
gpio-25 (80000000.apbh:ssp1gp) out lo
gpio-26 (sysfs ) out lo
gpio-27 (sysfs ) in hi IRQ
gpio-28 (sysfs ) in hi IRQ

GPIOs 32-63, platform/80018000.pinctrl:gpio@1, 80018000.pinctrl:gpio@1:
gpio-37 (lirc-rx ) in lo
gpio-38 (sysfs ) in lo
gpio-39 (sysfs ) in hi
gpio-56 (usb0_vbus ) out hi
gpio-57 (sysfs ) in hi IRQ

GPIOs 64-95, platform/80018000.pinctrl:gpio@2, 80018000.pinctrl:gpio@2:
gpio-76 (watchdog ) out lo
gpio-77 (w1 ) in hi
gpio-78 (sysfs ) out hi
gpio-79 (w1 strong pullup ) out lo

GPIOs 96-127, platform/80018000.pinctrl:gpio@3, 80018000.pinctrl:gpio@3:
gpio-116 (usb1_vbus ) out lo
gpio-119 (? ) in hi
gpio-122 (? ) out lo
gpio-126 (sysfs ) in hi IRQ

GPIOs 128-159, platform/80018000.pinctrl:gpio@4, 80018000.pinctrl:gpio@4:
gpio-141 (phy-reset ) out hi

Щелчка нет.

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

мой 
код

image

[   51.192425] Invalid device tree blob header
[   51.196781] create_overlay: failed to unflatten tree
[   57.025410] Invalid device tree blob header
[   57.029636] create_overlay: failed to unflatten tree
[   63.112890] Invalid device tree blob header
[   63.117234] create_overlay: failed to unflatten tree
[   69.416498] Invalid device tree blob header
[   69.420726] create_overlay: failed to unflatten tree

Боюсь, это конфликт древней версии ядра и нового device-tree-compiler, который мы не отследили на уровне зависимостей. К сожалению, у нас сейчас нет ресурсов, чтобы поддерживать совместимость разных кусков ПО из 2017 и из 2020 годов, поэтому вряд ли в ближайшее время у нас получится воспроизвести или исправить эту проблему.

Вам я рекомендую:

  • Сделать резервную копию файлов и настроек, а после этого обновить ПО через USB целиком на самую свежую версию, с удалением всех данных с контроллера
  • Если по каким-то причинам вы это не хотите сделать, то откатывать пакеты на старые версии, пока не заработает. Начать с device-tree-compiler и wb-hwconf-manager

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

1 лайк

Переживаю, что все пройдёт гладко - поэтому задам некоторые вопросы перед началом.

  1. Инструкция для wb5.8 эта?
    [https://wirenboard.com/wiki/Wiren_Board_5:_Восстановление_прошивки]

  2. Я верно выбрал файл обновления для своей версии 201707241303?

  3. Мне надо действительно снимать контроллер с шины, отсоединить все и вскрыть корпус?

  1. Определите тип процессорного модуля: обычный или индустриальный. Для этого посмотрите маркировку чипа памяти на плате процессорного модуля:
  • обычная версия: SanDisk,
  • индустриальная версия: 6VA18JW983.
  1. После восстановления какие команды следом надо выполнить?

  2. Сохранённые файлы заливать назад можно поверх целиком С папками или это опасно ?

Для верси 5.8 - 202002171655_webupd_wb58_stretch.fit

Вообще на наклейке может быть указано. Но вообще - желательно проверить.

Контроллер практически чист, настроить сеть и настроить модули.

Скрипты пользовательские - можно и папкой. Оборудование - лучше настроить руками.

1 лайк

Спасибо за разъяснения. Ещё уточню один момент: надо все полностью удалить с контроллера или при обновлении эта процедура предусмотрена вами?

При прошивке все и так будет удалено. Поэтому бэкап всего нужного - обязателен.

У меня Mac OS. Как поступить с файлом mxsldr? *.bin я так понимаю, не подойдет?
sudo chmod +x mxsldr не выполняется

Проще всего с флешки запустить какой-нибудь live-linux, думаю.

:flushed::tired_face: это еще как? я без инструкции утону. Мне срочно надо обновить прошивку. у меня ничего кроме RS485 на контроллере не работает. 0-10В молчат и отопление отключено из-за этого.

Если проще windows, то могу комп с пыльной полки притащить к контроллеру
мне срочно надо помочь, пока не стемнело. я без света еще ко всему. Он тоже от контроллера не фурычит. На обновляли до того, что все сломали

Можно и Windows/
Вот тут архив с программой.

Тут тоже на флешку предлагают заливать. Я не пойму сути обновления. Чего надо добиться всеми утилитами

Сам принцип обновления таков: С помошью программы mxsldr мы загружаем непосредственнов в процессор контроллера “программу” wb5_usbfw.sb, которая выполняясь на нем дает доступ к внутреннему накопителю как к флешке. То есть внутренний диск доступен целиком. И мы на него записываем “образ”, прямо с таблицей разделов и содержимым.