Subject: Re: bug#60010: [version 1.4.0] AMD screen stays black; modprobe fails

From: Ludovic Courtès <[email-masked]>
Date: Tue, 13 Dec 2022 11:00:34 +0100

Ludovic Courtès <[email-masked]> skribis:

> So you may need to add:
>
>   (setenv "LINUX_MODULE_DIRECTORY" "/run/booted-system/kernel/lib/modules")

Specifically, here’s the minimal change we should test:

diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index f6f1923121..a512ace29e 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -289,11 +289,16 @@ (define (uvesafb-shepherd-service _)
          (provision '(maybe-uvesafb))
          (requirement '(file-systems))
          (start #~(lambda ()
-                    (or (file-exists? "/dev/fb0")
-                        (invoke #+(file-append kmod "/bin/modprobe")
-                                "uvesafb"
-                                (string-append "v86d=" #$v86d "/sbin/v86d")
-                                "mode_option=1024x768"))))
+                    (unless (file-exists? "/dev/fb0")
+                      (setenv "LINUX_MODULE_DIRECTORY"
+                              "/run/booted-system/kernel/lib/modules")
+                      ;; TODO: Use 'load-linux-modules-from-directory' instead.
+                      (invoke #+(file-append kmod "/bin/modprobe")
+                              "uvesafb"
+                              (string-append "v86d=" #$v86d "/sbin/v86d")
+                              "mode_option=1024x768")
+                      (unsetenv "LINUX_MODULE_DIRECTORY")
+                      #t)))
          (respawn? #f)
          (one-shot? #t))))

Thanks,
Ludo’.