# Guix System on SBC (Raspberry Pi et al)

**URL:** <https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333>\
**Category:** Guix\
**Created:** [February 22, 2024, 10:46am UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333 "2024-02-22T10:46:40Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![theesm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/theesm/32/175_2.png) [@theesm](https://forum.systemcrafters.net/u/theesm)\
**Post date:** [February 22, 2024, 10:46am UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333/1 "2024-02-22T10:46:40Z")

</div>

Hi crafters,

I’m currently in the process of trying to (and then document how to do so) boot Guix System on a Raspberry Pi 3 Model B+ (which currently still runs on NixOS and serves as my home DHCP/DNS/gitolite server). As a first step I’ll probably use a custom kernel package definition based on [GitHub - raspberrypi/linux: Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/](https://github.com/raspberrypi/linux) and [GitHub - raspberrypi/firmware: This repository contains pre-compiled binaries of the current Raspberry Pi kernel and modules, userspace libraries, and bootloader/GPU firmware.](https://github.com/raspberrypi/firmware) for firmware; even though I’m not sure yet how successfull I’ll be in doing so.

Anyways, before I am (hopefully not) reinventing the wheel, I wondered if any of you have Guix System running on a SBC such as a Raspberry Pi already and would be interested in sharing configs.

---

<div class="post-metadata">

**Author:** ![theesm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/theesm/32/175_2.png) [@theesm](https://forum.systemcrafters.net/u/theesm)\
**Post date:** [February 22, 2024, 10:47am UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333/2 "2024-02-22T10:47:16Z")

</div>

From #General to #Guix

---

<div class="post-metadata">

**Author:** ![ennoausberlin](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/ennoausberlin/32/37_2.png) [@ennoausberlin](https://forum.systemcrafters.net/u/ennoausberlin)\
**Post date:** [February 23, 2024, 8:40am UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333/3 "2024-02-23T08:40:23Z")

</div>

This might be of some help as a start

> **[PantherX OS Development / Hardware / Raspberry · GitLab](https://git.pantherx.org/development/hardware/raspberry)**
>
> Scripts and notes related to getting PantherX running on Raspberry

---

<div class="post-metadata">

**Author:** ![theesm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/theesm/32/175_2.png) [@theesm](https://forum.systemcrafters.net/u/theesm)\
**Post date:** [February 24, 2024, 10:31am UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333/4 "2024-02-24T10:31:42Z")

</div>

Thanks for the link! I stumbled upon it already a few month ago and discarded it as it didn’t build; but yesterday I was able to investigate it a bit more, so:

- `gawk-mesboot` build failed for cross-compilation, so I had to disable grafting by setting `--no-grafts` (there was upstream issue for this behaviour already =\> [Grafting breaks cross-compilation](https://issues.guix.gnu.org/66866))

- the template by pantherx tries to set a bunch of environmental variables during configure phase (namely C\_INCLUDE\_PATH, CPLUS\_INCLUDE\_PATH, LIBRARY\_PATH) which I didn’t quite get why. Setting these explicitly lets the kernel compilation fail in an early stage with:

I’m currently building an image with a 5.15 series kernel (and about a year old firmware) as it was defined in the provided template; if this works out, I’ll try to build a more recent 6.6.x series kernel with it. I’ll keep you guys updated if my RPi SBC boots with it.

---

<div class="post-metadata">

**Author:** ![ennoausberlin](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/ennoausberlin/32/37_2.png) [@ennoausberlin](https://forum.systemcrafters.net/u/ennoausberlin)\
**Post date:** [February 24, 2024, 10:48am UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333/5 "2024-02-24T10:48:43Z")

</div>

I was able to boot that given pantherx image for the Raspberry PI 400 with this config a year ago, but due to lack of time I abandoned it. Resizing the filesystem afterwards was needed to reconfigure and install xserver etc

---

<div class="post-metadata">

**Author:** ![theesm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/theesm/32/175_2.png) [@theesm](https://forum.systemcrafters.net/u/theesm)\
**Post date:** [February 24, 2024, 12:06pm UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333/6 "2024-02-24T12:06:11Z")

</div>

After fixing the build failures as described above I’m able to boot from said image as well!

Next up: building a 6.6.x kernel (which should be the latest in the raspberrypi/linux repository) plus more recent firmware and see if it works as good as well! I’ll probably document the steps I did to get things up and running in a more structured way somewhere (and maybe finally make my personal guix channel public, but that’s for after writing new kernel/firmware packages from scratch as there are a few things I’d personally want to do differently).

---

<div class="post-metadata">

**Author:** ![bionicbabelfish](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/bionicbabelfish/32/56_2.png) [@bionicbabelfish](https://forum.systemcrafters.net/u/bionicbabelfish)\
**Post date:** [February 27, 2024, 2:46pm UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333/7 "2024-02-27T14:46:39Z")

</div>

@theesm you may have already seen this, but I stubled upon this patch series:  
[https://issues.guix.gnu.org/48314](https://issues.guix.gnu.org/48314)  
which seems to be merged already in upstream guix. I also see some example configs in gnu/system/examples (e.g., raspberry-pi-64.tmpl).

---

<div class="post-metadata">

**Author:** ![theesm](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/theesm/32/175_2.png) [@theesm](https://forum.systemcrafters.net/u/theesm)\
**Post date:** [February 27, 2024, 10:09pm UTC](https://forum.systemcrafters.net/t/guix-system-on-sbc-raspberry-pi-et-al/333/8 "2024-02-27T22:09:06Z")

</div>

I wrote down my notes on how I’ve build a guix system image for my raspberry pi 3b based on the pantherx template here: [Guix System On A Raspberry Pi 3b -- literatelisp.eu](https://me.literatelisp.eu/guix-system-on-a-raspberry-pi-3b.html). It’s not really structured documentation, but a mere rambling on what difficulties and blockers I’ve encountered and what I did to build a Guix System image that boots on my raspberry pi; maybe it’s of value to someone.
