diff --git a/gnu/system/install.scm b/gnu/system/install.scm index c15c2c7814..1348c63f25 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -26,11 +26,13 @@ #:use-module (gnu bootloader u-boot) #:use-module (guix gexp) #:use-module (guix store) + #:use-module (guix utils) #:use-module (guix monads) #:use-module ((guix packages) #:select (package-version)) #:use-module ((guix store) #:select (%store-prefix)) #:use-module (gnu installer) #:use-module (gnu services dbus) + #:use-module (gnu services linux) #:use-module (gnu services networking) #:use-module (gnu services shepherd) #:use-module (gnu services ssh) @@ -50,6 +52,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages compression) #:use-module (gnu packages nvi) + #:use-module (gnu packages xorg) #:use-module (ice-9 match) #:use-module (srfi srfi-26) #:export (installation-os @@ -304,7 +307,8 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m (define bare-bones-os (load "examples/bare-bones.tmpl")) - (list (service virtual-terminal-service-type) + (cons* + (service virtual-terminal-service-type) (service kmscon-service-type (kmscon-configuration @@ -408,7 +412,23 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m (list bare-bones-os glibc-utf8-locales texinfo - (canonical-package guile-2.2)))))) + (canonical-package guile-2.2))) + (if (member (%current-system) '("x86_64-linux" "i686-linux")) + ;; Load uvesafb to show installer when no KMS is available. + `(,(service kernel-module-loader-service-type '("uvesafb")) + ,(let ((uvesafb-options + #~(with-output-to-file #$output + (lambda _ + (format #t + (string-join `("options" "uvesafb" + ,(string-append "v86d=" #$v86d + "/sbin/v86d") + "mode_option=1024x768"))))))) + (simple-service 'uvesafb-configuration etc-service-type + (list `("modprobe.d/uvesafb.conf" + ,(computed-file "uvesafb-options" + uvesafb-options)))))) + '())))) (define %issue ;; Greeting.