On Tue, Apr 28, 2020 at 02:10:58PM +0000, Brice Waegeneire wrote: > Keeping this module enabled in the kernel seems a good idea, > […] > Passing arguments to the kernel to blacklist a module is the correct way of > doing this currently FWIU; it's already used in gnu/system/install.scm.
Thank you. Shall I push the attached patch? Regards, Florian
>From 67f8a33e669adc24ca2429e500a5137f12497191 Mon Sep 17 00:00:00 2001 From: Florian Pelz <pelzflor...@pelzflorian.de> Date: Wed, 29 Apr 2020 17:17:55 +0200 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [PATCH] 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. --- doc/guix.texi | 2 +- gnu/system.scm | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index d0592220a7..c87283d97f 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.p...@gmail.com> ;;; Copyright © 2020 Danny Milosavljevic <dan...@scratchpost.org> ;;; Copyright © 2020 Brice Waegeneire <br...@waegenei.re> +;;; Copyright © 2020 Florian Pelz <pelzflor...@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." -- 2.26.1