Owut: OpenWrt Upgrade Tool

I was told to ignore the crc32 package error, and the upgrade worked just fine (with owut).

1 Like

Im trying to upgrade my rpi4b via Owut (from 25.12.2 to 25.12.3). It seemingly builds just fine, but when i try to install the built image, with “owut install” it never reboots.

root@OpenWrt:~# owut install
Installing /tmp/firmware.bin and rebooting...
root@OpenWrt:~#
root@OpenWrt:~#

any suggestions?

edit:add my uci-config

root@OpenWrt:~# tail /etc/config/attendedsysupgrade

config client 'client'
        option upgrade_packages '1'
        option auto_search '0'
        option advanced_mode '1'
        option login_check_for_upgrades '1'

config owut 'owut'
        option rootfs_size '1024'

EDIT2: I just reduced option rootfs_size to 512. It rebooted fine now. However, the configuration was not present. So i had to load from a backup.

What is the default rootfs_size for rpi4b?

Aha, you're on snapshot, I thought you were using 25.12. That kmod has been removed and functionality subsumed into other places, so just --remove kmod-lib-crc32 and it will work fine.

Default is probably 104 MB, like most devices. 1024 should have been fine, not sure what changing to 512 would do except maybe avoid certain portions of the install drive? What media are you using, sdcard?

Yours is the first report of an arm device wiping the config on change of rootfs size, so I'm very interested in what's going on here. (All previous reports indicate the arm devices restored config irrespective of partition size changes, unlike x86 which always wipes the partition table.)

Yes I am using an 32GB sdcard. (I also have a 2GB usb-drive connected for persistent collectd stats, in case of reboots/upgrade)
EDIT: Almost forgot. I also have a "Lenovo Lenovo USB-C to LAN" connected via usb, to get another network port. That is pretty much it. Let me know if you'd like more info

The no-reboot is very strange. The image size shouldn't have any impact on that at all, as the new image should contain everything accessible in the right place irrespective of size. It is possible that the sdcard had an error with the bigger rootfs size and that caused corruption somewhere, but that seems pretty unlikely.

Had you done any previous upgrades using owut?

Yes the previous owut upgrade I did had a similar issue (I would guess it was from 25.12.1 to 25.12.2). Back then, it successfully rebooted (with rootfs=1024), but i lost the configuration and had to restore from backup.

Hi, I have the same issue. I want to upgrade from the 24.10.6 to the latest stable 25.12. However, I get a warning about three package downgrades - procd:

procd                               2026.03.14~c59f2d80-r1  2026.03.13~58eb263d-r1 (downgrade)
procd-seccomp                       2026.03.14~c59f2d80-r1  2026.03.13~58eb263d-r1 (downgrade)
procd-ujail                         2026.03.14~c59f2d80-r1  2026.03.13~58eb263d-r1 (downgrade)

Is it safe to force an update despite this?

Worked fine for me.

I did get a confirmation it is safe in another thread, the one from announcement of 25.12.2.

1 Like

In should have the latest owut (I reflashed yesterday to get the dnsmas fix) but I am afraid this but is still around:

root@device:/root# owut check -v -v
owut - OpenWrt Upgrade Tool 2026.04.09~5d6760b5-r1 (/usr/bin/owut)
Reference error: left-hand side expression is null
In collect_build_info(), file /usr/bin/owut, line 1371, byte 32:
  called from function collect_overview (/usr/bin/owut:1487:21)
  called from function collect_all (/usr/bin/owut:1561:19)
  called from anonymous function (/usr/bin/owut:2340:15)

 `        ver_to = release.branches[b].latest;`
  Near here ---------------------------^

Edit: I compared the owut versions and I see it is the same as in the previous report... Sry.

Yeah, it's fixed in my repo, but I haven't pushed out a release on the packages repo yet...

Edit
You could grab the latest (version number will be wrong, but whatever):

wget -O /usr/bin/owut https://raw.githubusercontent.com/efahl/owut/refs/heads/main/files/owut
1 Like

Got your latest version from Github, not sure what to make of this:

root@OpenWrt:/usr/bin# cp owut owut.bak
root@OpenWrt:/usr/bin# ls -la owut*
-rwxr-xr-x    1 root     root         74023 May  4 18:30 owut
-rwxr-xr-x    1 root     root         74023 May 14 11:37 owut.bak
root@OpenWrt:/usr/bin# wget -O /usr/bin/owut https://raw.githubusercontent.com/efahl/owut/refs/heads/main/files/owut
Downloading 'https://raw.githubusercontent.com/efahl/owut/refs/heads/main/files/owut'
Connecting to 185.199.108.133:443
Writing to '/usr/bin/owut'
/usr/bin/owut        100% |*******************************| 74108   0:00:00 ETA
Download completed (74108 bytes)
root@OpenWrt:/usr/bin# ls -la owut*
-rwxr-xr-x    1 root     root         74108 May 14 11:37 owut
-rwxr-xr-x    1 root     root         74023 May 14 11:37 owut.bak
root@OpenWrt:/usr/bin# owut check -v
owut - OpenWrt Upgrade Tool %%VERSION%% (/usr/bin/owut)
Available 'version-to' values from https://sysupgrade.openwrt.org:
  22.03 release branch
    22.03.0-rc1
    22.03.0-rc4
    22.03.0-rc5
    22.03.0-rc6
    22.03.0
    22.03.1
    22.03.2
    22.03.3
    22.03.4
    22.03.5
    22.03.6
    22.03.7 (latest)
    22.03-SNAPSHOT
  23.05 release branch
    23.05.0-rc1
    23.05.0-rc2
    23.05.0-rc3
    23.05.0-rc4
    23.05.0
    23.05.2
    23.05.3
    23.05.4
    23.05.5
    23.05.6 (latest)
    23.05-SNAPSHOT
  24.10 release branch
    24.10.0-rc1
    24.10.0-rc2
    24.10.0-rc3
    24.10.0-rc4
    24.10.0-rc5
    24.10.0-rc6
    24.10.0-rc7
    24.10.0
    24.10.1
    24.10.2
    24.10.3
    24.10.4
    24.10.5
    24.10.6 (latest)
    24.10-SNAPSHOT
  SNAPSHOT main branch
    SNAPSHOT (latest)

Your specified version-to '25.12.3' is not available.  Pick one from above.

(I am running 25.12.3 release currently.)

It means that the upstream metadata contains nothing about 25.12 releases yet.

You can see the cause in https://sysupgrade.openwrt.org/json/v1/overview.json, scan down to the 25.12 section and look at the targets values (compare with other versions to see what it should look like).

$ curl -s https://sysupgrade.openwrt.org/json/v1/overview.json | jsonfilter -e '$.branches["25.12"].targets'
{ }

$ curl -s https://sysupgrade.openwrt.org/json/v1/overview.json | jsonfilter -e '$.branches["24.10"].targets'
{ "loongarch64\/generic": "loongarch64_generic", "kirkwood\/generic": "arm_xscale", "qoriq\/generic": "powerpc64_e5500", ...

EDIT
Because...
The containers have not been built (see https://github.com/openwrt/docker/actions/runs/25852078453), which results in nothing in https://downloads.openwrt.org/releases/25.12.4/.overview.json or https://downloads.openwrt.org/releases/25.12.4/.targets.json (should all be completed in an hour or two, if things keep moving along without issues).

1 Like

I used owut to install 25.12.3, so it definitely contained data about 25.12 releases; there must be a problem with the upgrade servers themselves?

(Edit: Just saw your edit. I've seen owut and the upgrade servers act weirdly while building before, didn't see this message before is all.)

Recently installed the package luci-app-usteer on my router and dumb APs.
As a result I had to replace wpad-basic-mbedtls with wpad-mbedtls, as described in

Thus when I upgrade to 25.12.4 using owut, I get the following warning:

  Default                                Provided-by
  nftables                               nftables-json
  wpad-basic-mbedtls                     not installed

~
~

WARNING: There are 1 missing default packages, confirm this is expected before proceeding```

Is it possible to treat wpad-basic-mbedtls in a similar to nftables?

That's basically cosmetic. If you indeed replaced the wpad-basic with the full wpad, then you're fine.

IIRC, there's no way in APK to define what exact packages can replace another and thus don't give the error. The system basically guesses by part of the name, but it's not foolproof.

1 Like

Yes, but you need to do it explicitly, since the default package is not a virtual*. Simply add a line to the config that ignores that package:

$ uci add_list attendedsysupgrade.owut.ignored_defaults="wpad-basic-mbedtls"
$ uci commit

$ owut check -v
...
  Default                      Provided-by
  nftables                     nftables-json
  wpad-basic-mbedtls           user ignored

now it's "user ignored" and no more warning message.

--
* owut does a rudimentary what-provides <x> for those missing defaults. Since nftables is a virtual package and not a concrete one, it's easy to find, like this:

$ apk query --fields name,status --match provides nftables
Name: nftables-json
Status: installed

Name: nftables-nojson

But, the default wpad-basic-mbedtls isn't virtual, it's the actual concrete package, so the above search comes up empty and hence the "not installed" message is the best I can do...

2 Likes

Thank you for creating owut. I had an excellent experience when it updated my router from 24.10.4 to 24.10.6. Now I want to go forward to 25.12.4, but it reports that I have downgrades for LuCI and procd. The procd downgrade was mentioned as safe to --force on the owut wiki page, but it's a bit odd that all of my LuCI packages are marked as downgrades. The wiki page only declares the luci-app-addblock package as being safe to --force. Is it safe to use the --force flag to do this upgrade, or is something broken on my router? Thanks!

Here's the output from owut check -v -V 25.12:

owut - OpenWrt Upgrade Tool 2026.04.09~5d6760b5-r1 (/usr/bin/owut)
ASU-Server     https://sysupgrade.openwrt.org
Upstream       https://downloads.openwrt.org
Target         mediatek/filogic
Profile        cudy_wr3000s-v1
Package-arch   aarch64_cortex-a53
Root-FS-type   squashfs
Sys-type       sysupgrade
Version-from   24.10.6 r29141-81be8a8869 (kernel 6.6.127)
Version-to     25.12.4 r32933-4ccb782af7 (kernel 6.12.87)
Build-commit   https://git.openwrt.org/?p=openwrt/openwrt.git;a=shortlog;h=4ccb782af7
Build-FS-type  squashfs
Build-at       2026-05-13T22:42:09Z (~5 days ago)
Image-prefix   openwrt-25.12.4-mediatek-filogic-cudy_wr3000s-v1
Image-URL      https://downloads.openwrt.org/releases/25.12.4/targets/mediatek/filogic
Image-file     openwrt-25.12.4-mediatek-filogic-cudy_wr3000s-v1-squashfs-sysupgrade.bin
Installed      167 packages
Top-level       51 packages
Default         34 packages
User-installed  23 packages (top-level only)

Package version changes:
  apk-mbedtls                  not-installed                  3.0.5-r3
  attendedsysupgrade-common    9                              10
  base-files                   1670~81be8a8869                1707~4ccb782af7
  bash                         5.2.37-r1                      5.3-r2
  busybox                      1.36.1-r2                      1.37.0-r6
  ca-bundle                    20250419-r1                    20260223-r1
  cgi-io                       2022.08.10~901b0f04-r21        2025.12.11~658b14bd-r1
  dnsmasq                      2.90-r5                        2.91-r3
  dropbear                     2024.86-r2                     2025.89-r1
  eip197-mini-firmware         20241110-r2                    20260221-r1
  firewall4                    2024.12.18~18fc0ead-r1         2025.03.17~b6e51575-r2
  fstools                      2024.07.14~408c2cc4-r1         2026.02.15~8d377aa6-r1
  fwtool                       2019.11.12~8f7fe925-r1         2025.10.03~04cd252e-r1
  getrandom                    2024.04.26~85f10530-r1         2025.10.30~6f78fa49-r1
  hostapd-common               2024.09.15~5ace39b0-r2         2025.08.26~ca266cc2-r1
  iw                           6.9-r1                         6.17-r1
  iwinfo                       2024.10.20~b94f066e-r1         2026.01.14~f5dd57a8-r1
  jansson                      2.14-r3                        2.14.1-r1
  jshn                         2025.07.23~49056d17-r1         2026.03.13~81563384-r2
  jsonfilter                   2025.04.18~8a86fb78-r1         2026.03.16~b9034210-r1
  kmod-cfg80211                6.6.127.6.12.61-r1             6.12.87.6.18.26-r1
  kmod-crypto-acompress        6.6.127-r1                     6.12.87-r1
  kmod-crypto-aead             6.6.127-r1                     6.12.87-r1
  kmod-crypto-authenc          6.6.127-r1                     6.12.87-r1
  kmod-crypto-ccm              6.6.127-r1                     6.12.87-r1
  kmod-crypto-cmac             6.6.127-r1                     6.12.87-r1
  kmod-crypto-crc32c           6.6.127-r1                     6.12.87-r1
  kmod-crypto-ctr              6.6.127-r1                     6.12.87-r1
  kmod-crypto-des              6.6.127-r1                     6.12.87-r1
  kmod-crypto-gcm              6.6.127-r1                     6.12.87-r1
  kmod-crypto-geniv            6.6.127-r1                     6.12.87-r1
  kmod-crypto-gf128            6.6.127-r1                     6.12.87-r1
  kmod-crypto-ghash            6.6.127-r1                     6.12.87-r1
  kmod-crypto-hash             6.6.127-r1                     6.12.87-r1
  kmod-crypto-hmac             6.6.127-r1                     6.12.87-r1
  kmod-crypto-hw-safexcel      6.6.127-r1                     6.12.87-r1
  kmod-crypto-manager          6.6.127-r1                     6.12.87-r1
  kmod-crypto-md5              6.6.127-r1                     6.12.87-r1
  kmod-crypto-null             6.6.127-r1                     6.12.87-r1
  kmod-crypto-rng              6.6.127-r1                     6.12.87-r1
  kmod-crypto-seqiv            6.6.127-r1                     6.12.87-r1
  kmod-crypto-sha1             6.6.127-r1                     6.12.87-r1
  kmod-crypto-sha256           6.6.127-r1                     6.12.87-r1
  kmod-crypto-sha3             6.6.127-r1                     6.12.87-r1
  kmod-crypto-sha512           6.6.127-r1                     6.12.87-r1
  kmod-gpio-button-hotplug     6.6.127-r5                     6.12.87-r5
  kmod-hwmon-core              6.6.127-r1                     6.12.87-r1
  kmod-leds-gpio               6.6.127-r1                     6.12.87-r1
  kmod-lib-crc-ccitt           6.6.127-r1                     6.12.87-r1
  kmod-lib-crc32c              6.6.127-r1                     6.12.87-r1
  kmod-lib-lzo                 6.6.127-r1                     6.12.87-r1
  kmod-libphy                  6.6.127-r1                     6.12.87-r1
  kmod-mac80211                6.6.127.6.12.61-r1             6.12.87.6.18.26-r1
  kmod-mt76-connac             6.6.127.2025.11.06~eb567bc7-r1 6.12.87.2026.03.19~39c960c3-r2
  kmod-mt76-core               6.6.127.2025.11.06~eb567bc7-r1 6.12.87.2026.03.19~39c960c3-r2
  kmod-mt7915e                 6.6.127.2025.11.06~eb567bc7-r1 6.12.87.2026.03.19~39c960c3-r2
  kmod-mt7981-firmware         6.6.127.2025.11.06~eb567bc7-r1 6.12.87.2026.03.19~39c960c3-r2
  kmod-nf-conntrack            6.6.127-r1                     6.12.87-r1
  kmod-nf-conntrack6           6.6.127-r1                     6.12.87-r1
  kmod-nf-flow                 6.6.127-r1                     6.12.87-r1
  kmod-nf-log                  6.6.127-r1                     6.12.87-r1
  kmod-nf-log6                 6.6.127-r1                     6.12.87-r1
  kmod-nf-nat                  6.6.127-r1                     6.12.87-r1
  kmod-nf-reject               6.6.127-r1                     6.12.87-r1
  kmod-nf-reject6              6.6.127-r1                     6.12.87-r1
  kmod-nfnetlink               6.6.127-r1                     6.12.87-r1
  kmod-nft-core                6.6.127-r1                     6.12.87-r1
  kmod-nft-fib                 6.6.127-r1                     6.12.87-r1
  kmod-nft-nat                 6.6.127-r1                     6.12.87-r1
  kmod-nft-offload             6.6.127-r1                     6.12.87-r1
  kmod-phy-aquantia            6.6.127-r1                     6.12.87-r1
  kmod-ppp                     6.6.127-r1                     6.12.87-r1
  kmod-pppoe                   6.6.127-r1                     6.12.87-r1
  kmod-pppox                   6.6.127-r1                     6.12.87-r1
  kmod-slhc                    6.6.127-r1                     6.12.87-r1
  kmod-thermal                 6.6.127-r1                     6.12.87-r1
  libblobmsg-json              2025.07.23~49056d17-r1         2026.03.13~81563384-r2
  libiwinfo                    2024.10.20~b94f066e-r1         2026.01.14~f5dd57a8-r1
  libiwinfo-data               2024.10.20~b94f066e-r1         2026.01.14~f5dd57a8-r1
  libjson-script               2025.07.23~49056d17-r1         2026.03.13~81563384-r2
  libncurses                   6.4-r2                         6.4-r3
  libnftnl                     1.2.8-r1                       1.3.1-r1
  libnl-tiny                   2025.03.19~c0df580a-r1         2025.12.02~40493a65-r1
  libopenssl                   3.0.20-r1                      3.5.6-r1
  libpthread                   1.2.5-r4                       1.2.5-r5
  libreadline                  8.2-r2                         8.3-r1
  librt                        1.2.5-r4                       1.2.5-r5
  libubox                      2025.07.23~49056d17-r1         2026.03.13~81563384-r2
  libubus                      2025.10.17~60e04048-r1         2025.12.02~3cc98db1-r1
  libuci                       2025.01.20~16ff0bad-r1         2025.12.02~66127cd7-r1
  libuclient                   2024.10.22~88ae8f20-r1         2026.02.20~7a0aa2e4-r1
  libucode                     2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  libudebug                    2025.08.24~edeb4d6d            2026.01.16~875e1a7a
  libustream-mbedtls           2024.07.28~99bd3d2b-r1         2026.03.01~99f1c0db-r1
  logd                         2024.04.26~85f10530-r1         2025.10.30~6f78fa49-r1
  luci                         26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-app-firewall            26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-app-package-manager     26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-base                    26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-light                   26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-mod-admin-full          26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-mod-network             26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-mod-status              26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-mod-system              26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-proto-ipv6              26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-proto-ppp               26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-ssl                     26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  luci-theme-bootstrap         26.134.75710~1687fe2           26.134.75701~cd18b8e (downgrade)
  mt7981-wo-firmware           20241110-r2                    20260221-r1
  mtd                          26                             27
  netifd                       2025.05.23~7901e66c-r1         2026.02.26~cbb83a18-r1
  nftables-json                1.1.1-r1                       1.1.6-r1
  odhcp6c                      2024.09.25~b6ae9ffa-r1         2026.01.25~ee2949e3-r1
  odhcpd-ipv6only              2025.10.02~b14cf98c-r2         2026.03.16~edf2e523-r1
  openwrt-keyring              2024.11.01~fbae29d7-r2         2025.12.10~f0670054-r1
  ppp                          2.5.1-r1                       2.5.2-r3
  ppp-mod-pppoe                2.5.1-r1                       2.5.2-r3
  procd                        2026.03.14~c59f2d80-r1         2026.03.13~58eb263d-r1 (downgrade)
  procd-seccomp                2026.03.14~c59f2d80-r1         2026.03.13~58eb263d-r1 (downgrade)
  procd-ujail                  2026.03.14~c59f2d80-r1         2026.03.13~58eb263d-r1 (downgrade)
  rpcd                         2025.09.01~bba95191-r1         2025.12.03~ffb9961c-r1
  rpcd-mod-file                2025.09.01~bba95191-r1         2025.12.03~ffb9961c-r1
  rpcd-mod-iwinfo              2025.09.01~bba95191-r1         2025.12.03~ffb9961c-r1
  rpcd-mod-rpcsys              2025.09.01~bba95191-r1         2025.12.03~ffb9961c-r1
  rpcd-mod-ucode               2025.09.01~bba95191-r1         2025.12.03~ffb9961c-r1
  terminfo                     6.4-r2                         6.4-r3
  ubi-utils                    2.2.1-r1                       2.3.0-r1
  uboot-envtools               2024.07-r1                     2025.10-r2
  ubox                         2024.04.26~85f10530-r1         2025.10.30~6f78fa49-r1
  ubus                         2025.10.17~60e04048-r1         2025.12.02~3cc98db1-r1
  ubusd                        2025.10.17~60e04048-r1         2025.12.02~3cc98db1-r1
  uci                          2025.01.20~16ff0bad-r1         2025.12.02~66127cd7-r1
  uclient-fetch                2024.10.22~88ae8f20-r1         2026.02.20~7a0aa2e4-r1
  ucode                        2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  ucode-mod-fs                 2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  ucode-mod-math               2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  ucode-mod-nl80211            2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  ucode-mod-rtnl               2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  ucode-mod-ubus               2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  ucode-mod-uci                2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  ucode-mod-uclient            2024.10.22~88ae8f20-r1         2026.02.20~7a0aa2e4-r1
  ucode-mod-uloop              2025.07.18~3f64c808-r1         2026.01.16~85922056-r1
  uhttpd                       2025.07.06~7e64e8ba-r4         2025.10.03~ebb92e6b-r1
  uhttpd-mod-ubus              2025.07.06~7e64e8ba-r4         2025.10.03~ebb92e6b-r1
  urngd                        2023.11.01~44365eb1-r1         2025.10.03~f17e33d9-r1
  usign                        2020.05.23~f1f65026-r1         2025.10.03~c4c72b1b-r1
  wireless-regdb               2026.02.04-r1                  2026.03.18-r1
  wpad-basic-mbedtls           2024.09.15~5ace39b0-r2         2025.08.26~ca266cc2-r1
16 packages were downgraded
148 packages are out-of-date

Automatic package replacements/removals:
  Package                      Replaced-by
  opkg                         apk-mbedtls
Details at https://sysupgrade.openwrt.org/json/v1/overview.json

ERROR: Update checks reveal package downgrades

Yes, it's safe to --force.

That's another example of the same case as the procd* ones in the https://openwrt.org/docs/guide-user/installation/sysupgrade.owut#forcing_a_build. Looks like LuCI's 25.12 branch is older than the 24.10 branch, hence the out-of-order commit number in the version.

@efahl I was hoping it was that simple. Thanks for your reply.