Если система не загружается, то тебе нужно восстанавливать систему.
Вот прочти эту ссылку:
https://wirenboard.com/wiki/Wiren_Board_6_Firmware_Update
Т.е. тебе нужно скачать fit файл, переименовать или в wb6_update.fit или в wb6_update_FACTORYRESET.fit, в зависимости от того, что ты хочешь сделать, подключить флешку к wirenboard и включить его.
Можешь подключиться так же к консоли wirenboard через telnet подключение и видеть процесс обновления.
Скачай программу putty и настрой подключение через последовательный (com порт).
Вместо COM3 укажи свой COM порт. Ищи его в диспетчере устрйоств. Он появится после подключения Micro USB - USB A провода между компьютером и Wirenboard.
COM1 - это обычно порт, который есть на материнской плате компьютера. Ты ищи новый COM порт.
Putty можно скачать отсюда: Download PuTTY: latest release (0.81)
Только ссылки указанные для скачивания в Wiki неправильные, вот правильные:
http://fw-releases.wirenboard.com/?prefix=fit_image/stable/6x/
http://fw-releases.wirenboard.com/?prefix=fit_image/stable/67/
http://fw-releases.wirenboard.com/?prefix=fit_image/stable/7x/
Я не знаю почему их не исправят.
В общем, подключаешься по com порту, подключаешь флешку и перезапускаешь Wirenboard, ждёшь процесса восстановления.
Если тебе важны твои настройки на контроллере и обновление прошивки не помогло, то ты можешь попробовать загрузить wirenboard с флешки.
Тебе понадобится ядро вот из этого сообщения:
Распаковываешь DEB пакет с ядром.
Из пакета с ядром берёшь директорию dtbs и файл vmlinuz-5.10.35-wg-wb119.
Берёшь флешку на 4-8Гб, возможно нужна будет USB 2.0.
На флешке создаёшь два раздела, первый 100 Мб, на него копируешь директорию и файл vmlinuz-5.10.35-wg-wb119, переименовываешь его в vmlinuz.
На втором разделе создаёшь файловую систему EXT4.
Всё это можно сделать в любом Linux, можешь запустить любой LiveCD в виртуальной машине VirtualBox, хоть Ubuntu.
Разделы на флешке можно сделать в Linux с помощью утилиты fdisk или cfdisk.
Тебе нужно запустить Linux в виртуальной машине, пробросить в неё флешку.
Флешка, может определиться как /dev/sda или /dev/sdb
Смотришь вывод команды
fdisk -l
И ищешь по размеру флешки.
Далее с помощью команды
fdisk /dev/sdb
Запускаешь редактор таблицы разделов.
Ты увидишь что-то вроде
Только у тебя будет написано /dev/sdb и /dev/sdb1.
Удаляешь существующие разделы и создаёшь два новых, 100 Мб - FAT32 и остальное EXT4.
d
n
p
1
<Enter>
+100M
t
b
n
p
2
<Enter>
<Enter>
w
Где написано - нажимаешь клавишу Enter.
Вот так это выглядит в консоли:
Можешь ещё раз взглянуть на вывод:
fdisk /dev/sdb
p
q
Тут видны два раздела.
У тебя будут /dev/sdb1 и /dev/sdb2.
Теперь нужно создать файловые системы:
apt install dosfstools
mkfs.vfat /dev/sdb1
mkfs.ext4 -m0 /dev/sdb2
Флешку смонтируем:
mkdir /tmp/sdb2
mount /dev/sdb2 /tmp/sdb2
Скачиваешь отсюда S3 Bucket Listing Generator fit image
Смотри скриншот
Тебе нужна утилита binwalk
Она анализирует объединённые файлы и показывает что в них есть.
apt install binwalk
wget "http://fw-releases.wirenboard.com/fit_image/stable/6x/202210191406_stable_webupd_wb6x.fit"
binwalk -e 202210191406_stable_webupd_wb6x.fit
Команда
binwalk -e 202210191406_stable_webupd_wb6x.fit
разделяет объединенный файл на отдельные файлы.
Переходишь в директорию куда распаковался файл:
cd _202210191406_stable_webupd_wb6x.fit.extracted/
В файле, что скачал я извлёкся файл 79CA3C, который является tar архивом.
Тебе его нужно распаковать на второй раздел влешки.
Теперь нам нужно распаковать архив на флешку.
cd _202210191406_stable_webupd_wb6x.fit.extracted
tar -xpf 79CA3C -C /tmp/sdb2/
Как видишь в /tmp/sdb2, т.е. на втором разделе флешки у тебя есть файлы из wirenboard.
Флешку размонтируешь
umount /dev/sdb2
Набираешь команду
blkid
И смотришь идентификатор раздела /dev/sdb2.
Ты увидишь что-то вроде:
blkid
/dev/sdb2: UUID="aef0e500-7104-496e-9b4b-a42c8c1b36d0" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="7667130b-01"
Переписываешь себе в текстовый файл PARTUUID=“7667130b-01”.
У тебя будет другое значение.
Отключаешь от виртуальной машины флешку обратным действием.
В Windows появляется флешка с двумя разделами.
На первый в 100Мб ты копируешь файл с ядром и директорию dtbs
DEB пакет с ядром качай с яндекс диск ссылки вот в этом сообщении:
Распаковываешь DEB пакет с ядром. Можно использовать 7-Zip.
Файл vmlinuz-5.10.35-wg-wb119. переименовываешь в vmlinuz и помещаешь в корень флешки.
Безопасно извлекаешь флешку.
Подключаешь флешку к Wirenboard.
Готовишь себе текстовый файл с командами, которые тебе нужно быстро ввести, поэтому проще копировать
load mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/uEnv.txt
run loadfdtandoverlays
usb start
fatls usb 0:1
fatload usb 0 $loadaddr /vmlinuz
setenv optargs ${optargs} root=PARTUUID="7667130b-01" rootwait ro test1
run setbootargs
bootz ${loadaddr} - ${fdt_addr}
Вот здесь: PARTUUID=“7667130b-01” указано значение идентификатора раздела, которое ты смотрел в вывод команды blkid.
Подключаешься по COM порту через putty, смотри в начале сообщения как.
Выключаешь и включаешь контроллер.
Как увидишь отсчёт в секундах
Нажимаешь стрелочку на клавиатуре или другой символ, счётчик останвливается и вводишь.
И начинаешь построчно копировать и вставлять команды из текстового файла в консоль putty.
В итоге у тебя должен произойти запуск ядра с флешки.
Ядро выложенное на Яндекс Диске собрано с поддержкой USB монолитно, поэтому оно может найти флешку при запуске.
Ядро запустится и будет искать корневую файловую систему на разделе с идентификатором PARTUUID=“7667130b-01”
У тебя будет другой идентификатор.
Далее жди загрузки до конца и ты сможешь через putty войти в консоль системы загруженной с флешки, смонтировать разделы на MMC памяти и исправить свои действия.
Файл /etc/fstab с описанием что и куда монтировать выглядит примерно так:
/dev/mmcblk0p2 / auto errors=remount-ro,noatime 0 1
/dev/mmcblk0p5 none swap errors=remount-ro 0 0
/dev/mmcblk0p6 /mnt/data auto nofail 0 2
/mnt/data/var/log /var/log none bind 0 0
Создай отдельную директорию, например /tmp/root и смонтируй относительно неё файловые системы с MMC памяти контроллера
mkdir /tmp/root
mount /dev/mmcblk0p2 /tmp/root
mount /dev/mmcblk0p6 /tmp/root/mnt/data
Всё, теперь можешь возвращать файлы, только действую относительно /tmp/root, а не просто /
Можешь даже сделать chroot туда.
Chroot - это переключение в некоторую точку монтирования корневой файловой системы другого Linux. И в консоли где ты сделал chroot будешь действовать относительно подключенной файловой системы.
Если у тебя стоит Midnight Commander (mc), то тебе будет ещё удобнее.
mkdir /tmp/root
mount /dev/mmcblk0p2 /tmp/root
mount /dev/mmcblk0p6 /tmp/root/mnt/data
mount -o bind /dev /tmp/root/dev
mount -o bind /proc /tmp/root/proc
mount -o bind /sys /tmp/root/sys
chroot /tmp/root /bin/bash
mc