Install Krill Server on Raspberry Pi
Install the Krill Server on a Raspberry Pi, including the Zulu JDK and the krill-pi4j GPIO service
Install Krill Server on a Raspberry Pi
Please note that Krill is currently in beta and may have breaking changes in future releases.
Krill was born out of a Raspberry Pi and can control GPIO pins and serial devices. The Pi install has two differences from a generic Linux server: the Java runtime, and the krill-pi4j hardware service.
Install Java 25 (Azul Zulu — there is no official Java 25 ARM64 build yet)
Krill requires Java 25 or later, but there is currently no official OpenJDK 25 build for ARM64, so on a Raspberry Pi you must install Azul Zulu OpenJDK first:
1
2
3
4
5
sudo apt install curl gnupg ca-certificates
curl -s https://repos.azul.com/azul-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | sudo tee /etc/apt/sources.list.d/zulu.list
sudo apt update
sudo apt install zulu25-jdk-headless
Setup our APT Repository
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.krill.zone/krill-archive-keyring.gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/krill-archive-keyring.gpg
sudo chmod 0644 /etc/apt/keyrings/krill-archive-keyring.gpg
sudo tee /etc/apt/sources.list.d/krill.sources > /dev/null <<EOF
Types: deb
URIs: https://deb.krill.zone
Suites: stable
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/krill-archive-keyring.gpg
EOF
sudo apt update
Install the krill-pi4j GPIO service and the Server
To control the header pins of a Raspberry Pi you must install the
krill-pi4jpackage alongsidekrill. It is a wrapper service for the Pi4J library and is required to run Krill with Java 25 or later on a Raspberry Pi. This is an open source library we made that exposes the Pi4J API over gRPC so Krill can use it with the modern JDK 25 FFM API.
1
sudo apt install krill-pi4j krill
Install both packages together so the GPIO service is present before the server starts.
Last verified: 2026-05-16