Обновление и установка по на WB 6.6.0

Если система не загружается, то тебе нужно восстанавливать систему.

Вот прочти эту ссылку:
https://wirenboard.com/wiki/Wiren_Board_6_Firmware_Update

Т.е. тебе нужно скачать fit файл, переименовать или в wb6_update.fit или в wb6_update_FACTORYRESET.fit, в зависимости от того, что ты хочешь сделать, подключить флешку к wirenboard и включить его.

Можешь подключиться так же к консоли wirenboard через telnet подключение и видеть процесс обновления.

Скачай программу putty и настрой подключение через последовательный (com порт).

1
2

Вместо COM3 укажи свой COM порт. Ищи его в диспетчере устрйоств. Он появится после подключения Micro USB - USB A провода между компьютером и Wirenboard.

11

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

Запускаешь редактор таблицы разделов.

Ты увидишь что-то вроде
6

Только у тебя будет написано /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

8

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 архивом.

Тебе его нужно распаковать на второй раздел влешки.

Теперь нам нужно распаковать архив на флешку.
4

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.

10

Файл 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