Hi Guix,
I’m seeing a failure when building a bootable image for a Raspberry Pi 4
using `guix system image` with `grub-efi-bootloader`.
Environment
===========
Generation 1 Dec 06 2025 02:31:54 (current)
guix 500cdbc
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 500cdbc98cde76dd004cceac53b46b5fb94524b2
guix (GNU Guix) 500cdbc98cde76dd004cceac53b46b5fb94524b2
Copyright (C) 2025 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Linux rpi 6.8.0-1042-raspi #46-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 18:59:27
UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
How to reproduce
================
I run a script to generate a custom image for the Raspberry Pi 4, which
contains:
image=$(guix time-machine -C channels.scm -- system -L ./guix image
guix/system/rpi64.scm --system=aarch64-linux --fallback)
The define of the operating system contains:
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(targets (list "/boot/efi"))))
(file-systems %base-file-systems)
Error
=====
`/gnu/store/ax00wmhrd488420avndwdxqwh14j0j2v-efi-bootloader-profile/overlays'
-> `tmp-root/overlays'
`Backtrace:
4 (primitive-load "/gnu/store/fvqgjj5nxs1ggy9ipf0v7c0cqxb…")
In ice-9/eval.scm:
619:8 3 (_ #(#<directory (guile-user) ffffb3b84c80> #<proced…> …))
In gnu/build/bootloader.scm:
112:4 2 (install-efi-loader #f "tmp-root" #:targets _)
69:28 1 (install-efi #f "grub.cfg" "tmp-root" #:targets _)
In unknown file:
0 (string-append #f "/bin/grub-mkstandalone")
ERROR: In procedure string-append:
In procedure string-append: Wrong type (expecting string): #f
Notes
=====
The script is using the “efi-bootloader-profile” approach
to populate the FAT partition; I suspect the bootloader
configuration or the way the profile is constructed leaves
the GRUB package as `#f` when calling `install-efi-loader`.
In an old, stable version (commit
"e7337536ba41e888a601c92fada8a4adca9d2c6") I had:
(bootloader (bootloader-configuration
(bootloader grub-efi)
(targets (list "/boot/efi"))))
(file-systems %base-file-systems)
Please let me know if I can provide any additional information.
Thanks!
Ralph