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


#1

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.


#2

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.


#3

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


#4

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.


#5

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.


#6

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.


#7

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.

#8

Should I open a ticket on github for this functionality?


#9

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.


#10

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


#11

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.


#12

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


#13

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


#14

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


#15

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