Skip to main content

Overview

Ubuntu 24.04 (“Noble Numbat” LTS) is the next-generation operating system for Particle’s Tachyon single-board computer. This section provides an overview of the Ubuntu 24.04 build for Tachyon, its open-source components, and how developers can use and contribute to it. This build is currently early in development, so while it brings a more modern OS and kernel, not all hardware features are fully supported yet. We’re sharing it early to invite community collaboration in true open-source spirit.

Why Ubuntu 24.04 for Tachyon?

Tachyon initially shipped with Ubuntu 20.04, a stable but older LTS release. Moving to Ubuntu 24.04 allows Tachyon to leverage newer Linux kernels, updated libraries, and broader hardware support. Our Ubuntu 24.04 build follows standard open-source practices, using:

  • Mainline or near-mainline Linux kernel – We aim to run a kernel close to upstream Linux for better hardware support and longevity.
  • Open bootloaders (U-Boot, Grub) – We have replaced proprietary boot components with U-Boot and Grub, open-source bootloaders, to improve transparency and flexibility.
  • Clean Debian-based filesystem - The OS root filesystem is a standard Ubuntu 24.04 LTS userspace (built via Ubuntu’s LiveCD tools), providing a familiar environment without using Yocto or heavily customized distributions.

Notably, this entire stack is built without a Yocto base – it’s a “full Ubuntu” approach to keep things accessible. The result is a system that feels like a normal Ubuntu installation, tailored for Tachyon’s hardware. Saying this, like all Qualcomm Linux projects, binary firmware is still needed to support some functionality (wifi etc...).

Current Status of the 24.04 Build

Because this is an early development build, some functionality is missing or under construction. It’s currently best suited for experimentation and evaluation. Core features like Wi-Fi and basic USB and networking are operational (see the “What’s Working” page for details), but many peripherals (modem, GPIO, display output, etc.) are not yet fully functional on 24.04. We are actively working to bring these features up, and community contributions are welcome to help accelerate this.

Behind the scenes, the Tachyon Ubuntu 24.04 build still relies on a few elements from the 20.04 system. The QCM6490 SoC used by Tachyon has some differences from the upstream-supported QCS6490 variant, especially around cellular modem interfaces. Until those are resolved with open-source components, our 24.04 image temporarily mirrors some parts of the 20.04 firmware (for example, low-level modem communication support) to ensure basic functionality. As development progresses, we will replace these temporary pieces with fully open implementations.

Build System Components

Building Tachyon’s Ubuntu 24.04 image involves several open-source repositories working together. Here is a glossary of the key components that make up the Tachyon software stack:

  • System Image – In Particle’s terminology, a system image is the complete disk image containing the OS and all required software to flash a device. Our Ubuntu 24.04 system image includes the Linux kernel, root filesystem, bootloader, and firmware needed to run Tachyon.
  • Bundle – A bundle is a packaged system image (typically a zip file) that includes the raw image plus metadata for distribution. Metadata might include version info, release notes, or special provisioning scripts. Bundles are used to deliver updates (e.g., via the Particle CLI or cloud).

The Tachyon 24.04 system image is composed and built using the following repositories (all open-source on GitHub under the particle-iot organization):

  • tachyon-composerThe top-level build orchestrator. This repository contains build scripts (Makefiles and helpers) to assemble the Tachyon system image. The composer pulls together outputs from other components (root filesystem, kernel, bootloader, etc.), applies any necessary patches or overlays, and produces the final image or bundle. In short, tachyon-composer is the tool you invoke to build a complete Ubuntu 24.04 image for Tachyon.
  • tachyon-ubuntu-24.04Ubuntu root filesystem builder. This is a fork or copy of Ubuntu’s live CD build tooling, configured for Tachyon. It generates the base Ubuntu 24.04 root filesystem (the equivalent of an Ubuntu installation) including a generic Ubuntu kernel. This provides the bulk of the userspace packages and default configurations from Ubuntu.
  • tachyon-ubuntu-24.04-kernelCustom Linux kernel source and packaging. This repository contains the Linux kernel source (based on a mainline or Qualcomm upstream kernel) plus any Tachyon-specific patches or configuration. It produces kernel packages (e.g., Debian .deb packages) that can be installed into the root filesystem, replacing the generic kernel with one built for Tachyon’s hardware (QCM6490). Using a packaged kernel allows easy updates and integration with the Ubuntu package system.
  • tachyon-u-bootCustom U-Boot bootloader. Tachyon uses U-Boot as its primary bootloader for Ubuntu 24.04. This repo contains the U-Boot source code configured for Tachyon’s board. It includes Tachyon’s device tree (hardware description) and any board-specific boot logic. Developers can modify this if they need to adjust low-level boot behavior or hardware initialization.
  • tachyon-overlay-toolFilesystem overlay application tool. This is a utility (Makefile + Python script) that applies overlays to the base root filesystem during the image build. It handles mounting the image, copying files, installing additional packages, and making configuration changes as specified by overlay recipes.
  • tachyon-overlaysOverlay definitions and stacks. This repository contains the definitions of various overlays and stacks used to customize the base OS image for different purposes. An overlay is essentially a set of file additions or modifications (and possibly scripts to run) that implement a specific customization (for example, enabling a kiosk mode, adding Particle agent software, configuring network settings, etc.). A stack is an ordered collection of overlays that together define a complete image variant. For instance, we have stacks for “ubuntu-headless-24.04” and “ubuntu-desktop-24.04” which bundle the appropriate overlays to produce a headless server image versus a full desktop image, respectively.

By combining these components, we maintain a modular build system. Each part can be updated or modified independently. For example, if you want to change the bootloader, you primarily work with tachyon-u-boot; if you want to include extra software in the OS, you can add an overlay in tachyon-overlays without altering the base Ubuntu build.