Hello, My GuixSD configuration (see attachment) for UEFI got broken some three weeks ago but I’ve only now caught up with my e-mail and “fixed” it.
root@floriannotebook ~# guix system reconfigure /home/florian/keep/guixsd-asus.scm Backtrace: 9 (apply-smob/1 #<catch-closure 22dba40>) In ice-9/boot-9.scm: 713:2 8 (call-with-prompt _ _ #<procedure default-prompt-handle…>) In ice-9/eval.scm: 619:8 7 (_ #(#(#<directory (guile-user) 235e140>))) In ice-9/boot-9.scm: 2316:4 6 (save-module-excursion _) 3823:12 5 (_) In guix/ui.scm: 1311:8 4 (run-guix-command _ . _) In ice-9/boot-9.scm: 837:9 3 (catch _ _ #<procedure 7f55cc0669a8 at guix/ui.scm:450…> …) 837:9 2 (catch _ _ #<procedure 7f55cc0669c0 at guix/ui.scm:511…> …) In guix/scripts/system.scm: 1006:8 1 (_) 885:27 0 (process-action _ _ _) guix/scripts/system.scm:885:27: In procedure process-action: guix/scripts/system.scm:885:27: In procedure bootloader-configuration-device: Wrong type argument: #<<grub-configuration> grub: #<package grub-efi@2.02 gnu/packages/bootloaders.scm:142 314cb40> device: "/dev/sda" menu-entries: () default-entry: 0 timeout: 5 theme: #<<grub-theme> images: (#<<grub-image> aspect-ratio: 4/3 file: #<<file-append> base: #<origin #<<git-reference> url: "git://git.savannah.gnu.org/guix/guix-artwork.git" commit: "6998d30" recursive?: #f> gjomvsacge5nz76kqiyzbpiin32l7nn672voskuo7ahz3za56jga () 3a4d300> suffix: ("/grub/GuixSD-fully-black-4-3.svg")>>) color-normal: ((fg . light-gray) (bg . black)) color-highlight: ((fg . yellow) (bg . black))>> I ‘guix pull’ed before reconfiguring. I used this: (bootloader (grub-configuration (device "/dev/sda") (grub grub-efi))) Then ‘guix system reconfigure /home/florian/keep/guixsd-asus.scm’ kept failing. Debugging by (load)ing .guix-real in the Guile REPL and using breakpoints showed me that this was not a valid (bootloader-configuration?). Replacing the above by (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (device "/dev/sda"))) fixed it today and I can ‘guix system reconfigure’ again. I don’t know why this broke and if it breaks for others too (apparently noone has filed a bug yet), which is why I’m filing a bug here. Using a syntax rule for grub-configuration seems complicated to me anyway, but I’m still a Guile newbie. Regards, Florian
;; Custom config adapted from GNOME/Xfce example in Guix manual. ;; Meant to use GNU Hurd once it is ready. (use-modules (gnu) (gnu packages admin) (gnu packages shells) (gnu system grub) (gnu system locale) (gnu system nss) (guix gexp)) (use-service-modules avahi base dbus desktop networking xorg) (use-package-modules bootloaders certs cryptsetup emacs fonts freedesktop gnome guile libusb linux ; for lvm2, util-linux rsync ssh suckless version-control wget) (operating-system (host-name "floriannotebook") (timezone "Europe/Berlin") (locale "en_US.UTF-8") (locale-definitions (cons (locale-definition (name "de_DE.utf8") (source "de_DE")) %default-locale-definitions)) ;; Assuming /dev/sda is the target hard disk, and "GuixSD" ;; is the label of the target root file system. (bootloader (grub-configuration (device "/dev/sda") (grub grub-efi))) ;; (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) ;; (device "/dev/sda"))) ;; (menu-entries ;; (list ;; (menu-entry ;; (label "Parabola GNU/Linux-libre") ;; ;; see Arch Wiki / GRUB / Encrypted GNU/Linux menuentry to see what is missing here ;; (linux "/boot/vmlinuz-linux-libre") ;; (linux-arguments '("cryptdevice=UUID=e269b169-073a-49f4-a03f-1a34d88384f8:Main" "root=/dev/mapper/Main-rootvol resume=/dev/mapper/Main-swapvol" "rw" "add_efi_memmap" "initrd=/initramfs-linux-libre.img" "init=/lib/systemd/systemd")) ;; (initrd "/boot/initramfs-linux-libre.img")) ;; (menu-entry ;; (label "Parabola GNU/Linux-libre LTS") ;; (linux "/boot/vmlinuz-linux-libre-lts") ;; (linux-arguments '("cryptdevice=UUID=e269b169-073a-49f4-a03f-1a34d88384f8:Main" "root=/dev/mapper/Main-rootvol" "resume=/dev/mapper/Main-swapvol" "rw" "add_efi_memmap" "initrd=/initramfs-linux-libre-lts.img" "init=/lib/systemd/systemd")) ;; (initrd "/boot/initramfs-linux-libre-lts.img")))))) ;; Specify a mapped device for the encrypted root partition. ;; The UUID is that returned by 'cryptsetup luksUUID'. (mapped-devices (list (mapped-device (source (uuid "de52112d-aa7c-4e03-a52b-80deb59d9353")) (target "GuixSD") (type luks-device-mapping)))) (file-systems (cons*(file-system (device "my-root") (title 'label) (mount-point "/") (type "ext4") (dependencies mapped-devices)) (file-system (device "/dev/sda1") (mount-point "/boot/efi") (type "msdos")) %base-file-systems ;; %fuse-control-file-system )) (users (cons* (user-account (name "florian") (comment "Florian Pelz") (group "users") (supplementary-groups '("wheel" "netdev" "audio" "video")) (home-directory "/home/florian") (shell #~(string-append #$zsh "/bin/zsh"))) (user-account (name "guest") (comment "Guest user") (group "users") (home-directory "/home/guest") (shell #~(string-append #$zsh "/bin/zsh"))) %base-user-accounts)) ;; This is where we specify system-wide packages. (packages (cons* cryptsetup emacs font-dejavu font-google-noto geiser git gnome-calculator gnome-screenshot gnome-system-monitor gnome-tweak-tool guile-2.2 gvfs ;for user mounts ;; lsh ;probably insecure because no release activity lvm2 nss-certs ;for HTTPS access openssh paredit rsync util-linux wget xdg-utils zsh %base-packages)) ;; Add GNOME and/or Xfce---we can choose at the log-in ;; screen with F1. Use the "desktop" services, which ;; include the X11 log-in service, networking with Wicd, ;; and more. (services (cons* (gnome-desktop-service) (avahi-service) (colord-service) (dbus-service) (elogind-service) (geoclue-service) (service network-manager-service-type (network-manager-configuration (dns "dnsmasq"))) (polkit-service) (screen-locker-service slock) (slim-service) (udisks-service) (upower-service) (simple-service 'mtp udev-service-type (list libmtp)) (service wpa-supplicant-service-type wpa-supplicant) (modify-services %base-services (guix-service-type config => (guix-configuration (inherit config) (tmpdir "/tmpdir")))))) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss))