Installing Debian Backports on Raspberry Pi

This page is intended to describe how to run Debian’s backports on a Raspberry Pi. Backports is Debian’s way of building newer packages for its stable releases. I intend this page specifically to help people run the Debian packages for NNCP and Yggdrasil, both of which are maintained by me, John Goerzen.

Most Raspberry Pis will be running Raspberry Pi OS or its close cousin, Raspbian.


Before proceeding, verify that your system is compatible with these instructions.


Raspbian uses a modified version of Debian’s armhf port. We will be using an unmodified armhf port. The Debian Wiki Raspberry Pi page describes which models are compatible with the unmodified armhf port. As of March 2022, here is what you need to know:

  • Not compatible: Pi 1 series (A, B, A+, B+, Zero, Zero W)
  • Compatible: All newer ones, including Pi 2, 3, 3A+, 3B+, Zero 2 W, 4, 400

You can verify your model by typing cat /proc/cpuinfo. You will see the model name at the end of the output.


You will need to be running the Raspberry Pi OS based on Debian bullseye. Here’s how to verify this:

First, run this:

grep bullseye /etc/apt/sources.list

If you see no output, you are on a version that is too old, and will need to first reinstall with the most recent Raspberry Pi OS.

On the other hand, if you see a lone or more of output, you’re good to proceed.

Obtaining the Debian Archive Keyring

Now, you will need to install the Debian archive keyring so that apt on your pi can authenticate the packages from Debian. Run these two commands:

curl -O

sudo dpkg -i debian-archive-keyring_2021.1.1_all.deb

If that link ever stops working, the Debian package page can help you get a newer one.

Configuring for backports

Now, run this:

echo "deb bullseye-backports main" | \
   sudo tee /etc/apt/sources.list.d/buster-backports.list

apt-get update

Installing package

At this point, you should have seen the update progress with no errors. Now you can move on to install your packages. You will need to add -t bullseye-backports to apt/apt-get for every package you install from backports. For instance:

apt-get -t bullseye-backports install nncp

apt-get -t bullseye-backports install yggdrasil

That’s it!

Filespooler lets you request the remote execution of programs, including stdin and environment. It can use tools such as S3, Dropbox, Syncthing, NNCP, ssh, UUCP, USB drives, CDs, etc. as transport; basically, a filesystem is the network for Filespooler. Filespooler is particularly suited to distributed and Asynchronous Communication.

One of several single-board computers. The Raspberry Pi is an ARM computer that typically sells for less than $50. Generally is runs a derivative of Debian.

NNCP lets you securely send files, or request remote execution, between systems. It uses asynchronous communication, so the source and destination need never be online simultaneously. NNCP can route requests via intermediate devices – other NNCP nodes, USB sticks, tapes, radios, phones, cloud services, whatever – leading to a network that is highly resilient and flexible. NNCP makes it much easier to communicate with devices that lack Internet connectivity, or have poor Internet.

Yggdrasil is a Mesh Network that is fully Encrypted and provides an IPv6 IP on the network to anyone.