Зависает контроллер

Добрый день!

Перестал нормально работать контроллер Wiren Board 7.4.3 (s/n AE63EOBY), release wb-2602 (as stable). Настроена автоматическая перезагрузка в 12 ночи, после которой он уже второй раз не может загрузиться. Вчера перезагрузил по питанию после зависания(nginx выдал код 500, по ssh не мог подключится), всё заработало как надо, обновил пакеты через apt, но сегодня ситуация повторилась. Снова удалённо не могу его перезапустить:

root@wirenboard-A4LEEFES:~# ssh ``root@172.28.32.131`` “reboot”
root@172.28.32.131``’s password:
bash: /etc/bash.bashrc: Input/output error
/usr/lib/wb-utils/common.sh: line 67: ./of.sh: Input/output error
/usr/lib/wb-utils/ensure-env-cache.sh: line 34: of_has_prop: command not found
/usr/lib/wb-utils/ensure-env-cache.sh: line 44: 18143 Segmentation fault rm “$WB_ENV_CACHE” -f
/usr/lib/wb-utils/ensure-env-cache.sh: line 1: 18158 Segmentation fault [[ ! -e “$WB_ENV_CACHE” || ! -e “$WB_ENV _HASH” ]]
Failed to open initctl fifo: No such device or address
Failed to talk to init daemon.

Что может исправить проблему? Как не допустить повторного возникновения?

Добрый день.

Для диагностики проблемы пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации.

Удалось удалённо перезагрузить контроллер командой

ssh root@wirenboard-AE63EOBY “echo u > /proc/sysrq-trigger && echo s > /proc/sysrq-trigger && sleep 10; echo b > /proc/sysrq-trigger”

Вывод диагностики прилагаю.

приложен диагностический архив, доступен только сотрудникам поддержки
(477,2 КБ)

Судя по

 -6 113bcdf27eb94b8684dabc8f7c19f9e0 Sun 2026-03-01 21:00:28 UTC—Sun 2026-03-08 21:00:06 UTC
 -5 609d46b8efa54c86af2be2b50a32bebd Sun 2026-03-08 21:00:26 UTC—Sun 2026-03-15 21:00:06 UTC
 -4 35679de9323c474d99211a48f314191b Sun 2026-03-15 21:00:27 UTC—Sun 2026-03-22 21:00:07 UTC
 -3 fd270b63551e49e88eb0b2a8a5bab7f0 Sun 2026-03-22 21:00:27 UTC—Sun 2026-03-29 21:00:07 UTC
 -2 08ec00c2b4d843a8807243697a64ccc0 Sun 2026-03-29 21:00:27 UTC—Wed 2026-04-01 20:13:55 UTC

Перезагрузка раз в неделю?

Ну, что интересно - то что логов после 23:20 просто нет.

может указывать на недоступность как раз emmc. То есть - невозможность, в том числе, и записать лог.
dmesg не запускали до перезагрузки?
Для точной диагностики неплохо вставить в контроллер SD, если записывать логи на нее - то вероятно можно точно понять. Но и если контроллер доступен по ssh то в логе ядра будет про недоступность разделов.

Да, раз в неделю, в cron задание (0 0 * * 0 /sbin/shutdown -r now). При этом до перезапуска по питанию задание не выполнилось, пришлось ехать и перезапускать руками, SSH не работал вовсе.

dmesg не запускали до перезагрузки?

Не запускал так как не было доступа. По SSH интерактивная оболочка запускалась через раз и сразу обрывалась, получилось только отправить команду перезапуска.

Как можно настроить копирование логов на флешку?

На контроллере работает journald, по умолчанию логи хранит в /var/log/journal
Основной конфиг, соответственно /etc/systemd/journald.conf.wb
Сейчас проверю метод ну и выложу годные команды/изменения.

1 лайк

Я воткнул в контроллер SD карточку:

[74972.885804] mmc1: new high speed SDHC card at address 40cb
[74972.892969] mmcblk1: mmc1:40cb LYXSD 14.8 GiB
[74972.900680]  mmcblk1: p1

Удаляю раздел, создаю ии форматирую:

umount /mnt/sdcard
(echo "d"; echo "n"; echo "p"; echo "1"; echo ""; echo ""; echo "w") | fdisk /dev/mmcblk1 && mkfs.ext3 /dev/mmcblk1p1

“y” подтверждения забыл, ввожу вручную


Перезапускаю контроллер, для проверки автомонтирования.
После перезапуска для проверки вижу:

mount |grep sdc
/dev/mmcblk1p1 on /mnt/sdcard type ext3 (rw,relatime,x-systemd.automount)

так как journald не имеет способа явно указать произвольный путь - то делаем симлинком.
Останавливаем сервис(ы) и перестаскиваем каталог

systemctl stop systemd-journald*

Чо-то SD у меня бракованая, похоже. Поищу другую

[  633.450831] I/O error, dev mmcblk1, sector 12963864 op 0x1:(WRITE) flags 0x4800 phys_seg 256 prio class 0[  633.461258] sunxi-mmc 4020000.mmc: data error, sending stop command[  633.468368] sunxi-mmc 4020000.mmc: send stop command failed[  633.483927] mmcblk1: recovery failed![  633.487730] I/O error, dev mmcblk1, sector 12965912 op 0x1:(WRITE) flags 0x4800 phys_seg 256 prio class 0[  633.498132] sunxi-mmc 4020000.mmc: data error, sending stop command[  633.505228] sunxi-mmc 4020000.mmc: send stop command failed[  633.520810] mmcblk1: recovery failed!

В общем поменял SD.
В /mnt/sdcard создаю каталог log и переношу в него /var/log/journal/

И делаю симлинк:

ln -s /mnt/sdcard/log/journal /var/log/
ls -l /var/log |grep journal
lrwxrwxrwx 1 root      root           23 Apr 15 12:54 journal -> /mnt/sdcard/log/journal

Запускаю systemd-journald, проверяю что пишется.

1 лайк

Понял, спасибо!

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