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

При обновление WB 6 Выдает ошибки



image
image

Добрый день.
На первом скриншоте вижу или устаревшие ключи или недостаток места.
Сколько доступно свободно на корневом разделе?

На втором - отсуутствие интернета.

image
image

image

На разделе /dev/root место закончилось. Возможно, в этом проблема:
image

Я могу дать доступ через anydesk я просто не знаю что можно еще удить или перенести

Обычно место на разделе /dev/root занимают устанавливаемое стороннее ПО. Нужно понять, что было установлено и куда. Потом можно переместить часть директорий на большой раздел /mnt/data, есть несколько тем про это, например: Закончилось место в /dev/root - #16 от пользователя Explorerol

1 Like

Переборщил с переносом и поломал систему

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

Вот прочти эту ссылку:
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.77)

Только ссылки указанные для скачивания в 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

Я приятно удивлен глубиной и полнотой реверса.

Но вот это - к чему?

Ведь достаточно следовать инструкции (осознавая действия) до пункта Сборка образов прошивки — Wiren Board
и получим систему до упаковки в fit.

У нас в компании есть вакансии.

Мне лень было разбираться как собрать сборочное окружение и прочее.

Никакого реверсинжинирнига нет, точно также можно было сделать копию работающей системы.

Это всё штатные механизмы Linux.

Если там не debootstrap, то точно разбираться лень.

Я в своё время ставил Gentoo, там шаг установки - скачиваение архива базовой системы stage3, подготовка файловых систем и распаковка архива системы.

Дальнейший chroot и далее.

Поэтому мне было проще раздобыть “stage3” для Wirenboard и сделать всё по аналогии.

У вас сборка в докере.

Опишите как с помощью debootstrap собрать образ.

Поправьте пожалуйста ссылки на скачивание fit образов вот на этой Wiki странице: Wiren Board 6: обновлениe с USB-флешки и удалениe данных со сбросом к заводским настройкам — Wiren Board на актуальные (новые) или сделайте, чтобы работали старые.

Эти не работают:
http://fw-releases.wirenboard.com/fit_image/stable/6x/latest_stretch.fit
http://fw-releases.wirenboard.com/fit_image/stable/67/latest_stretch.fit
http://fw-releases.wirenboard.com/fit_image/stable/7x/latest_stretch.fit

А вот эти работающие:
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/

http://fw-releases.wirenboard.com/?prefix=fit_image/stable/6x/latest_stretch.fit
http://fw-releases.wirenboard.com/?prefix=fit_image/stable/67/latest_stretch.fit
http://fw-releases.wirenboard.com/?prefix=fit_image/stable/7x/latest_stretch.fit

Видимо, зависит от браузера. Если не скачивается по нажатию, то нужно из контекстного меню выбрать “Сохранить ссылку как”

Именно он. :slight_smile:
Просто обернут скриптами для полностью автоматической работы.

Да, в докере потому что собирается под другую архитектуру.
Как выше писал debootstrap выполняется из скрипта.

Так, проверяю:

wget http://fw-releases.wirenboard.com/fit_image/stable/6x/latest_stretch.fit
--2022-10-20 11:14:46--  http://fw-releases.wirenboard.com/fit_image/stable/6x/latest_stretch.fit
Resolving fw-releases.wirenboard.com (fw-releases.wirenboard.com)... 52.218.109.68, 52.218.109.180, 52.92.16.12, ...
Connecting to fw-releases.wirenboard.com (fw-releases.wirenboard.com)|52.218.109.68|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 179787930 (171M) [application/octet-stream]
Saving to: ‘latest_stretch.fit’

Из браузера тоже качаются.

У меня google chrome - Version 106.0.5249.119 (Official Build) (64-bit) под Windows.

Под ним не скачивается.

wget http://fw-releases.wirenboard.com/fit_image/stable/6x/latest_stretch.fit

Работает.

Firefox тоже скачивает.

fit образ открывается в 7-Zip под Windows.

12

Поэтому можно распаковать его и так, только он видит самый большой файл в образе.

image

В конце возникает ошибка, но сам архив целый.

Поэтому достать его можно и так.

binwalk был использован только для пробы получить архив системы из fit образа в консоли Linux.

Получилось.

1 Like

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