aboutsummaryrefslogtreecommitdiff
path: root/gnu/system
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/grub.scm17
-rw-r--r--gnu/system/install.scm8
-rw-r--r--gnu/system/linux-initrd.scm15
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)
'())))