Supported platforms

gokrazy development happens primarily on the Raspberry Pi 4 B.

All currently supported platforms

Raspberry Pi 4 B

PC Engines APU

Raspberry Pi Zero 2 W

Raspberry Pi 3 B and 3 B+

Continuous Integration (CI)

Appliances which are marked in bold are tested in the CI setup on real hardware and gate new kernel and firmware versions, and hence can be considered supported.

Non-bold appliances are supported in a best-effort way, meaning they might be temporarily broken at HEAD.

The leading github.com in front of package import paths has been omitted for space reasons.

Target Hardware GOARCH Kernel package Firmware package Appliances
apu2c4 apu2c4 amd64 rtr7/kernel rtr7/kernel gokrazy/bakery/cmd/bake
rtr7/router7
x86-64 qemu amd64 rtr7/kernel rtr7/kernel gokrazy/bakery/cmd/bake
rpi4b raspi4b arm64 gokrazy/kernel gokrazy/firmware gokrazy/bakery/cmd/bake
stapelberg/hmgo
stapelberg/scan2drive
rpi3b raspi3b arm64 gokrazy/kernel gokrazy/firmware gokrazy/bakery/cmd/bake
rpi3b+ raspi3b+ arm64 gokrazy/kernel gokrazy/firmware gokrazy/bakery/cmd/bake
rpizero2w raspizero2w arm64 gokrazy/kernel gokrazy/firmware gokrazy/bakery/cmd/bake

Performance

The JPEG encoding column is the result of running scan2drive’s neonjpeg micro-benchmark.

Hardware JPEG encoding
raspi4b 0.69s
raspi3b 1.22s
raspizero2w 1.47s

Power Usage

These power measurements were done using a HomeMatic HM-ES-PMSw1-Pl power switch with measurement feature. The Raspberry Pi 4 was using the original Raspberry Pi power supply, the others were measured with a random USB power supply.

Hardware Power Usage
apu2c4 4.0W
raspi3b 1.5W
raspi3b+ 2.5W
raspi4b 2.8W
raspizero2w 0.8W

Hardware Support

Hardware WiFi Bluetooth
apu2c4 needs card, untested needs dongle, untested
raspi3b open or WPA-PSK limited
raspi3b+ open or WPA-PSK limited
raspi4b open or WPA-PSK limited
raspizero2w open or WPA-PSK limited

Community-supported platforms

Independently from the official gokrazy kernel and firmware, people of our community provide alternative kernels and firmwares, in order to run gokrazy on unsupported platform or to provide new features. They may not be as thoroughly tested as the official platforms. Please report any issue to their respective repostitory.

Community-supported Raspberry Pi OS 32-bit kernel/firmware

gokrazy’s official kernel is an upstream Linux kernel (directly from kernel.org) that supports ARMv8 64-bit machines, meaning the Raspberry Pi 3 and newer. The primary reason for using the upstream kernel is so that security fixes can be immediately pulled in without having to wait on third parties.

The community-supported github.com/gokrazy-community/kernel-rpi-os-32 kernel on the other hand is the Raspberry Pi OS kernel (provided by the Raspberry Pi foundation) that supports ARMv6 32-bit machines, which includes all Raspberry Pis. The corresponding firmware for this kernel is github.com/gokrazy-community/firmware-rpi.

This kernel might generally be useful if you want to use hardware peripherals that are not yet supported in the upstream Linux kernel.

This kernel is the only choice for you if you have a Raspberry Pi that’s older than the Raspberry Pi 3, but you still want to use gokrazy with it.

Community-supported Odroid XU4/HC1/HC2

Odroid XU4/HC1/HC2 is based on a Samsung Exynos 5422 SOC (4 ARM Cortex-A15 cores and 4 ARM Cortex-A7 cores) and has been on the market since ~2016. HC1 and HC2 variants support installing a 2.5’/3.5’ hard drive on board.

Kernel for these devices is available at github.com/anupcshan/gokrazy-odroidxu4-kernel. This package contains a recent kernel, U-boot and some binary blobs that are required to initiate the boot process. It has been tested against Odroid HC2 hardware with gigabit networking, USB and HDD functional.

See github.com/anupcshan/odroidbake for an example on how to create a new disk image.

{
    "Hostname": "odroid",
    "DeviceType": "odroidhc1",
    "Packages": [
        "github.com/gokrazy/fbstatus",
        "github.com/gokrazy/hello",
        "github.com/gokrazy/serial-busybox",
        "github.com/gokrazy/breakglass"
    ],
    "KernelPackage": "github.com/anupcshan/gokrazy-odroidxu4-kernel",
    "FirmwarePackage": "",
    "EEPROMPackage": ""
}