This is the primary support thread for
owut- the OpenWrt Upgrade Tool, and for its predecessorauc- the Attended sysUpgrade Command line tool.
If you are an auc user on 23.05 or earlier, an upgrade to 24.10 or later will replace auc with owut automatically.
I've been pursuing the holy grail of seamless upgrades for some time now, and the results are embodied in a ucode script I've named owut.
owut = OpenWrt Ugrade Tool
owut is available on 24.10 and later, and main SNAPSHOT at this point, no port available for 23.05 or earlier due to dependency on ucode-mod-uclient. For transition from 23.05 to newer versions, you can use the auc tool documented here (tldr, you'll install it and do something like auc -b 24.10 -B 24.10.3).
Your best starting point for using owut is the wiki page: https://openwrt.org/docs/guide-user/installation/sysupgrade.owut
$ opkg update && opkg install owut ## for 24.10
$ apk update && apk add owut ## snapshots and after 24.10
$ owut -h
owut - OpenWrt Upgrade Tool version 2024.06.04-r1 (/usr/bin/owut)
...
- Code: https://github.com/efahl/owut/
- Issues: here or https://github.com/efahl/owut/issues
Example
A typical check, run just now on my x86 testing box, which was upgraded yesterday using owut upgrade, hence the recent version numbers:
$ owut check -v
Board-name generic
Target x86/64
Root-FS-type squashfs
Sys-type combined-efi
Package-arch x86_64
Version-from SNAPSHOT r26504-d4acd05218 (kernel 6.6.32)
Version-to SNAPSHOT r26515-6e51b363e9 (kernel 6.6.32)
Build-FS-type squashfs
Build-at 2024-06-04T08:19:41Z
Image-prefix openwrt-x86-64-generic
Image-file openwrt-x86-64-generic-squashfs-combined-efi.img.gz
Image-URL https://downloads.openwrt.org/snapshots/targets/x86/64/openwrt-x86-64-generic-squashfs-combined-efi.img.gz
Installed 273 packages
Top-level 81 packages
Default 46 packages
User-installed 50 packages (top-level only)
Package version changes:
base-files 1596~d4acd05218 1596~6e51b363e9
owut 2024.06.04-r1 missing to-version
1 packages missing in target version, DO NOT UPGRADE!
2 packages are out-of-date.
Default package analysis:
Default Provided-by
dnsmasq dnsmasq-full
kmod-dwmac-intel not-installed
nftables nftables-json
There are currently package build failures for SNAPSHOT x86_64:
Feed: base
kexec-tools Mon Jun 3 13:06:48 2024 - Package not installed locally
Feed: packages
basicstation Mon Jun 3 14:10:58 2024 - Package not installed locally
elektra Mon Jun 3 15:05:33 2024 - Package not installed locally
gatling Mon Jun 3 14:30:01 2024 - Package not installed locally
gcc Mon Jun 3 13:18:49 2024 - Package not installed locally
kadnode Mon Jun 3 13:22:19 2024 - Package not installed locally
libuhttpd Mon Jun 3 14:37:34 2024 - Package not installed locally
micropython Mon Jun 3 13:27:21 2024 - Package not installed locally
shadowsocks-libev Mon Jun 3 14:24:44 2024 - Package not installed locally
umurmur Mon Jun 3 14:48:24 2024 - Package not installed locally
xtables-addons Mon Jun 3 15:40:03 2024 - Package not installed locally
Feed: telephony
baresip Mon Jun 3 16:46:12 2024 - Package not installed locally
freeswitch Mon Jun 3 16:46:14 2024 - Package not installed locally
freeswitch-mod-bcg729 Mon Jun 3 16:48:53 2024 - Package not installed locally
freetdm Mon Jun 3 16:48:57 2024 - Package not installed locally
Failures don't affect this device, details at
https://downloads.openwrt.org/snapshots/faillogs/x86_64/
Pings:
@spence got me interested in the code side of things with Detecting user installed pkgs - #8 by spence
@aparcar has been looking for ways to reduce the number of posts about broken builds against the existing upgrade tools (auc, LuCI Attended Sysupgrade, Firmware Selector), so I added checks for that sort of thing.
A few months back, @daniel mentioned something about rewriting auc in ucode in a PR against auc, so I incorporated auc's basic build-with-installed-packages and added many options. When the ucode-mod-uclient package was published shortly thereafter, I had no excuses.