Невозможно восстановить прошивку WB6

Добрый день!

Пробую восстановить прошивку стандартной процедурой через USB Flash. Файлы прошивки пробовал разные за последние три месяца отсюда:
https://fw-releases.wirenboard.com/?prefix=fit_image/stable/67/

Всегда вывод один и тот же. Ругань на 6_update_FACTORYRESET.fit shorter than offset + len

U-Boot 2017.03-wb1.3.0-g520058c326 (Jan 18 2022 - 10:56:38 +0000)

CPU:   Freescale i.MX6ULL rev1.1 792 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 33C
Reset cause: POR
Model: Wiren Board rev. 6.1 (i.MX6UL)
Board: Wiren Board MX6UL
DRAM:  512 MiB
MMC:   FSL_SDHC: 0
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0
Checking if there is a USB storage with update file wb6_update.fit
dev: usb1_vbus @ regulator@0
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
scanning bus 1 for devices... EHCI timed out on TD - token=0x80008c80
unable to get device descriptor (error=-1)
1 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
  Device 0: Vendor:          Rev: 1100 Prod:
            Type: Removable Hard Disk
            Capacity: 7720.0 MB = 7.5 GB (15810560 x 512)
reading wb6_update.fit
** Unable to read file wb6_update.fit **
reading wb6_update_FACTORYRESET.fit
1 bytes read in 19 ms (0 Bytes/s)

##############################
# Detected USB flash drive with update file
# Filename: wb6_update_FACTORYRESET.fit
# Press a FW key if you want to update firmware from this file
# or wait 3 seconds to boot normally.
##############################
USB update procedure start
Checking if ubootenv part is present
## Loading FIT header to 0x82000000 ...
reading wb6_update_FACTORYRESET.fit
## Loading FIT strings to 0x82000028 ...
reading wb6_update_FACTORYRESET.fit
## Loading FIT struct to 0x82000100 ...
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (820020c8)
   Skip 11324728 bytes of data
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (82001384)
   Skip 47891 bytes of data
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (82001864)
   Skip 34749 bytes of data
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (82001098)
   Skip 230233232 bytes of data
reading wb6_update_FACTORYRESET.fit
** wb6_update_FACTORYRESET.fit shorter than offset + len **
Can't find subimage 'ubootenv'
Extracting kernel
## Loading FIT header to 0x82000000 ...
reading wb6_update_FACTORYRESET.fit
## Loading FIT strings to 0x82000028 ...
reading wb6_update_FACTORYRESET.fit
## Loading FIT struct to 0x82000100 ...
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (820020c8)
reading wb6_update_FACTORYRESET.fit

U-Boot SPL 2017.03-wb1.3.0-g520058c326 (Jan 18 2022 - 10:56:38)
DRAM init ok, rows:15, ncs:1, size: 512MB
.p0_mpdgctrl0   = 0x010c010c
.p0_mpdgctrl1   = 0x0e3f0e3f
.p0_mprddlctl   = 0x3f3f3f43
.p0_mpwrdlctl   = 0x3f3f3c37
.p0_mpwldectrl0 = 0x00050009
.p0_mpwldectrl1 = 0x000a000a
Trying to boot from MMC1
Warning - USDHC2 controller not supporting


U-Boot 2017.03-wb1.3.0-g520058c326 (Jan 18 2022 - 10:56:38 +0000)

CPU:   Freescale i.MX6ULL rev1.1 792 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 37C
Reset cause: POR

Не подскажете куда копать? На контроллере наклейка HW 6.9.1A/3

Добрый день.
Крайне рекомендую для начала проверить MD5 файла, прямо на флешке.

root@ph:/ # mount_msdosfs /dev/da0s1 /mnt/
root@ph:/ # cd /mnt/
root@ph:/mnt # fetch https://fw-releases.wirenboard.com/fit_image/stable/67/latest.fit
latest.fit                                             227 MB 4794 kBps    49s
root@ph:/mnt # fetch https://fw-releases.wirenboard.com/fit_image/stable/67/latest.fit.md5
latest.fit.md5                                          33  B  249 kBps    00s
root@ph:/mnt # md5 latest.fit
MD5 (latest.fit) = 031834f066da9633946c11e9ee034667
root@ph:/mnt # cat latest.fit.md5
031834f066da9633946c11e9ee034667
root@ph:/mnt # ll
total 469464
-rwxr-xr-x  1 root  wheel  239058970 Nov 25 15:33 latest.fit*
-rwxr-xr-x  1 root  wheel         33 Nov 25 15:33 latest.fit.md5*
root@ph:/mnt # mv latest.fit wb6_update_FACTORYRESET.fit
root@ph:/mnt # cd ~
root@ph:~ # umount /mnt

Все то же самое:

U-Boot 2017.03-wb1.3.0-g520058c326 (Jan 18 2022 - 10:56:38 +0000)

CPU:   Freescale i.MX6ULL rev1.1 792 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 40C
Reset cause: WDOG
Model: Wiren Board rev. 6.1 (i.MX6UL)
Board: Wiren Board MX6UL
DRAM:  512 MiB
MMC:   FSL_SDHC: 0
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@02188000
Hit any key to stop autoboot:  0
Checking if there is a USB storage with update file wb6_update.fit
dev: usb1_vbus @ regulator@0
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
scanning bus 1 for devices... EHCI timed out on TD - token=0x80008c80
unable to get device descriptor (error=-1)
1 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
  Device 0: Vendor:          Rev: 1100 Prod:
            Type: Removable Hard Disk
            Capacity: 7720.0 MB = 7.5 GB (15810560 x 512)
reading wb6_update.fit
** Unable to read file wb6_update.fit **
reading wb6_update_FACTORYRESET.fit
1 bytes read in 19 ms (0 Bytes/s)

##############################
# Detected USB flash drive with update file
# Filename: wb6_update_FACTORYRESET.fit
# Press a FW key if you want to update firmware from this file
# or wait 3 seconds to boot normally.
##############################
USB update procedure start
Checking if ubootenv part is present
## Loading FIT header to 0x82000000 ...
reading wb6_update_FACTORYRESET.fit
## Loading FIT strings to 0x82000028 ...
reading wb6_update_FACTORYRESET.fit
## Loading FIT struct to 0x82000100 ...
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (820020c8)
   Skip 11327064 bytes of data
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (82000a64)
   Skip 47891 bytes of data
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (82000f44)
   Skip 36056 bytes of data
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (82002260)
   Skip 227644960 bytes of data
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (82000c34)
** wb6_update_FACTORYRESET.fit shorter than offset + len **
Can't find subimage 'ubootenv'
Extracting kernel
## Loading FIT header to 0x82000000 ...
reading wb6_update_FACTORYRESET.fit
## Loading FIT strings to 0x82000028 ...
reading wb6_update_FACTORYRESET.fit
## Loading FIT struct to 0x82000100 ...
reading wb6_update_FACTORYRESET.fit
FAT: Misaligned buffer address (820020c8)
reading wb6_update_FACTORYRESET.fit

U-Boot SPL 2017.03-wb1.3.0-g520058c326 (Jan 18 2022 - 10:56:38)
DRAM init ok, rows:15, ncs:1, size: 512MB
.p0_mpdgctrl0   = 0x010c010c
.p0_mpdgctrl1   = 0x0e3f0e3f
.p0_mprddlctl   = 0x3f3f3e43
.p0_mpwrdlctl   = 0x3f3f3b36
.p0_mpwldectrl0 = 0x00050009
.p0_mpwldectrl1 = 0x000a000a
Trying to boot from MMC1
Warning - USDHC2 controller not supporting


U-Boot 2017.03-wb1.3.0-g520058c326 (Jan 18 2022 - 10:56:38 +0000)

CPU:   Freescale i.MX6ULL rev1.1 792 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 40C
Reset cause: POR
Model: Wiren Board rev. 6.1 (i.MX6UL)
Board: Wiren Board MX6UL
DRAM:  512 MiB
MMC:   FSL_SDHC: 0
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  1

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

не помогает

P.S. а какое ему дело до того, есть там /usr или нет? он должен взять образ и тупо его влить на распаянную emmc в случае фактори резета…

Весьма похоже на срабатывание watchdog в процессе распаковки образа.

Да, нет разницы что в разделе, оттуда ничего не используется в процессе Factory reset.
Если контроллер загружается - самый лучший выход это обновить сначала uboot (стоит старый) так:

apt install u-boot-wb6
u-boot-install-wb

Или (если не загружается) отключить на время factory reset перемычкой.

Ну всё, в консоли - тишина. То есть при включении загрузчик ничего не выдаёт. Я так понимаю, что это аппаратная проблема. Везти к вам?

Тишина - после каких-то действий?

Судя по версии контроллера - он не на гарантии. Но - напишите пожалуйста его серийный номер, проверю дополнительно.

Если контроллер негарантийный - то ремонт будет стоить, скорее всего не дешевле новго, к сожалению.

S/N: AW4W7LWE

Нет, никаких перемычек не снимал, ничего не перемыкал. Разве что для очистки совести снимал батарею и KNX-модуль, вдруг они влияют.

Еще пробовал в ком строке U-boot разобраться как он там грузит ядро, подсунуть ему хотя бы init=/bin/sh, но этот гад же каждые n-секунд тебе все сбрасывает и начинает отсчет autoboot’а

То есть сейчас при подаче питания на контроллер светится зеленый светодиод, если ничего кроме питания не подключать - раз в 10-20 секунд светодиод коротко (на долю секунды выключается (срабатывает wachdog) и опять светится?
При подключении USB в Debug Console - само устройство (порт) определяется?
Если дело в watchdog, в аппаратном - то надо его отключить, думаю.