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.
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)
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:
scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: No such file or directory
not setting it explicitly works and my kernel builds. The LIBRARY_PATH between both builds (with and without explicitly setting PATHs) doesn’t differ much; openssl is present in both in the exact same version:
so I’m clueless why it previously failed, fair enough, it works now.
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.
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
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).
@theesm you may have already seen this, but I stubled upon this patch series: 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).
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. 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.