The OpenWrt Firmware Selector

Usually, you use the Attended SysUpgrade server by running one of its clients, which are as far as I know these four:

  1. Firmware Selector - this thread, so no explanation needed.
  2. LuCI Attended Sysupgrade app - the web based client that you install on your router.
  3. auc - a command line client that does the same, available in OpenWrt since ~2018 through 23.05.
  4. owut - new command line client that replaced auc in snapshot, and future releases (24.x and later).

Lots of details here

Or, you could use the ASU server directly, as I hint in this post. (There are a lot of details glossed over in that, but feel free to ask about it there.)

Aye, there's the rub. As you are keenly aware, the chain of events leading from source code to a router upgrade is long and complicated, so lots of things can break along the road and it's often hard to pinpoint where it all goes wrong.

First, the buildbots have to create their build artifacts and upload them to https://downloads.openwrt.org/.

Second, ASU server has to monitor those builds, and at the proper time, extract information from them (version numbers, package lists, all that stuff). You can see an overview at https://sysupgrade.openwrt.org/, but to answer your question "is it working?" you have to dig deeper. Looking at its static data in https://sysupgrade.openwrt.org/json/v1/ sometimes can tell us, as the starting point for the router-based clients is the overview.json, if it's missing, nothing can proceed.

Firmware Selector, on the other hand, does its own metadata harvesting, so if the ASU server's metadata harvesting fails, then FS can still work, and vice versa, so that's confusing.

Or, start surfing through the directories there, and see if there are missing files (which of course assumes you know what should be there, and that's impossible for almost everyone). For example, I know there should be a packages directory under https://sysupgrade.openwrt.org/json/v1/snapshots/ (the ASU server is broken right now, so it's not there), but how would anyone else know this?

Third, and most important to FS is that ASU server also provides a builder backend using the imagebuilder artifacts from the first step, above. All clients use this component, but they all use it a bit differently, which is why sometimes an upgrade with FS fails, but one using the LuCI app will succeed.

Given that shortish (for me) wall of text, the only answer I can come up with is
Q: "How do I know if ASU server is working?"
A: "Try an upgrade and see if it works..."

(Alternatives, use imagebuilder, SDK or source builds.)

Finally, an easy one :grin:: https://sysupgrade.openwrt.org/

Look at the API link and you can probably figure out some of the functionality the server provides, most notably the "build request" which is what FS is using to create the custom images. (Oho, I just went there and that's broken, too.)

And, as always, for The Hardcore™ just read the code: https://github.com/openwrt/asu/

5 Likes