Wiren Board 7 Firmware Update: различия между версиями

Строка 23: Строка 23:
{{Wbincludes:WebUI Wiren Board Firmware Update}}
{{Wbincludes:WebUI Wiren Board Firmware Update}}


== Обновление и сброс через разъём Debug Network ==
== Обновление и сброс через USB-флешку или карту Micro-SD ==
[[Image: wb7-debug-network-pc.png |300px|thumb|right| Файл обновления прошивки на съёмном накопителе ]]
[[Image: wb7-usb-flash-fit.png |300px|thumb|right| Файл сброса к заводским настройкам на USB-флешке]]
В контроллере есть разъём '''Debug Network''', который можно использовать для обновления прошивки или сброса настроек:
В контроллере есть разъём '''Debug Network''', который можно использовать для обновления прошивки или сброса настроек:
{{Wbincludes:Wiren Board 7 Fit Prepare}}
{{Wbincludes:Wiren Board 7 Fit Prepare}}
# [[Formatting Flash Drive | Отформатируйте флешку в FAT32]].
# Скопируйте подготовленный в шаге 1 файл на флешку или карту памяти.
# Выключите контроллер кнопкой на корпусе.
# Выключите контроллер кнопкой на корпусе.
# Подключите контроллер к компьютеру через разъём Debug Network. Вам потребуется кабель USB-C с возможностью передачи данных.
# Вставьте флешку в USB-разъём или карту памяти в слот Micro-SD.
# Зажмите кнопку FW и удерживайте её.
# Зажмите кнопку FW и удерживайте её.
# Включите контроллер и после короткого звукового сигнала отпустите кнопку FW.
# Включите контроллер и после короткого звукового сигнала отпустите кнопку FW.
# Индикатор контроллера медленно замигает красным, а ещё через 10 секунд компьютер определит съёмный накопитель.
# Индикатор контроллера сперва погорит оранжевым, потом медленно замигает красным и в конце быстро замигает оранжевым — коротко нажмите на кнопку FW.
# Скопируйте подготовленный в шаге 1 файл на определившийся накопитель.
# Извлеките (отмонтируйте) флешку программно и отключите кабель от контроллера физически.
# В зависимости от того, какой файл вы положили, возможно два варианта:
# В зависимости от того, какой файл вы положили, возможно два варианта:
## Контроллер начнёт обновлять прошивку.
## Контроллер начнёт обновлять прошивку.
Строка 41: Строка 41:
# После обновления прошивки или сброса настроек контроллер перезагрузится в рабочем режиме, а его индикатор замигает зелёным.
# После обновления прошивки или сброса настроек контроллер перезагрузится в рабочем режиме, а его индикатор замигает зелёным.


Вывод в [[WB Debug Console | Debug-консоль]] во время сброса настроек: выделенная строка — момент короткого звукового сигнала:
Весь процесс удобно наблюдать в [[WB Debug Console | Debug-консоли]] контроллера.
:<syntaxhighlight lang="bash" highlight="27">
U-Boot 2021.10-wb1.1.1-g4c04347f3e (Feb 03 2022 - 14:48:16 +0000)


CPU:  Allwinner R40 (SUN8I 1701)
<gallery mode="packed" heights="250px" caption="Сообщения в Debug-консоли">
Model: Wiren Board rev. 7.2.0 (A40i)
Image: wb7-usbflash-reset-1.png | Кнопка нажата и контроллер пискнул первый раз
I2C:  ready
Image: wb7-usbflash-reset-2.png  | Контроллер ждёт второго нажатия на кнопку, а потом подтверждение очистки.
DRAM:  1 GiB
</gallery>
MMC:  mmc@1c0f000: 0, mmc@1c11000: 1
Loading Environment from MMC... OK
In:    serial@1c28000
Out:  serial@1c28000
Err:  serial@1c28000
Will only keep env vars: mmcpart bootcount upgrade_available uenvcmd otp_program otp_aes_program
## Info: input data size = 43 = 0x2B
bootcount=0
mmcpart=2
upgrade_available=0
 
Environment size: 43/131068 bytes
## Resetting to default environment
## Info: input data size = 43 = 0x2B
Net:  No ethernet found.
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc1(part 0) is current device
eMMC found on device 1
Press FW button to enter firmware update mode
..
Entering firmware update mode.
Checking if ubootenv part is present
## Loading FIT header to 0x42000000 ...
## Loading FIT strings to 0x42000028 ...
## Loading FIT struct to 0x42000100 ...
Can`t find subimage 'ubootenv'
Extracting kernel
## Loading FIT header to 0x42000000 ...
## Loading FIT strings to 0x42000028 ...
## Loading FIT struct to 0x42000100 ...
7772640 bytes read in 190 ms (39 MiB/s)
    Description:  Update kernel
    Type:        Kernel Image
    Compression:  uncompressed
    Data Start:  0x42000300
    Data Size:    7763680 Bytes = 7.4 MiB
    Architecture: ARM
    OS:          Linux
    Load Address: unavailable
    Entry Point:  unavailable
    Hash algo:    sha1
    Hash value:  8fa0750fc5f1738f05856b25f5a4c2fc9159b420
## Verifying ... sha1+
  Loading part 0 ... OK
Extracting DTB
## Loading FIT header to 0x43000000 ...
## Loading FIT strings to 0x43000028 ...
## Loading FIT struct to 0x43000100 ...
63624 bytes read in 30 ms (2 MiB/s)
    Description:  Update DTB
    Type:        Flat Device Tree
    Compression:  uncompressed
    Data Start:  0x43000440
    Data Size:    54344 Bytes = 53.1 KiB
    Architecture: ARM
    Hash algo:    sha1
    Hash value:  88cb690e62d3e2fbe97df37350c2ee8c8abab757
## Verifying ... sha1+
  Loading part 0 ... OK
Kernel image @ 0x42000000 [ 0x000000 - 0x7676e0 ]
## Flattened Device Tree blob at 43000000
  Booting using the fdt blob at 0x43000000
  Loading Device Tree to 49fef000, end 49fff447 ... OK
 
Starting kernel ...
 
[    0.000000] Booting Linux on physical CPU 0x0
#
# Служебные сообщения ОС о загрузке
#
mount: mounting none on /dev/pts failed: No such file or directory
Boot mode: update_auto
Board is WB7
Checking that no-one is using this disk right now ... OK
 
[    5.246653] random: sfdisk: uninitialized urandom read (4 bytes read)
Disk /tmp/ramdisk.img: 300 MiB, 314572800 bytes, 614400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
 
>>> Created a new DOS disklabel with disk identifier 0x67241b30.
/tmp/ramdisk.img1: Created a new partition 1 of type 'W95 FAT32' and of size 299 MiB.
/tmp/ramdisk.img2: Done.
 
New situation:
 
Device            Boot Start    End Sectors  Size Id Type
/tmp/ramdisk.img1      2048 614399  612352  299M  b W95 FAT32
 
The partition table has been altered.
Syncing disks.
mkfs.fat 4.1 (2017-01-24)
[    5.367471] random: mkfs.vfat: uninitialized urandom read (16 bytes read)
Activate Mass Storage device
[    5.588279] Mass Storage Function, version: 2009/09/11
[    5.593478] LUN: removable file: (no medium)
[    5.597865] LUN: file: /tmp/ramdisk.img
[    5.601699] Number of LUNs=1
[    5.604760] g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11
[    5.611717] g_mass_storage gadget: userspace failed to provide iSerialNumber
[    5.618778] g_mass_storage gadget: g_mass_storage ready
Waiting for USB gadget to connect to host PC (1/7)
[  33.762598] vcc-gmac-phy: disablingnd unplug the cable (27)
[  33.766428] dc5ldo: disabling
[  33.769710] dldo4: disabling
[  33.772914] usb0_vbus: disabling
[  33.776143] vcc-sd: disabling
[  47.208924] random: crng init doneand unplug the cable (41)
Copy .fit file to virtual USB driver and unplug the cable (85)
Will look for update in USB gadget ramdisk
Will use wb_update_FACTORYRESET.fit from USB gadget (/usb)
##############################################################################
 
                          FACTORY RESET REQUESTED
 
          This WILL destroy ALL YOUR DATA: configuration, scripts,
                          files in home directory!
 
        If you are ABSOLUTELY SURE that you want to reset Wiren Board
            to factory condition, hold the FW button for 4 seconds.
 
        If you will not do it in 10 seconds, the controller will reboot
                        without firmware update.
 
 
          If you want to perform a regular firmware update, rename
        FIT file to "wbX_update.fit" without "factory-reset" suffix.
 
##############################################################################
ooo....
 
Factory reset is confirmed!
 
===============================================================================
Fri Feb  4 16:00:13 UTC 2022: started update from /usb/wb_update_FACTORYRESET.fit
===============================================================================
Description:        WirenBoard firmware update
Compatible device:  wirenboard,wirenboard-720
Firmware version:    202202040820
Firmware compatible: unknown
Release name:        wb-2201
Release suite:      stable
Release target:      wb7/stretch
Release repo prefix:
Time of creation:    Fri Feb  4 08:21:41 UTC 2022
===============================================================================
 
>>> Checking SHA1 hash of install
PROGRESS: 0%
>>> SHA1 hash of install ok
>>> Wiping data partition (factory reset)
[  101.691971] EXT4-fs (mmcblk0p6): recovery complete
[  101.697817] EXT4-fs (mmcblk0p6): mounted filesystem with ordered data mode. Opts: (null)
>>> Extracting install script
>>> Running install script
>>> Checking SHA1 hash of rootfs
PROGRESS: 100%
>>> SHA1 hash of rootfs ok
>>> Installing firmware update
>>> Getting mmcpart from U-Boot environment
>>> Will install to /dev/mmcblk0p3
>>> Check if partition table is correct
[ 109.496418] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
>>> Mounting /dev/mmcblk0p3 at /dev/shm/rootfs
[  109.525082] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
>>> Cleaning up /dev/mmcblk0p3
>>> Cleaning up using rsync
>>> Extracting files to new rootfs
/dev/shm/rootfs /
PROGRESS: 100%
/
>>> Recovering device certificates
[  143.164257] EXT4-fs (loop1): mounted filesystem without journal. Opts: (null)
>>> Mount /dev, /proc and /sys to rootfs
>>> Running post-install scripts
>>> > Processing /dev/shm/rootfs/usr/lib/wb-image-update/postinst/10update-u-boot
Trying to install u-boot using u-boot-install-wb from new rootfs
Das U-Boot installator for Wiren Board
You are about to install U-boot image '/usr/lib/u-boot/sun8i_wirenboard7/u-boot-sunxi-with-spl.bin' on '/dev/mmcblk0' (platform wb7)
Force installation requested
Writing U-boot image '/usr/lib/u-boot/sun8i_wirenboard7/u-boot-sunxi-with-spl.bin' on '/dev/mmcblk0' (options 'bs=1024 seek=8')
446+1 records in
446+1 records out
457008 bytes (457 kB, 446 KiB) copied, 0.150764 s, 3.0 MB/s
Syncing device
>>> Unmounting /dev, /proc and /sys from rootfs
>>> Unmounting new rootfs
>>> Switching to new rootfs
>>> Done, removing firmware image and rebooting
[  149.555335] reboot: Restarting system
[  149.569048] i2c i2c-0: No atomic I2C transfer handler
 
U-Boot SPL 2021.10-wb1.1.1-g4c04347f3e (Feb 03 2022 - 14:48:16 +0000)
DRAM: 1024 MiB
Trying to boot from MMC2
</syntaxhighlight>


== Сброс к заводским настройкам ==
== Сброс к заводским настройкам ==