Booting Guix on a Raspberry Pi 4 🚧

Table of Contents


NOTE: Currently only tested building from an aarch64 based machine

Setup aarch64 Guix Install


  • The best method I have found is to start with aarch64 based virtual machine with/including Guix.

🍎 MacOS

Other VM
  • An alternative for M-Series Mac users is to boot a default Debian aarch64 vm with an application like UTM and then install the Guix package as described on their site.

📎 Windows 🚧

  • Do not currently have a way to test different methods on Windows. Open for feedback here.

🐧 GNU/Linux 🚧

  • Still working on a setup method for GNU/Linux.

Generate a Compatible Image

Locate the template

  • The raspberry pi 4 template can be found by either cloning the guix repository, or by using the find command like:

    find /gnu/store -name *raspberry-pi-64.tmpl

Generate the image

  • Create the raspberry pi 4 image using guix:

    guix system image <directory>/<path>/raspberry-pi-64.tmpl
  • Copy the resulting image out of the vm.

Flash the Image

Balena Etcher

Add the Missing Firmware

Get the firmware files

  • The raspberry pi image generated in previous steps doesn't have the necessary firmware files to run. You must obtain these from the official repo located at

Add the firmware files

  • The firmware files must be added to the boot partition of the Raspberry Pi storage device. This can be done by mounting the storage device on another machine and adding the correct firmware files to the boot partition