Skip to main content

Modifying & Building the Tachyon Kernel (On-Device, Debian Method)

The Linux kernel powers hardware enablement on Tachyon. If you need to enable drivers, change configs, or patch functionality, you’ll be working with the tachyon-ubuntu-24.04-kernel repository. These instructions describe how to build directly on the Tachyon device, using Ubuntu’s Debian packaging system located under debian.qcom/.

1. Get the Source

sudo apt update
sudo apt install -y git
git clone --depth=1 https://github.com/particle-iot/tachyon-ubuntu-24.04-kernel.git
cd tachyon-ubuntu-24.04-kernel

2. Install Build Tools

Install all required packages for kernel building:

sudo apt update
sudo apt install -y \
build-essential fakeroot dpkg-dev devscripts \
libncurses-dev flex bison bc \
libelf-dev dwarves pahole \
openssl libssl-dev \
rsync python3 git

3. Modify the Kernel Config

There are two supported ways:

A. Edit the Annotations File

Ubuntu kernel configs are managed via debian.qcom/config/annotations.

  • Open and adjust CONFIG_* entries in that file.
  • Regenerate configs:
    debian/rules updateconfigs

B. Use Menuconfig

For an interactive menu:

debian/rules editconfigs

This launches menuconfig. Save and exit to update the debian.qcom/config/ fragments.

4. Build Kernel Packages

Run the Debian packaging build:

fakeroot debian/rules clean
fakeroot debian/rules binary

Output

Debian packages (.deb) will be created in the parent directory:

  • linux-image-...-tachyon_*.deb
  • linux-modules-...-tachyon_*.deb
  • linux-headers-...-tachyon_*.deb (optional)

5. Install Packages & Reboot

Copy the .deb files to your device (if not building locally) and install:

cd ..
sudo dpkg -i linux-image-*tachyon_*.deb linux-modules-*tachyon_*.deb
# Optional if you need headers:
sudo dpkg -i linux-headers-*tachyon_*.deb

Then reboot:

sudo reboot

Verify with:

uname -a

With this flow you are building and installing the kernel the same way Ubuntu maintains its kernels, tailored for Tachyon.