Updating OpenWrt installation with Attended SysUpgrade

Author Avatar

Sangeeth Sudheer

I’ve been putting off updating OpenWrt running on my Raspberry Pi 4 for a while now because it seemed daunting. There is not a straightforward option in the LuCI interface to do such an upgrade (yet). Even if you put up with downloading the image file and flashing it manually, you’d keep the core config but lose all the additional packages you installed via opkg and would have to reinstall those again. Or, note those packages down initially and make an image build containing them from the firmware download page to use in the update process.

Latter works, but I’m lazy and I just don’t want to remember to update the list of packages next time I decide to update. As nerdy as I get, I’d rather prefer a 21st century solution like the ones found in the myriad other software I rely on . There are apparently good reasons for why the update procedure is tedious — partly due to OpenWrt’s support for a wide variety of resource-constrained devices like household routers making it a complicated affair.

I had some time to look into this earlier last week and I got to know about the Attended SysUpgrade (ASU) packages. Specifically, luci-app-attendedsysupgrade which adds System > Attended Sysupgrade menu item that takes me to a friendlier update page. When I update from this new view, it figures out what packages I additionally installed and will request an OS build with those packages and then kickoff the update process using this downloaded image.

Screenshot of my OpenWrt admin portal showing the Attended Sysupgrade page. A modal is active which shows the details of the firmware image that was built and downloaded via Attended Sysupgrade package and a button prompting me to install the firmware image.

If I prefer the CLI, I can SSH into the router and run auc to do the same thing. The wiki page has more info on usage.

I was able to use this new interface today to update to the latest 23.x release without breaking anything. Updating to 24.x however, broke things. So it seems like this is limited to doing minor/patch updates and can’t do a major version bump reliably yet. Bit disappointing.

Personally, this is what I’d have expected the default update process to look like and I hope OpenWrt maintainers one day manage to incorporate this into the core OS and LuCI interface.