Skip to content

Extensions

Calin Crisan edited this page Dec 1, 2022 · 1 revision

About

Extensions are used to extend the default functionality of qToggleOS. They can be installed and removed by the user at any time and they are updated whenever whenever the system receives a firmware update.

The reason behind these extensions is to prevent bloating the base OS. Extensions are made up of relatively big files that would otherwise increase the size of the root filesystem, if they were to be included in the base OS image.

Instructions

Managing extensions is done using the extctl command. The following subcommands are defined:

  • extctl installed - lists installed extensions and their versions
  • extctl available - lists all extensions available for the current platform and OS version
  • extctl install <extension> - installs the given extension
  • extctl uninstall <extension> - installs the given extension
  • extctl update - updates all outdated extensions to match current OS version

After installing/uninstalling/updating extensions, a reboot is needed.

How It Works

Extensions are in fact archives of filesystems that are overlaid on top of the OS's root filesystem, at each boot.

Installed extensions live at /data/extensions, each of them in their separate folder. The /data/extensions folder is managed by the extctl command.

The building process of the base OS image also takes care of building a separate archive for each available extension, for each of the supported platforms. These archives are downloaded by extctl the same way the base firmware archive is downloaded by fwupdate. They live in the same repository.

Available Extensions

Currently the only available extension is docker which includes:

  • docker CLI
  • docker engine
  • compose