Проблема с счетчиком WBIO-DI-WD-14


#1

Не могу справиться с проблемой, связанной с подключением WBIO-DI-WD-14
Конфигурация системы такая:
B6 / R1G-16 / R1G-16 / WD-14 / SSR-8
WB-MIO / HVD-16 / HVD-16
WB-MAP3H

При добавлении WD-14 и настройке счетчиков (6 счетчиков воды, 1 счетчик теплоэнергии, 1 счетчик расхода теплоносителя, 3 “сухих контакта”),
падает wb-homa-gpio и перестают считать счетчики через некоторое время, перестают работать виртуальные устройства.
При перезагрузке WB6 уходит на 10-15 минут, в логах :

Показать начало цитаты

[ 735.591901] [] (vfs_write) from [] (SyS_write+0x3c/0x90)
[ 735.598980] [] (SyS_write) from [] (ret_fast_syscall+0x0/0x3c)
[ 858.089648] INFO: task cat:1074 blocked for more than 120 seconds.
[ 858.095901] Tainted: G C 4.9.22-wb6 #2
[ 858.101382] “echo 0 > /proc/sys/kernel/hung_task_timeout_secs” disables this message.
[ 858.109229] cat D 0 1074 790 0x00000000
[ 858.114805] [] (__schedule) from [] (schedule+0x48/0xa0)
[ 858.121912] [] (schedule) from [] (schedule_preempt_disabled+0xc/0x10)
[ 858.130295] [] (schedule_preempt_disabled) from [] (__mutex_lock_slowpath+0xa0/0x154)
[ 858.139917] [] (__mutex_lock_slowpath) from [] (mutex_lock+0x54/0x58)
[ 858.148120] [] (mutex_lock) from [] (irq_find_matching_fwspec+0x20/0x110)
[ 858.156695] [] (irq_find_matching_fwspec) from [] (of_irq_get+0x48/0x68)
[ 858.165176] [] (of_irq_get) from [] (i2c_device_probe+0x1e8/0x204)
[ 858.173133] [] (i2c_device_probe) from [] (driver_probe_device+0x1fc/0x2b0)
[ 858.181867] [] (driver_probe_device) from [] (bus_for_each_drv+0x64/0x98)
[ 858.190443] [] (bus_for_each_drv) from [] (__device_attach+0xac/0x114)
[ 858.198720] [] (__device_attach) from [] (bus_probe_device+0x84/0x8c)
[ 858.206934] [] (bus_probe_device) from [] (device_add+0x3c8/0x578)
[ 858.214890] [] (device_add) from [] (i2c_new_device+0x134/0x190)
[ 858.222671] [] (i2c_new_device) from [] (of_i2c_register_device+0xec/0x18c)
[ 858.231426] [] (of_i2c_register_device) from [] (of_i2c_notify+0xa0/0x104)
[ 858.240079] [] (of_i2c_notify) from [] (notifier_call_chain+0x44/0x80)
[ 858.248380] [] (notifier_call_chain) from [] (__blocking_notifier_call_chain+0x48/0x60)
[ 858.258163] [] (__blocking_notifier_call_chain) from [] (blocking_notifier_call_chain+0x18/0x20)
[ 858.268720] [] (blocking_notifier_call_chain) from [] (__of_changeset_entry_notify+0x80/0xd0)
[ 858.279029] [] (__of_changeset_entry_notify) from [] (__of_changeset_apply+0x58/0xc0)
[ 858.288637] [] (__of_changeset_apply) from [] (__of_overlay_create+0x628/0x8d4)
[ 858.297715] [] (__of_overlay_create) from [] (create_overlay+0x48/0xa4)
[ 858.306137] [] (create_overlay) from [] (cfs_overlay_item_dtbo_write+0x54/0x98)
[ 858.315244] [] (cfs_overlay_item_dtbo_write) from [] (configfs_release_bin_file+0x5c/0x94)
[ 858.325291] [] (configfs_release_bin_file) from [] (__fput+0x88/0x1cc)
[ 858.333594] [] (__fput) from [] (task_work_run+0xc0/0xe4)
[ 858.340770] [] (task_work_run) from [] (do_work_pending+0x80/0xa8)
[ 858.348702] [] (do_work_pending) from [] (slow_work_pending+0xc/0x20)
[ 858.356938] INFO: task wb-homa-gpio:3109 blocked for more than 120 seconds.
[ 858.363932] Tainted: G C 4.9.22-wb6 #2
[ 858.369334] “echo 0 > /proc/sys/kernel/hung_task_timeout_secs” disables this message.
[ 858.377189] wb-homa-gpio D 0 3109 1 0x00000000
[ 858.382733] [] (__schedule) from [] (schedule+0x48/0xa0)
[ 858.389815] [] (schedule) from [] (schedule_preempt_disabled+0xc/0x10)
[ 858.398093] [] (schedule_preempt_disabled) from [] (__mutex_lock_slowpath+0xa0/0x154)
[ 858.407693] [] (__mutex_lock_slowpath) from [] (mutex_lock+0x54/0x58)
[ 858.415926] [] (mutex_lock) from [] (mcp23s08_direction_output+0x28/0x8c [gpio_mcp23s08])
[ 858.425890] [] (mcp23s08_direction_output [gpio_mcp23s08]) from [] (_gpiod_direction_output_raw+0x8c/0x1a4)
[ 858.437433] [] (_gpiod_direction_output_raw) from [] (direction_store+0x78/0xd8)
[ 858.446614] [] (direction_store) from [] (kernfs_fop_write+0xec/0x1ec)
[ 858.454922] [] (kernfs_fop_write) from [] (__vfs_write+0x1c/0x114)
[ 858.462879] [] (__vfs_write) from [] (vfs_write+0xa0/0x1b0)
[ 858.470219] [] (vfs_write) from [] (SyS_write+0x3c/0x90)
[ 858.477279] [] (SyS_write) from [] (ret_fast_syscall+0x0/0x3c)

Еще при прозвоне контактов WD-14 iGND - 1…14, 10й контакт не прозванивается…


#2

Добрый день!

Уточните, пожалуйста:

  1. Если не добавлять WBIO-DI-WD-14, всё работает?
  2. Проблема возникает сразу:
    – сразу после физического подключения WBIO-DI-WD-14,
    – после добавления модуля WBIO-DI-WD-14 в веб-интерфейсе,
    – или ещё через некоторое (какое?) время?

#3
  1. Всё работает.
  2. Проблема возникает
    • либо сразу после добавления WD-14 в веб-интерфейсе
    • либо через какое-то время, после того, как настроить счетчики. По времени отследить не удается.

#4

Пока не понимаю, как нам это воспроизвести.
Ещё один момент уточните: если физически подключить WBIO-DI-WD-14, но в интерфейсе его не выбирать и никак не настраивать (то есть в интерфейсе его как будто нет), то проблема случается?


#5

Для того, чтобы система восстановилась, необходимо в веб-интерфейсе убрать устройство. При это с первого раза это не получается - пишет ошибку MQTT rpc error. Потом выключить WB и физически отключить wd-14. После этого все запускается нормально и можно заново всё подключать. До очередной какой-то ошибки, после чего перестаёт работать wb-homa-gpio и WB перезагружается по 20 минут


#6

На мой вопрос ответьте, пожалуйста:


#7

На Ваш вопрос ответ повторяется:
После настройки счетчиков в WBIO-DI-WD-14 все работает нормально до первого ребута (выявлено теперь)
После этого wb-homa-gpio перестает работать.
Если убрать WBIO-DI-WD-14 из конфига, то ничего не изменится - всё так же не будет работать.
После того, как отключить WBIO-DI-WD-14 физически, перезагрузить WB6, и подключить WBIO-DI-WD-14 физически, не настраивая в конфиге, все работает.
И по кругу повторю еще раз: после настройки счетчиков в gpio configs все работет до первого ребута.


#8

Добрый день! Что-нибудь сможете добавить по данной проблеме?


#9

Добрый день!
Пока ничего, к сожалению.