Обновление прошивки через SSH вместо веба

Здравствуйте коллеги, у нас в работе 208 контроллеров wirenboard 7 к которым есть доступ по сети. На всех установлен стретч. Хотим обновиться на последний bullseye.
Но заходить на каждый контороллер по вебу и подгружать все релизы ручками будем очень долго. Придумали как реализовать через обходчик на perl через ssh с убунты.
1.Есть ли вариант обновлять из под своей файловой системы fit файлом?
2. wb-release --update-debian-release Возможно ли указывать ему на какой именно релиз обновиться? Потому как сразу на последний bullseye обновиться не получается, только через:
202308241247_wb-2207-bullseye-transition_stretch_wb7.fit
202312210809_wb-2310_bullseye_wb7x.fit
202401311326_wb-2401_bullseye_wb7x.fit
202401311326_wb-2401_bullseye_wb7x.fit (еще раз чтоб раздвинуть систему).
Или может чего нового поскажете?
если что, в сети есть файловый HTTP сервер, с которого можно тянуть их по очереди wget’ом.
Забыл добавить, что физического доступа ко всем контроллерам нет, и поэтому придумываем сетевой способ. Очень важно чтоб при всех переходах до последнего Debian bullseye 2401 остались нетронутые /mnt/data/

Добрый день.

Крайним релизом на котором использовался debian 9 - был 2207. То есть контроллеры 7.2.1 - 7.3

Теоретически - да, можно смонтировать, например по nfs. Но никакой экономии времени нет, а так как доступ к файлу потеряется в процессе перезапуска контроллера - еще и не сработает.
На практике - проще скачать на контроллер файл и выполнить Как обновить контроллер через fit образ из консоли? - #3 от пользователя Explorerol

wb-release не имеет, в общем, отношения к обновлению с помощью fit.

Буквально позавчера обновил контроллер с 2207 до 2401 сразу, загрузкой fit.

Отлично, спасибо.
wb-run-update /root/202401311326_wb-2401_bullseye_wb7x.fit
Как запустить так wb-run-update чтоб после прошивки расширилась память до 2gb?

собственно вот что имеем при переходе с транзита на 2401

__      _(_)_ __ ___ _ __ | |__   ___   __ _ _ __ __| |
\ \ /\ / / | '__/ _ \ '_ \| '_ \ / _ \ / _` | '__/ _` |
 \ V  V /| | | |  __/ | | | |_) | (_) | (_| | | | (_| |
  \_/\_/ |_|_|  \___|_| |_|_.__/ \___/ \__,_|_|  \__,_|

Welcome to Wiren Board 7.3.4 (s/n ADAJKHM2), release wb-2207-bullseye-transition (as stable)
Linux wirenboard-ADAJKHM2 5.10.35-wb120+wb101 #2 SMP Tue Nov 22 12:49:35 UTC 2022 armv7l GNU/Linux

Update to Debian Bullseye is available!
Run wb-release --update-debian-release to update
(the update can take up to 45 minutes)

Or download FIT firmware image from http://fw-releases.wirenboard.com/?prefix=fit_image and
 update via the web interface by visiting Settings → System

root@wirenboard-ADAJKHM2:~# wget http://192.168.1.150:8080/202401311326_wb-2401_bullseye_wb7x.fit
--2024-02-07 13:52:29--  http://192.168.1.150:8080/202401311326_wb-2401_bullseye_wb7x.fit
Connecting to 192.168.1.150:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 230628402 (220M) [application/octet-stream]
Saving to: '202401311326_wb-2401_bullseye_wb7x.fit'

202401311326_wb-2401_bullseye_wb7x.fit              100%[=================================================================================================================>] 219.94M  11.2MB/s    in 21s

2024-02-07 13:52:50 (10.5 MB/s) - '202401311326_wb-2401_bullseye_wb7x.fit' saved [230628402/230628402]

root@wirenboard-ADAJKHM2:~# wb-run-update /root/202401311326_wb-2401_bullseye_wb7x.fit
===============================================================================
Wed Feb  7 13:53:06 +05 2024: started update from /mnt/data/root/202401311326_wb-2401_bullseye_wb7x.fit
===============================================================================
Description:         WirenBoard firmware update
Compatible device:   wirenboard,wirenboard-720
Firmware version:    202401311326
Firmware compatible: +single-rootfs +fit-factory-reset +force-repartition +repartition-ramsize-fix
Release name:        wb-2401
Release suite:       stable
Release target:      wb7/bullseye
Release repo prefix:
Time of creation:    Wed Jan 31 18:29:05 +05 2024
===============================================================================

>>> Checking SHA1 hash of install
>>> SHA1 hash of install ok
>>> Extracting install script
>>> Running install script
>>> Console logging enabled; tempfile /tmp/tmp.n8g0FRmo6a, final file /mnt/data/root/wb-console.log will be written on exit
/dev/shm/tmp.E74r3mhtWx: line 975: fw_has_proper_dtb: command not found
>>> This firmware is too old for this device, please use newer one from https://fw-releases.wirenboard.com/
!!! Firmware is not compatible with this device, no proper DTB found
>>> Removing FIT /mnt/data/root/202401311326_wb-2401_bullseye_wb7x.fit
root@wirenboard-ADAJKHM2:~#

Больше интересует этот вопрос… Как обновляться через ssh с расширением памяти

1 Like

Вопрос хороший, спрошу у разработчиков.

1 Like

Добрый день коллеги, есть ли новости?)

Перед запуском следует создать в том же каталоге что и fit файл с ключами, например:

echo ”--force-repartition” > install_update.web.flags

не работает, логи ниже

===============================================================================
Tue Feb 13 06:48:44 UTC 2024: started update from /mnt/data/root/202401311326_wb-2401_bullseye_wb7x.fit
===============================================================================
Description:         WirenBoard firmware update
Compatible device:   wirenboard,wirenboard-720
Firmware version:    202401311326
Firmware compatible: +single-rootfs +fit-factory-reset +force-repartition +repartition-ramsize-fix
Release name:        wb-2401
Release suite:       stable
Release target:      wb7/bullseye
Release repo prefix:
Time of creation:    Wed Jan 31 13:29:05 UTC 2024
===============================================================================

>>> Checking SHA1 hash of install
>>> SHA1 hash of install ok
32+0 records in
32+0 records out
16384 bytes (16 kB, 16 KiB) copied, 0.00296325 s, 5.5 MB/s
>>> Firmware seems to be compatible with this controller
>>> Extracting install script
>>> Running install script
>>> Using flags from /mnt/data/root/install_update.web.flags: ”--force-repartition”
>>> Console logging enabled; tempfile /tmp/tmp.uYzKaovstd, final file /mnt/data/root/wb-console.log will be written on exit
32+0 records in
32+0 records out
16384 bytes (16 kB, 16 KiB) copied, 0.000659958 s, 24.8 MB/s
>>> Firmware seems to be compatible with this controller
>>> Checking SHA1 hash of rootfs
>>> SHA1 hash of rootfs ok
>>> rootfs is valid, installing firmware update
>>> Getting mmcpart from U-Boot environment
>>> Will install to /dev/mmcblk0p2
>>> Debian: bullseye -> bullseye
>>> Cleaning up /dev/mmcblk0p2
>>> Cleaning up using rsync
>>> Mounting /dev/mmcblk0p2 at /tmp/tmp.q31IKZyt6F
>>> Extracting files to new rootfs
/tmp/tmp.q31IKZyt6F /mnt/data/root
/mnt/data/root
>>> Recovering device certificates
>>> Mount /dev, /proc and /sys to rootfs /tmp/tmp.q31IKZyt6F
>>> Running post-install scripts
>>> > Processing /tmp/tmp.q31IKZyt6F/usr/lib/wb-image-update/postinst/10update-u-boot
Skipping u-boot update (use factory reset to do it)
>>> > Processing /tmp/tmp.q31IKZyt6F/usr/lib/wb-image-update/postinst/10update-wbec-firmware
Skipping WBEC firmware update (use factory reset to do it)
>>> Unmounting /dev, /proc and /sys from rootfs /tmp/tmp.q31IKZyt6F
>>> Switching to new rootfs
>>> Done!
>>> Removing FIT /mnt/data/root/202401311326_wb-2401_bullseye_wb7x.fit
>>> Unmounting rootfs
>>> Reboot system

Remote side unexpectedly closed network connection

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Session stopped
    - Press <Return> to exit tab
    - Press R to restart session
    - Press S to save terminal output to file
    ┌──────────────────────────────────────────────────────────────────────┐
    │               • MobaXterm Professional Edition v23.6 •               │
    │               (SSH client, X server and network tools)               │
    │                                                                      │
    │ ⮞ SSH session to root@10.187.163.60                                  │
    │   • Direct SSH      :  ✓                                             │
    │   • SSH compression :  ✓                                             │
    │   • SSH-browser     :  ✓                                             │
    │   • X11-forwarding  :  ✓  (remote display is forwarded through SSH)  │
    │                                                                      │
    │ ⮞ For more info, ctrl+click on help or visit our website.            │
    └──────────────────────────────────────────────────────────────────────┘

          _                _                         _
__      _(_)_ __ ___ _ __ | |__   ___   __ _ _ __ __| |
\ \ /\ / / | '__/ _ \ '_ \| '_ \ / _ \ / _` | '__/ _` |
 \ V  V /| | | |  __/ | | | |_) | (_) | (_| | | | (_| |
  \_/\_/ |_|_|  \___|_| |_|_.__/ \___/ \__,_|_|  \__,_|

Welcome to Wiren Board 7.3.4 (s/n A565IOZZ), release wb-2401 (as stable)
Linux wirenboard-A565IOZZ 5.10.35-wb159 #1 SMP Wed Dec 27 07:33:31 UTC 2023 armv7l GNU/Linux

System load:   4.94 1.31 0.44   Up time:       0 min
Memory usage:  16% of 997M      Usage of /:    67% of 976M      /mnt/data:     58% of 4.9G


The following network interfaces were found in /etc/network/interfaces
which means they are currently configured by ifupdown:

 - eth0
 - eth1
 - wlan0

If you want to manage those interfaces with NetworkManager instead
remove their configuration from /etc/network/interfaces
or use web interface config editor to remove them.

root@wirenboard-A565IOZZ:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       976M  605M  305M  67% /
devtmpfs        491M     0  491M   0% /dev
tmpfs           499M  4.0K  499M   1% /dev/shm
tmpfs           200M  6.2M  194M   4% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/mmcblk0p6  4.9G  2.7G  2.0G  58% /mnt/data
tmpfs           100M     0  100M   0% /run/user/0

Хотя вроде что то применяет при перепрошивке

Вы тестировали? Может я чего не так делаю?

echo '--force-repartition' > install_update.web.flags