Image creation

Any device running Ubuntu Core is instantiated from an image. This image contains little more than the kernel, an init process, and a few essential tools. On all but the earliest releases of Ubuntu Core, even the snapd daemon that manages snaps is itself installed via its own snap.

Pre-built images are available for supported platforms, including Raspberry Pi, Intel NUCs and x86/KVM virtualisation, and these can be download and easily installed. See Supported platforms for the current list and for download links to both the images and the model assertions they use.

I was confused about this documentation page:

First we start with JSON description for Pi and then we mention about amd64,

I would remove mention to pi since it could break more often see:

Maybe a small flow schema would make it clearer.

My 2c

Thanks for pointing this out, and I think you’re absolutely right about the confusion caused by starting with the RPi example before building the amd64 image. I’ve replaced the Pi example with an amd64 one. A flow schema is a good idea too - especially when it comes to the roles played by the kernel, gadget, base and snapd snaps. We’ll give it some thought and come up with something.

1 Like


you write:
The input for defining and signing such a document is provided as JSON text:

while that shows the input file below it, there is no further mention about signing it or how to convert it from json to assertion … a link to something like “how to sign a model assertion” or describing it in the doc itself would surely be helpful…

1 Like

Good point. This is actually covered in Custom images, but I’ll link to it directly from that section of this doc.

1 Like

yeah, i just noticed the link at the very bottom (kind of more feeling like a footnote there :slight_smile: ) … putting it somewhere closer to the json document would be good …


Is a “model assertion” signed or not? This page seems to jump back and forth as to whether the model assertion is the JSON text file used to create the assertion, or is the signed assertion itself. Note that, after the JSON file, you read:

“The above example shows the reference model assertion for amd64.”

Well, no, it’s not, is it? It’s clearly not signed, so it can’t be a model assertion. I would just like terminology to be precise. Is there an official name for the JSON file that is the basis for the subsequent signed assertion?

Should the list of reference images be updated to include Intel NUC? And what is the status of Snapdragon, as there is no UC20 image for it, only UC18. Is a new reference image coming in UC22?

Thanks for the comment, and it’s a good point about a model assertion being signed. I’ve updated the text and will try to ensure we’re consistent with other assertions and their signed state.

The early link to “Supported platforms” actually links to “System requirements”.

Fixed, thank you! (they used to be on the same page)

Not sure if you want to keep promoting Qualcomm DragonBoard as its most recent support is UC18, Also, the board name is DragonBoard, the processor is Snapdragon.

1 Like