Greetings!
After a few years of my WB 7.2’s flawless operation, I’ve run into a major issue and need your help, please.
The problem began when I was trying to install zigbee2mqtt which failed due to low space on rootfs (~10%). I was already running wb-2602 but for some reason, rootfs wasn’t expanded to 2 GB; it was still only 1 GB. As far as I understood, another firmware update to the same version was necessary.
I performed this firmware update via the web UI using 202604220822_wb-2602_bullseye_wb7x.fit. Debug output:
Received good update FIT /mnt/data/.wb-update/202604220822_wb-2602_bullseye_wb7x.fit, starting update
===============================================================================
Sat 25 Apr 2026 11:27:40 PM UTC: started update from /mnt/data/.wb-update/202604220822_wb-2602_bullseye_wb7x.fit
===============================================================================
Description: WirenBoard firmware update
Compatible device: wirenboard,wirenboard-720
Firmware version: 202604220822
Firmware compatible: +extended-rootfs +single-rootfs +fit-factory-reset +force-repartition +repartition-ramsize-fix +fit-immutable-support +wb8-debug-network-update-fix +wrong-ab-layout-fix +uboot-dynamic-env +update-from-cloud
Release name: wb-2602
Release suite: stable
Release target: wb7/bullseye
Release repo prefix:
Time of creation: Wed 22 Apr 2026 08:23:08 AM UTC
===============================================================================
>>> 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.00457209 s, 3.6 MB/s
tar: stdout: write error
>>> Firmware seems to be compatible with this controller
>>> Extracting install script (install_update.sh) from FIT
>>> Running install script
>>> Using /etc/fw_env.config from rootfs
>>> Using flags from /mnt/data/.wb-update/install_update.web.flags: --force-repartition
>>> Console logging enabled; tempfile /tmp/tmp.dJeDNjCO4e, final file /mnt/data/.wb-update/wb-console.log will be written on exit
32+0 records in
32+0 records out
16384 bytes (16 kB, 16 KiB) copied, 0.00506431 s, 3.2 MB/s
tar: stdout: write error
>>> Firmware seems to be compatible with this controller
>>> Checking SHA1 hash of rootfs
>>> SHA1 hash of rootfs ok
>>> rootfs is valid, installing firmware update
>>> Checking, /tmp/tmp.pxl5l3p69X/.wb-restore/factoryreset.fit supports features: single-rootfs wb8-debug-network-update-fix wrong-ab-layout-fix uboot-dynamic-env
>>> Storing this update as factory FIT to use as bootlet (supports single-rootfs wb8-debug-network-update-fix wrong-ab-layout-fix uboot-dynamic-env)
>>> Old factory FIT will be kept as factoryreset.original.fit and will still be used to restore firmware
>>> Copying /mnt/data/.wb-update/202604220822_wb-2602_bullseye_wb7x.fit to factory default location as requested
>>> Flashed U-boot version is too old, updating it before reboot
Das U-Boot installer 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')
449+1 records in
449+1 records out
459940 bytes (460 kB, 449 KiB) copied, 0.587828 s, 782 kB/s
Syncing device
>>> Watch logs in the debug console, or in /mnt/data/.wb-update/state/update.log
>>> Rebooting system to install update
>>> Waiting for Wiren Board to boot again...
>>> Reboot system
However, the UI wasn’t coming back online. The MQTT broker didn’t initialise and the web UI failed to connect to WB. Failure to connect to ws://…
Due to the – as I’ve now realised – fragile setup, I could not ssh into the WB either. I had been doing that via Tailscale + ssh key but after the firmware update, Tailscale was apparently wiped out or otherwise failed to work, and perhaps its networking messed up the LAN connection. When I tried to ssh into the WB using the LAN IP address, the password was getting rejected and the ssh key wasn’t being used.
I tried to get in via the Debug Console port using screen on macOS but when I logged in, I got immediately logged out because the default shell for the root user was set to /usr/bin/zsh and that was apparently no longer present either. I couldn’t find any way to stay logged in.
I tried some desperate passwd editing by first doing
setenv optargs ro rootwait fixrtc single init=/bin/sh
run bootcmd
mount -o remount,rw /
and then changing the login shell to /bin/bash but to no avail. It still tried to load zsh after login.
Desperate, after a couple of hours, I opted to reset the entire device (factory reset).
I followed the procedure by pressing the FW button and then holding it for 4 seconds on prompt, but it appears that the entire process failed too.
Now I’m stuck in a reboot loop which ends with the following:
Environment size: 43/131068 bytes
Resetting to default environment
Info: input data size = 43 = 0x2B
Net: No ethernet found.
Hit key to stop autoboot in 1s
Info: input data size = 4540 = 0x11BC
switch to partitions #0, OK
mmc1(part 0) is current device
eMMC found on device 1
Press FW button to enter firmware update mode
…
Failed to load ‘/boot/uEnv.txt’
Running default loadzimage …
Failed to load ‘/boot/zImage’
Here it waits a little and reboots every time.
Please, how can I reset the device to factory settings?
If you need any more debug information, please, let me know. Thank you!