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

Reply via email to