Странные последствия обновления wb5


#1

Началось все с того, что WB5 начал терять историю датчиков старше нескольких часов.
Сначала я попробовал сделать apt-get update & apt-get upgrade
После этого блок реле MR11 начал щелкать реле без видимых причин
После этого я попробовал сделать apt-get dist-upgrade и собрал все проблемы по полной
MAC адрес устройства сменился на 00:04:00:00:00:00 (сменился IP адрес)
WB перестал слушать порты http, ssh и др. Почему-то слушает только порты ser2net и моего сервиса.
Позже попробую подключить консоль и разобраться, но пока непонятно почему после штатных вариантов обновления устройство почти умерло…


#2

А вывод apt-get есть? Вы точно не могли случайно согласиться на предложение apt-get upgrade снести пол-системы?


#3

Почему полсистемы?
dist-upgrade всю систему снес… Как минимум, ядро, nginx и много чего еще…
Я ступил и не сохранил вывод…
Вообще на всех других железках типа rpi, десктопных линуксах upgrade вполне безопасная операция… Максимум, что может снести при невнимательности - конфиги…

dist-upgrade я стал делать скорее от безысходности, т.к. блок реле щелкал непрерывно после upgrade… Перестал щелкать только после остановки wb-mqtt-serial, но без modbus совсем сложно (


#4

Сейчас вопрос скорее в том, как это лечить. Есть ли варианты менее болезненные, чем перезаливка прошивки через USB?
Т.к. часть сервисов запустилась, то скорее всего получится подключиться к консоли.
Почему мог слететь MAC-адрес и не запуститься sshd?


#5

apt-get - это интерактивная команда. Он каждый раз подробно пишет вам то, что будет делать, предлагает прочитать и согласиться с этим. Без нажатия на “y” ничего произойти не может, и с этой точки зрения операция совершенно безопасна.

Если подключитесь к консоли, то поднимать сеть, потом ставить пакеты обратно.

Если нет, то через mxsldr (USB) подключать внутренний накопитель к компьютеру, вытаскивать оттуда нужные файлы (/home, /etc, возможно у вас что-то ещё), потом копировать обратно после перезаливки прошивки. Обратите внимание, что большинство пользовательских данных лежат в разделе data, а не rootfs.


#6

Вопрос был ровно один: есть пачка пакетов, которые нужно обновить и несколько пакетов, которые нужно снести… Никаких вопросов по ходу обновления не задавалось (типа перетирания конфигураций и т.п.)


#7

Сеть-то как бы есть… 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-интерфейс? При такой заливке вроде бы должны сохраниться почти все данные, а ядро и пакеты вернуться к живому состоянию?


#8

Это он и есть. Не “нужно снести”, а “предлагает снести.”
Вот ему показалось, что если полсистемы снести, а остальную половину обновить, то результат получится новее, чем было. У вас всегда есть право отказаться и предложить apt-get-у другое решение.

Наверное расставлением каких-нибудь флажочков в пакетах или ещё какими-то костылями можно сделать так, что apt перестанет предлагать дурацкие варанты, но пока у нас на эту задачу приоритет низкий.


#9
wb-run-update <файл>

#10

Может быть есть какой-то рекомендуемый регламент обновления?

Например, для rpi есть отличный скрипт rpi-update, он сам что-то качает, что-то обновляет (вернее обновляет ядро до актуального). Может быть есть возможность поддерживать аналогичный файл со списком пакетов, которые можно/нужно обновлять?

Проблема простая:

  • Возникла некоторая проблема (у меня это была потеря истории состояний устройств)
  • Я помню, что на форуме уже обсуждалась тема и вроде даже была решена
  • Вроде логичный первый шаг - обновиться до актуального состояния, но теперь непонятно как это сделать…

P.S. А еще регулярно случаются критичные обновления безопасности и их бы тоже желательно ставить… Тоже непонятно как…


#11

Происходит что-то странное.

  1. В консоли нет приглашения для логина. Процесс загрузки заканчивается на
    [....] 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

  2. sshd не запускается с ошибкой, что нет конфига sshd/etc/ssh/sshd_config: No such file or directory

  3. Есть еще куча ошибок о не найденных файлах:
    /etc/init.d/wb-hwconf-manager: line 23: /usr/share/wb-hwconf-manager/functions.sh: No such file or directory

  4. Попытка получить консоль как описано в теме про сброс рутового пароля тоже не работает. WB после run bootcmd уходит на перезагрузку

Есть еще какие-то варианты, кроме перезаливки по USB?


#12

да, ерунда какая-то.

Можете взять линукс, подключить девайс по USB как накопитель, дальше сделать ./chroot_this.sh и попробовать позапускать

dpkg --configure -a 

и apt-get


#13

В итоге я сделал backup всего emmc и перезалил в него прошивку из 201610251522_emmc_wb5.img.zip. WB грузится, осталось настроить то, что когда-то работало…

В первом приближении выглядит так, что второй рутовый раздел похож на чуть менее разложившийся труп линукса. Но ни в одном из них нет /etc/sshd, например. Раздел от /mnt/data содержит только Lost&Found, т.е. девственно чист.

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


#14

Обнаружил при загрузке (после перезаливки прошивки через 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

#15

Итак, я вернулся к тому, с чего все началось: MR11 нещадно щелкает реле, правил в движке нет совсем, mqtt-сообщений, относящихся к топику MR11 нет совсем.

Куда копать?


#16

так и должно быть

Что ещё на линии RS-485?


#17

На линии WB-MR11 и WB-MRGB.

Оба “черные” в веб интерфейсе. Если выключить становятся красными. Обновление напряжение приходит нормально.

/devices/wb-mr11_196/controls/Supply voltage 11.417

Если остановить wb-mqtt-serial - щелкать прекращает.


#18
  1. Если отключить в конфиге WB-MRGB. Щелкать перестает.
  2. Если оставить на линии только 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"
                }


        ]
    }
}


#19

Итого, на wb-mqtt-serial версиях 1.26.1 все работает нормально, начиная с 1.26.5 начинает нещадно щелкать реле…

Откатился на 1.26.1 и пока успокоился. Нужна какая-то информация для локализации проблемы?
Сценарий, на котором стабильно повторяется:

  1. В RS-485 только WB5 и WB-MR11
  2. В конфиге настроены WB-MR11(id 196) и WB-MDIM(id 166).
  3. Версия wb-mqtt-serial 1.26.5 или 1.26.5
    Разные реле щелкают (включаются и сразу выключаются).

Блок питания ваш - FARADAY. WB-MR11 говорит, что напряжение ~11.92.


#20

А не могли бы вы проверить ещё с версиями 1.26.3 и 1.26.4?