Subject: [bug#41066] [PATCH] gnu: bootloader: Support for chain loading.

From: Danny Milosavljevic <[email-masked]>
Date: Mon, 2 Nov 2020 16:42:24 +0100

Hi Mathieu,

I've tried to test Stefan's patch on guix master with this configuration:

(use-modules (gnu))
(use-service-modules networking ssh)
(use-package-modules screen ssh bootloaders)

(operating-system
  (host-name "komputilo")
  (timezone "Europe/Berlin")
  (locale "en_US.utf8")
  (bootloader (bootloader-configuration
                (bootloader
                 (efi-bootloader-chain
                  (list ;(file-append firmware "/boot/")
                        (plain-file "config.txt"
                                    "kernel=u-boot.bin")
                        (file-append u-boot-a20-olinuxino-micro
                                     "/libexec/u-boot.bin"))
                  grub-efi-netboot-bootloader
                  ;#:hook my-special-bootloader-profile-manipulator
                  #:installer (install-grub-efi-netboot "efi/boot")))
                (target "/boot")))
  (file-systems (cons (file-system
                        (device (file-system-label "my-root"))
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))
  (users (cons (user-account
                (name "alice")
                (comment "Bob's sister")
                (group "users")
                (supplementary-groups '("wheel"
                                        "audio" "video")))
               %base-user-accounts))
  (packages (cons screen %base-packages))
  (services (append (list (service dhcp-client-service-type)
                          (service openssh-service-type
                                   (openssh-configuration
                                    (openssh openssh-sans-x)
                                    (port-number 2222))))
                    %base-services)))

and this command:

$ ./pre-inst-env guix system disk-image -t raw raspberry-os.scm

And I get this error:

################################################## ]^MESC[Kregistering 296 items  [######################################################]^MESC[Kregistering 296 items
Backtrace:
           5 (primitive-load "/gnu/store/br73py6l6w1x2p0ankqq9d8il4f…")
In ice-9/eval.scm:
    619:8  4 (_ #(#<directory (guile-user) 7ffff5bb7f00> #<proced…> …))
In ./gnu/build/image.scm:
    208:4  3 (initialize-root-partition "tmp-root" #:bootcfg _ # _ # …)
In ice-9/eval.scm:
    619:8  2 (_ #(#(#<directory (guile-user) 7ffff5bb7f00>) "/gnu…" …))
   293:34  1 (_ #(#(#<directory (guile-user) 7ffff5bb7f00>) "/gnu…" …))
In unknown file:
           0 (string-append "tmp-root" #f "/")

ERROR: In procedure string-append:
In procedure string-append: Wrong type (expecting string): #f
environment variable `PATH' set to `/gnu/store/swwd2i26pqx1jyfg81lrnrw1hq7adn05-e2fsprogs-1.45.6/bin:/gnu/store/swwd2i26pqx1jyfg81lrnrw1hq7adn05-e2fsprogs-1.45.6/sbin:/gnu/store/ppv9hd6mznmf1p4gagnrwzdivfhvc48z-fakeroot-1.25.3/bin:/gnu/store/nqynh6b3jhjh6wiq47jr4l6arckfw9j8-dosfstools-4.1/sbin:/gnu/store/zms4y35fpbpz5mr8qcb7ky8sqqnq61kh-mtools-4.0.25/bin'
installing bootloader...
[fails]

Before I search for it, would you know why it is?