Ubuntu Core documentation

Ubuntu Core documentation

Welcome to the home of Ubuntu Core documentation.

Ubuntu Core is a version of the Ubuntu operating system designed and engineered for IoT and embedded systems. It’s built entirely from snap packages to create a secure, robust, confined and transaction-based system that’s easy to install, deploy and upgrade.

Why use Ubuntu Core?

  • Easy image building: An image can be built locally for custom hardware with just a couple of device-specific definition files and the snapcraft and ubuntu-image commands.

  • Easy to maintain: Updates are delivered automatically without any further configuration. They’re signed, autonomous and atomic, and can withstand unpredictable hardware and network conditions, even to the operating system.

  • Security comes first: Secure boot works out-of-the-box (x86 with TPM or ARM with HSM). Full disk encryption guarantees the integrity of your data and key validation ensures what’s running is exactly what’s intended to run.

Give it a go! Follow our Getting started guide and you’ll be running Ubuntu Core in minutes.

Tutorials Step-by-step walkthroughs
Install Ubuntu Core 20 Get Ubuntu Core on a Raspberry Pi or VM
Using Ubuntu Core First steps with your new installation
Create a custom image Build your own Ubuntu Core with your own apps
How-to-guides Get stuff done
Activate a recovery mode Repair, restore or reinstall an impaired device
Add a system user Write a USB-based assertion to create a user
Build a gadget snap Create a version of Ubuntu Core for your device
Reference How Ubuntu Core works
System requirements What you need, and what we support
Ubuntu Core configuration Adjust values for refresh intervals, SSH and more
Gadget snaps Unravel the gadget snap and system properties
Conceptual guides Why it does what it does
Snaps in Ubuntu Core Discover which snaps Ubuntu Core is built upon
Refresh control Updates that are finely managed and controlled
Security and sandboxing Understanding security policies and configuration


Level Path Navlink
0 tutorials Tutorials
1 getting-started Quick start
1 uc20/install Install Ubuntu Core 20
2 uc20/install-raspberry-pi Raspberry Pi
2 uc20/install-nuc Intel NUC
1 using-ubuntu-core First steps with Core
1 custom-images Create a custom image
0 how-to How-to guides
1 testing-with-qemu Test on QEMU
1 image-building Build an image
1 gadget-building Build a gadget snap
1 kernel-building Build a kernel snap
1 use-recovery-mode Use a recovery mode
1 system-user Add a system user
1 reference/troubleshooting Troubleshooting
0 reference Reference
1 system-requirements System requirements
1 supported-platforms Supported platforms
1 ubuntu-core-configuration Ubuntu Core configuration
1 gadget-snaps Gadget snap format
1 Snapd REST API
1 reference/assertions assertions:
2 reference/assertions/account account
2 reference/assertions/account-key account-key
2 reference/assertions/model model
2 reference/assertions/serial serial
2 reference/assertions/snap-declaration snap-declaration
2 reference/assertions/snap-build snap-build
2 reference/assertions/snap-revision snap-revision
2 reference/assertions/system-user system-user
2 reference/assertions/validation validation
0 conceptual-guides Conceptual guides
1 uc20/inside Inside Ubuntu Core 20
1 recovery-modes Recovery modes
1 snaps-in-ubuntu-core Snaps in Ubuntu Core
1 security-and-sandboxing Security and sandboxing
1 uc20/full-disk-encryption Full disk encryption
1 configuration-and-hooks Configuration and hooks
1 /uc20/storage-layout Storage layout
1 /uc20/installation-process Installation process
1 board-enablement Board enablement
1 reference/assertions Assertion definitions
1 store-overview Store overview
1 refresh-control Refresh control
1 networkmanager Network Manager
1 bluez Bluetooth management
1 reference/docs-guidelines Documentation guidelines


Mapping table
Path Location
/core/docs/bluetooth-management /core/docs/bluez
/core/docs/network-management-services /core/docs/networkmanager
/core/docs/build-store /core/docs/store-overview
/core/docs/validations-and-refresh-control /core/docs/refresh-control
/core/docs/reference/interfaces https://snapcraft.io/docs/supported-interfaces
/core/docs/guides/intro/get-started /core/docs/getting-started
/core/docs/guides/build-device/board-enablement /core/docs/board-enablement
/core/docs/guides/manage-devices/ /core/docs/system-user
/core/docs/stacks/network/network-manager/docs /core/docs/networkmanager
/core/docs/stacks/bluetooth/bluez/docs /core/docs/bluez
/core/docs/guides/go-to-production/simple /core/docs/production/simple
/core/docs/guides/go-to-production/advanced /core/docs/production/advanced
/core/docs/guides/go-to-production/intro /core/docs/production/intro
/core/docs/guides/manage-devices /core/docs/system-user
/core/docs/image/custom-images /core/docs/custom-images
/core/docs/build-store/refresh-control /core/docs/refresh-control
/core/docs/reference/gadget /core/docs/gadget-snap
/core/docs/guides/intro/security /core/docs/security-and-sandboxing
/core/docs/releases/uc20 /core/docs/uc20/release-notes
/core/docs/uc20 Ubuntu Core 20
/core/docs/uc20/installing Installing Ubuntu Core 20 on a Raspberry Pi
/core/docs/uc20/release-notes Ubuntu Core 20 release notes
/core/docs/network-manager-release-notes Network Manager release notes
/core/docs/networkmanager Network Manager
/core/docs/uc20 Ubuntu Core 20
/core/docs/ubuntu-core-20 https://discourse.ubuntu.com/t/ubuntu-core-20/20421
/core/docs/stores-and-developer-accounts Stores and developer accounts
/core/docs/system-user System user
/core/docs/audio-management/access-from-other-snaps https://discourse.ubuntu.com/t/access-from-other-snaps/19900
/core/docs/audio-management Audio management
/core/docs/network-services Network management & services
/core/docs/production/intro Introduction to production
/core/docs/production/simple Simple production model - Ubuntu store
/core/docs/production/advance Advanced production model - Brand store
/core/docs/reference/assertions/serial Serial assertion
/core/docs/reference/assertions/snap-declaration Snap-declaration assertion
/core/docs/reference/assertions/validation Validation assertion
/core/docs/reference/gadget-snap-forma https://discourse.ubuntu.com/t/gadget-snap-format/19753
/core/docs/reference/automatic-refreshe Automatic refreshes
/core/docs/reference/core-configuration Ubuntu Core configuration
/core/docs/reference/core-interfaces Core interfaces reference
/core/docs/modem-manager Install Modem Manager