Началось все с того, что WB5 начал терять историю датчиков старше нескольких часов.
Сначала я попробовал сделать apt-get update & apt-get upgrade
После этого блок реле MR11 начал щелкать реле без видимых причин
После этого я попробовал сделать apt-get dist-upgrade и собрал все проблемы по полной
MAC адрес устройства сменился на 00:04:00:00:00:00 (сменился IP адрес)
WB перестал слушать порты http, ssh и др. Почему-то слушает только порты ser2net и моего сервиса.
Позже попробую подключить консоль и разобраться, но пока непонятно почему после штатных вариантов обновления устройство почти умерло…
А вывод apt-get есть? Вы точно не могли случайно согласиться на предложение apt-get upgrade снести пол-системы?
Почему полсистемы?
dist-upgrade всю систему снес… Как минимум, ядро, nginx и много чего еще…
Я ступил и не сохранил вывод…
Вообще на всех других железках типа rpi, десктопных линуксах upgrade вполне безопасная операция… Максимум, что может снести при невнимательности - конфиги…
dist-upgrade я стал делать скорее от безысходности, т.к. блок реле щелкал непрерывно после upgrade… Перестал щелкать только после остановки wb-mqtt-serial, но без modbus совсем сложно (
Сейчас вопрос скорее в том, как это лечить. Есть ли варианты менее болезненные, чем перезаливка прошивки через USB?
Т.к. часть сервисов запустилась, то скорее всего получится подключиться к консоли.
Почему мог слететь MAC-адрес и не запуститься sshd?
apt-get - это интерактивная команда. Он каждый раз подробно пишет вам то, что будет делать, предлагает прочитать и согласиться с этим. Без нажатия на “y” ничего произойти не может, и с этой точки зрения операция совершенно безопасна.
Если подключитесь к консоли, то поднимать сеть, потом ставить пакеты обратно.
Если нет, то через mxsldr (USB) подключать внутренний накопитель к компьютеру, вытаскивать оттуда нужные файлы (/home, /etc, возможно у вас что-то ещё), потом копировать обратно после перезаливки прошивки. Обратите внимание, что большинство пользовательских данных лежат в разделе data, а не rootfs.
Вопрос был ровно один: есть пачка пакетов, которые нужно обновить и несколько пакетов, которые нужно снести… Никаких вопросов по ходу обновления не задавалось (типа перетирания конфигураций и т.п.)
Сеть-то как бы есть… nmap даже видит некоторое кол-во открытых портов (2000/2001 это ser2net, 8888 мой сервис, зачем на WB DNS неочевидно, остальные порты мне неизвестны.
PORT STATE SERVICE
53/tcp open domain
2000/tcp open cisco-sccp
2001/tcp open dc
3000/tcp open ppp
3001/tcp open nessus
3333/tcp open dec-notes
8888/tcp open sun-answerbook
Видимо попробую сохранить данные и переустановиться. Вопрос, можно ли из консоли произвести заливку прошивки, как через web-интерфейс? При такой заливке вроде бы должны сохраниться почти все данные, а ядро и пакеты вернуться к живому состоянию?
Это он и есть. Не “нужно снести”, а “предлагает снести.”
Вот ему показалось, что если полсистемы снести, а остальную половину обновить, то результат получится новее, чем было. У вас всегда есть право отказаться и предложить apt-get-у другое решение.
Наверное расставлением каких-нибудь флажочков в пакетах или ещё какими-то костылями можно сделать так, что apt перестанет предлагать дурацкие варанты, но пока у нас на эту задачу приоритет низкий.
wb-run-update <файл>
Может быть есть какой-то рекомендуемый регламент обновления?
Например, для rpi есть отличный скрипт rpi-update, он сам что-то качает, что-то обновляет (вернее обновляет ядро до актуального). Может быть есть возможность поддерживать аналогичный файл со списком пакетов, которые можно/нужно обновлять?
Проблема простая:
- Возникла некоторая проблема (у меня это была потеря истории состояний устройств)
- Я помню, что на форуме уже обсуждалась тема и вроде даже была решена
- Вроде логичный первый шаг - обновиться до актуального состояния, но теперь непонятно как это сделать…
P.S. А еще регулярно случаются критичные обновления безопасности и их бы тоже желательно ставить… Тоже непонятно как…
Происходит что-то странное.
-
В консоли нет приглашения для логина. Процесс загрузки заканчивается на
[....] Starting OpenBSD Secure Shell server: sshd/etc/ssh/sshd_config: No such file or directory failed! [ ok ] Starting MQTT Driver for ADC: wb-homa-adc. [ ok ] Starting MQTT Driver for GPIO-controlled switches: wb-homa-gpio. [ ok ] Starting RFSniffer - MQTT RFM69 Driver : wb-homa-rfsniffer. [ ok ] Starting board-specific initscript: wb-init. [ ok ] Starting WB LIRC driver: wb-mqtt-lirc. [ ok ] Starting Firmware update monitor: wb-watch-update. [....] Starting watchdog keepalive daemon...wd_keepalive: no watchdog device configured, aborting . ok Timeout reached while wating for return value Could not receive return value from daemon process. (warning). [ ok ] Stopping watchdog keepalive daemon.... [ ok ] Starting watchdog daemon.... [ 232.835236] lirc_pwm lirc-rfm69: Value on the pin #37 hasn't been changed! (wtf?) value=0, last=211169570, now=232715560, delta=21545990
-
sshd не запускается с ошибкой, что нет конфига sshd/etc/ssh/sshd_config: No such file or directory
-
Есть еще куча ошибок о не найденных файлах:
/etc/init.d/wb-hwconf-manager: line 23: /usr/share/wb-hwconf-manager/functions.sh: No such file or directory
-
Попытка получить консоль как описано в теме про сброс рутового пароля тоже не работает. WB после
run bootcmd
уходит на перезагрузку
Есть еще какие-то варианты, кроме перезаливки по USB?
да, ерунда какая-то.
Можете взять линукс, подключить девайс по USB как накопитель, дальше сделать ./chroot_this.sh и попробовать позапускать
dpkg --configure -a
и apt-get
В итоге я сделал backup всего emmc и перезалил в него прошивку из 201610251522_emmc_wb5.img.zip. WB грузится, осталось настроить то, что когда-то работало…
В первом приближении выглядит так, что второй рутовый раздел похож на чуть менее разложившийся труп линукса. Но ни в одном из них нет /etc/sshd, например. Раздел от /mnt/data содержит только Lost&Found, т.е. девственно чист.
Разделы из имиджа успешно монтируются. Если они вам чем-то могут быть полезны - поделюсь. Попытаюсь из них спасти что-то полезное, но в итоге решил тупо поднять все с нуля.
Обнаружил при загрузке (после перезаливки прошивки через USB):
[ 46.860088] EXT4-fs (mmcblk0p3): VFS: Can't find ext4 filesystem
[ 46.867689] EXT4-fs (mmcblk0p3): VFS: Can't find ext4 filesystem
[ 46.878021] EXT4-fs (mmcblk0p3): VFS: Can't find ext4 filesystem
mount: you must specify the filesystem type
[....] Alternative rootfs is unusable, disabling rootfs switching ...e[?25le[?1ce7e[1G[e[33mwarne[39;49me8e[?25he[?0c e[33m(warning).e[39;49m
e
Итак, я вернулся к тому, с чего все началось: MR11 нещадно щелкает реле, правил в движке нет совсем, mqtt-сообщений, относящихся к топику MR11 нет совсем.
Куда копать?
так и должно быть
Что ещё на линии RS-485?
На линии WB-MR11 и WB-MRGB.
Оба “черные” в веб интерфейсе. Если выключить становятся красными. Обновление напряжение приходит нормально.
/devices/wb-mr11_196/controls/Supply voltage 11.417
Если остановить wb-mqtt-serial - щелкать прекращает.
- Если отключить в конфиге WB-MRGB. Щелкать перестает.
- Если оставить на линии только WB + WB-MR11 (стоят рядом в щитке), но оставить включенным WB-MRGB - продолжает щелкать.
Для WB-MRGB у меня стоит кастомный конфиг, делающий из него три диммера:
{
"device_type" : "WB-MDIM",
"device" : {
"name" : "WB-MDIM",
"id" : "wb-mdim",
"channels" : [
{
"name" : "Channel 0",
"reg_type": "holding",
"address": "1",
"type": "range",
"max": "0xff"
},
{
"name" : "Channel 1",
"reg_type": "holding",
"address": "0",
"type": "range",
"max": "0xff"
},
{
"name" : "Channel 2",
"reg_type": "holding",
"address": "2",
"type": "range",
"max": "0xff"
},
{
"name" : "Button 1",
"reg_type" : "holding",
"readonly" : true,
"address" : 6,
"type" : "switch"
},
{
"name" : "Button 2",
"reg_type" : "holding",
"readonly" : true,
"address" : 7,
"type" : "switch"
},
{
"name" : "Button 1 counter",
"reg_type" : "holding",
"readonly" : true,
"address" : 32,
"type" : "value"
},
{
"name" : "Button 2 counter",
"reg_type" : "holding",
"readonly" : true,
"address" : 33,
"type" : "value"
}
]
}
}
Итого, на wb-mqtt-serial версиях 1.26.1 все работает нормально, начиная с 1.26.5 начинает нещадно щелкать реле…
Откатился на 1.26.1 и пока успокоился. Нужна какая-то информация для локализации проблемы?
Сценарий, на котором стабильно повторяется:
- В RS-485 только WB5 и WB-MR11
- В конфиге настроены WB-MR11(id 196) и WB-MDIM(id 166).
- Версия wb-mqtt-serial 1.26.5 или 1.26.5
Разные реле щелкают (включаются и сразу выключаются).
Блок питания ваш - FARADAY. WB-MR11 говорит, что напряжение ~11.92.
А не могли бы вы проверить ещё с версиями 1.26.3 и 1.26.4?