diff options
Diffstat (limited to 'gnu/system')
-rw-r--r-- | gnu/system/grub.scm | 17 | ||||
-rw-r--r-- | gnu/system/install.scm | 8 | ||||
-rw-r--r-- | gnu/system/linux-initrd.scm | 15 |
3 files changed, 32 insertions, 8 deletions
diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index 4657b06b5f..067b291a5c 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -177,9 +177,9 @@ STORE-MOUNT-POINT is its mount point; these are used to determine where the background image and fonts must be searched for. SYSTEM must be the target system string---e.g., \"x86_64-linux\"." (define setup-gfxterm-body - ;; Intel systems need to be switched into graphics mode, whereas most - ;; other modern architectures have no other mode and therefore don't need - ;; to be switched. + ;; Intel and EFI systems need to be switched into graphics mode, whereas + ;; most other modern architectures have no other mode and therefore don't + ;; need to be switched. (if (string-match "^(x86_64|i[3-6]86)-" system) " # Leave 'gfxmode' to 'auto'. @@ -188,6 +188,15 @@ system string---e.g., \"x86_64-linux\"." insmod video_bochs insmod video_cirrus insmod gfxterm + + if [ \"${grub_platform}\" == efi ]; then + # This is for (U)EFI systems (these modules are unavailable in the + # non-EFI GRUB.) If we don't load them, GRUB boots in \"blind mode\", + # which isn't convenient. + insmod efi_gop + insmod efi_uga + fi + terminal_output gfxterm " "")) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index dfa003f256..ad234fd9c1 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -255,8 +255,8 @@ the user's target storage device rather than on the RAM disk." (persistent? #f) (max-database-size (* 5 (expt 2 20)))))) ;5 MiB -(define (installation-services) - "Return the list services for the installation image." +(define %installation-services + ;; List of services of the installation system. (let ((motd (plain-file "motd" " Welcome to the installation of the Guix System Distribution! @@ -377,8 +377,7 @@ Use Alt-F2 for documentation. (home-directory "/home/guest")))) (issue %issue) - - (services (installation-services)) + (services %installation-services) ;; We don't need setuid programs so pass the empty list so we don't pull ;; additional programs here. @@ -393,6 +392,7 @@ Use Alt-F2 for documentation. grub ;mostly so xrefs to its manual work cryptsetup mdadm + dosfstools ;mkfs.fat, for the UEFI boot partition btrfs-progs wireless-tools iw wpa-supplicant-minimal iproute ;; XXX: We used to have GNU fdisk here, but as of version diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 174239a566..4a753cdadb 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -29,6 +29,7 @@ #:select (derivation->output-path)) #:use-module (guix modules) #:use-module (gnu packages compression) + #:use-module (gnu packages disk) #:use-module (gnu packages linux) #:use-module (gnu packages guile) #:use-module ((gnu packages make-bootstrap) @@ -193,6 +194,12 @@ loaded at boot time in the order in which they appear." ,@(if (find (file-system-type-predicate "9p") file-systems) virtio-9p-modules '()) + ,@(if (find (file-system-type-predicate "vfat") file-systems) + '("nls_iso8859-1") + '()) + ,@(if (find (file-system-type-predicate "btrfs") file-systems) + '("btrfs") + '()) ,@(if volatile-root? '("fuse") '()) @@ -205,6 +212,14 @@ loaded at boot time in the order in which they appear." file-systems) (list e2fsck/static) '()) + ,@(if (find (lambda (fs) + (string-suffix? "fat" (file-system-type fs))) + file-systems) + (list fatfsck/static) + '()) + ,@(if (find (file-system-type-predicate "btrfs") file-systems) + (list btrfs-progs/static) + '()) ,@(if volatile-root? (list unionfs-fuse/static) '()))) |