Is there a way to upgrade unmanaged ResinOS without flashing the image again?

Is there a way to upgrade ResinOS without flashing the image again?

This was asked on our Gitter presence, and I’m copying it here as it seems like a question that many people could benefit from the answer to.

Why yes, thank you for asking.
We’ve got a well scripted, but not yet automated, process that we call ResinHUP. You ask for it, provide a link to your devices, and a decent range of suitable times; we securely connect across to the supervisor and do some magic. There is work happening on making this a self-serve process.
Andrew.

1 Like

@andrewl I think Max ( on Gitter ) is using unamanged resinOS

Yes I use unmanaged resinOS with resin local <command>. I have only one device and since I use it for my home automatisation it is not reachable from outside my lan (internet).

It would be nice to have a kind of resin local update command with which I could update my device.

I’ve just taken a look through our documentation to see what I could find and the ResinHUP procedure pretty much relies on having the Supervisor OS which, being unmanaged, you don’t.
I’m think there must be a way to use your existing OS to create a new partition, flash ResinOS to it, copy the relevant data across and chose to boot from it; I just wouldn’t like to guarantee what that would be.

I do not understand what a SupervisorOS is.

As far as i can tell the architecture document on https://resinos.io/docs/architecture/ describes an upgrade procedure. Maybe there is no unmanaged command for it - yet - but the partition resin-update exists.

What I would have expected is a kind of resin local update which would look for a new version of resin-root and, in case there is a new version, download and extract it to resin-update, make that partition the new one and reboot to the new version.

Yeah, the document does contain a couple of teasers doesn’t it; just enough to hint that the capability is there, but not enough to actually unlock it!

So, what happens next?

  • You’re reaching the end of my useful knowledge, so I will be tagging more experienced people into this, but they’ll probably get to it after the bank holiday weekend.
  • I’ll be making notes to try and get resin local upgrade added to the CLI, so any specification style pointers you can make can only help you get the tool you want.

Should I open a ticket on github for this functionality?

That would be great! I was going to do so once the right-here-right-now problems were resolved; but if it comes from you it’s more likely to represent what you want, and will include you in the communications loop out-of-the-box.

I’m not sure if I should make the request on https://github.com/resin-io/resin-cli or on https://github.com/resin-os/resin-device-toolbox.

ATM it is quite confusing what the official CLI for resinOS is going to be: rdt or resin-cli

We’re currently refactoring our repositories there to separate the SDK from the UI, to facilitate development of other interfaces (I dream of a WebUI one day, where you have a text editor inside the Resin Application Webpage). I’d put this feature request in resin-cli and if the toolkit doesn’t support it then we’ll spawn a pre-requisite ticket.

Opened issue https://github.com/resin-io/resin-cli/issues/483

@andrei might share some insights here. Do we have a way to upgrade unmanaged resinOS?

No, currently hostOS updates are only available for managed images.

Has anyone come up with a way to do this? I have an unmanaged image and would like to support hostOS updates.