Building an x86 core 20 device image from scratch

Does such a tutorial exist? :slight_smile:

I’m using the snapcraft yaml found in the pc branch from:


and using it modified to use the source locally which I cloned from the master branch so that I could modify the Makefile.

But obviously this uses ftpmaster.internal. I wasn’t sure but I sort of figured I might just be able to replace it with an external package mirror and my kernel snap built but I did notice an error:

W: Download is performed unsandboxed as root as file '/home/tim/kernel-snaps-uc20_2/parts/kernel/build/linux-modules-extra-5.4.0-71-generic_5.4.0-71.79_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

But as I mentioned it did produce a kernel, which I am about to test. But it would be fantastic if something like the tutorial I mentioned existed so that I did not have to piece it together. It’s possible what I’m looking for exists and I haven’t found it… But I’ve looked a lot. :slight_smile:



There is a guide to making custom images here:

If you are already aware of that, then tell us which bit you are stuck on exactly, and we can probably help.

FYI you don’t need to make a custom kernel. I would advise you only do that if you need something not supported int he current Canonical kernel snap. The Canonical one is signed etc, so you can do Secure Boot and use it for the Secured grade images.


Thanks Jocado. I am aware of the guide. I am simply interested in doing all parts myself. I may want to customize my kernel for my particular cases at some point and simply using a pre-built kernel does not teach me anything. :slight_smile:

It would be nice if there was a place to discuss actually building Ubuntu Core and its internals. At any rate I was wondering if anyone could give me insight into this package:

How it’s built and used. It’s non-obvious (to me) how I use it. I’m relatively unfamiliar with debian package building mechanics outside of the basics so perhaps with more knowledge it is obvious.