summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Pelz <pelzflorian@pelzflorian.de>2020-04-29 17:17:55 +0200
committerFlorian Pelz <pelzflorian@pelzflorian.de>2020-05-01 08:46:59 +0000
commite06664da02a829c7fa8fd084aac47c837451d57a (patch)
tree81516d0a20df13d69350d8a0a8fc3816aa98bb46
parent73ddcab6075f60ef9b3cd72a35fbf7f5d622b6ef (diff)
downloadguix-e06664da02a829c7fa8fd084aac47c837451d57a.tar.gz
system: Blacklist usbmouse kernel module in default kernel-arguments.
This avoids a race with the bcm5974 kernel module.
Fixes <https://bugs.gnu.org/35574>.

* gnu/system.scm (%default-modprobe-blacklist): New variable.
(<operating-system>)[kernel-arguments]: Default to ...
(%default-kernel-arguments): ... this new variable.
* doc/guix.texi (operating-system Reference): Document the change.
-rw-r--r--doc/guix.texi2
-rw-r--r--gnu/system.scm16
2 files changed, 15 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 26b4652f67..bdae451875 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -11274,7 +11274,7 @@ possible to use the GNU@tie{}Hurd.}.
 A list of objects (usually packages) to collect loadable kernel modules
 from--e.g. @code{(list ddcci-driver-linux)}.
 
-@item @code{kernel-arguments} (default: @code{'("quiet")})
+@item @code{kernel-arguments} (default: @code{%default-kernel-arguments})
 List of strings or gexps representing additional arguments to pass on
 the command-line of the kernel---e.g., @code{("console=ttyS0")}.
 
diff --git a/gnu/system.scm b/gnu/system.scm
index 3c511f4089..ab6982ef5e 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2019 Meiyo Peng <meiyo.peng@gmail.com>
 ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -148,7 +149,8 @@
             %base-packages-linux
             %base-packages-networking
             %base-packages-utils
-            %base-firmware))
+            %base-firmware
+            %default-kernel-arguments))
 
 ;;; Commentary:
 ;;;
@@ -179,7 +181,7 @@
   (kernel-loadable-modules operating-system-kernel-loadable-modules
                     (default '()))                ; list of packages
   (kernel-arguments operating-system-user-kernel-arguments
-                    (default '("quiet")))         ; list of gexps/strings
+                    (default %default-kernel-arguments)) ; list of gexps/strings
   (bootloader operating-system-bootloader)        ; <bootloader-configuration>
   (label operating-system-label                   ; string
          (thunked)
@@ -488,6 +490,16 @@ possible (that is if there's a LINUX keyword argument in the build system)."
        ((#:linux kernel #f)
         target-kernel)))))
 
+(define %default-modprobe-blacklist
+  ;; List of kernel modules to blacklist by default.
+  '("usbmouse")) ;see <https://bugs.gnu.org/35574>
+
+(define %default-kernel-arguments
+  ;; Default arguments passed to the kernel.
+  (list (string-append "modprobe.blacklist="
+                       (string-join %default-modprobe-blacklist ","))
+        "quiet"))
+
 (define* (operating-system-directory-base-entries os)
   "Return the basic entries of the 'system' directory of OS for use as the
 value of the SYSTEM-SERVICE-TYPE service."