Subject: [bug#40274] [PATCH v4] gnu: Add kernel-module-loader-service.

From: "pelzflorian (Florian Pelz)" <[email-masked]>
Date: Wed, 1 Apr 2020 21:34:58 +0200

Thank you for your patch.

I tried with your patch to make the Guix install image load the
uvesafb kernel module, but it fails and I get no log.  Is it possible
to make the service log failures?

I just get:

failed to load service: kernel-module-loader

printed on the console (but not to /var/log/messages).

I believe I pass parameters wrongly.  I attach how I try to use your
kernel-module-loader.

Regards,
Florian
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index c15c2c7814..aa42449098 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,13 @@ 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.
+              `(,(kernel-module-loader-service
+                  '(("uvesafb" (string-append "v86d=" #$v86d "/sbin/v86d")
+                     "mode_option=1024x768"))))
+              '()))))
 
 (define %issue
   ;; Greeting.