## Overview¶

KubOS Linux upgrades are distributed as kpack-{YYYY.MM.DD}.itb files. ITB stands for ‘Image Tree Blob’ and allows Kubos to utilize the existing DFU utility currently available in U-Boot.

Within each file will be a new version of the kernel image and root filesystem.

To upgrade a board currently running KubOS Linux, an upgrade package will be loaded into the upgrade partition of the board. For now, this can be done through the Kubos SDK or by manually copying the package into the upgrade partition.

Once the board is rebooted, U-Boot will take the package and then install each component into the appropriate partition (kernel/rootfs). If installation completes successfully, then the board will be rebooted and then boot into the new version of KubOS Linux.

The overall flow looks like this:

Note:

User files should not be impacted by upgrade installation as long as they remain under the /home directory. This directory maps to the userspace partition.

However, some future releases may cause the Kubos libraries to undergo significant changes. In this case, backwards compatilibity is not guaranteed and user applications may need to be rebuilt.

### Pre-requisites¶

The SD card should have been formatted with the correct partitions. If not, refer to the Install the SD Card Files instructions.

The host computer should be connected to the target board, which should be on and running KubOS Linux.

A Kubos SDK VM should be installed on your host computer and at least one shared folder should be set up. Installation instructions can be found here.

### Installation¶

Acquire an upgrade package. For now, this will likely be sent via email from a Kubos engineer. Once an official distribution process has been created this document will be upgraded with the new procedure.

Load the package into a shared folder accessible by your Kubos SDK VM.

Create or navigate to a Kubos SDK project. The content of the project does not matter; it will only be used to flash the package correctly onto the target.

$kubos init -l fakeproj$ cd fakeproj


Set the target to the desired KubOS Linux target type.

For example:

$kubos target kubos-linux-isis-gcc  Build the project. This does not need to complete successfully. The build process just brings in some files and settings that are required in order to flash files to the board. $ kubos build