From unknown Wed Jun 18 00:28:29 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#40274 <40274@debbugs.gnu.org> To: bug#40274 <40274@debbugs.gnu.org> Subject: Status: [PATCH] gnu: Add kernel-module-loader-service. Reply-To: bug#40274 <40274@debbugs.gnu.org> Date: Wed, 18 Jun 2025 07:28:29 +0000 retitle 40274 [PATCH] gnu: Add kernel-module-loader-service. reassign 40274 guix-patches submitter 40274 Brice Waegeneire severity 40274 normal tag 40274 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 28 09:59:21 2020 Received: (at submit) by debbugs.gnu.org; 28 Mar 2020 13:59:21 +0000 Received: from localhost ([127.0.0.1]:34901 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jIBzd-000650-4b for submit@debbugs.gnu.org; Sat, 28 Mar 2020 09:59:21 -0400 Received: from lists.gnu.org ([209.51.188.17]:43035) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jIBzc-00064s-6H for submit@debbugs.gnu.org; Sat, 28 Mar 2020 09:59:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59603) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIBzZ-0007iU-HG for guix-patches@gnu.org; Sat, 28 Mar 2020 09:59:19 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIBzX-0008Ti-H4 for guix-patches@gnu.org; Sat, 28 Mar 2020 09:59:17 -0400 Received: from relay11.mail.gandi.net ([217.70.178.231]:39453) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jIBzX-0008Q1-7H for guix-patches@gnu.org; Sat, 28 Mar 2020 09:59:15 -0400 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay11.mail.gandi.net (Postfix) with ESMTPSA id 1775D100002 for ; Sat, 28 Mar 2020 13:59:11 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH] gnu: Add kernel-module-loader-service. Date: Sat, 28 Mar 2020 14:59:08 +0100 Message-Id: <20200328135908.2540-1-brice@waegenei.re> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.178.231 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Linux Services): Add a new subsection and document the new service and its configuration. * gnu/services/linux.scm (kernel-module-loader-service): New procedure. (kernel-module-loader-service-type, kernel-module-loader-configuration): New types. --- This patch is related to the following thread: https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00381.html doc/guix.texi | 48 ++++++++++++++++++++++++++++++++++ gnu/services/linux.scm | 58 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 105 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 77a4b8ed71..a297ec249f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -75,6 +75,7 @@ Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* +Copyright @copyright{} 2020 Brice Waegeneire@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -25382,6 +25383,53 @@ notifications. @end table @end deftp +@cindex modprobe +@cindex kernel module loader +@subsubsection Kernel Module Loader Service + +The @code{kernel-module-loader-service} provides a service to load +kernel modules at boot. This is especially usefull for modules that +don't autoload and need to be manually loaded, like it's the case with +@code{ddcci} for example. + +@deffn {Scheme Procedure} kernel-module-loader-service @var{modules} +Return a service that run @command{modprobe} with arguments +@var{modules} at boot. For example loading the drivers provided by +@code{ddci-driver-linux} can be done as follow: + +@lisp +(use-modules (gnu)) +(use-package-modules linux) +(use-service-modules linux) +(operating-system + ... + (services (cons* (kernel-module-loader-service + '("ddcci""ddcci_backlight")) + %base-services)) + (kernel-loadable-modules (list ddcci-driver-linux))) +@end lisp +@end defvr + +@deffn {Scheme Variable} kernel-module-loader-service-type +The service type for loading kernel modules, that can't autoload, at +boot, @command{modprobe}, on. Its value must be a +@code{kernel-module-loader-configuration} object, described below. + +@deftp {Data Type} kernel-module-loader-configuration +The data type representing the configuration of @command{sysctl}. + +@deftp {Data Type} kernel-module-loader-configuration +This is the configuration record for the +@code{kernel-module-loader-service-type}. + +@table @asis +@item @code{modprobe} (default: @code{(file-append kmod "/bin/modprobe"}) +The @command{modprobe} executable to use. + +@item @code{modules} (default: @code{'()}) +A list specifying the modules to load. +@end table +@end deftp @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..99ab4a3329 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,14 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-configuration + kernel-module-loader-configuration? + kernel-module-loader-configuration-modprobe + kernel-module-loader-configuration-modules + kernel-module-loader-service-type + kernel-module-loader-service)) ;;; @@ -123,3 +131,51 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + +;;; +;;; Kernel module loader. +;;; + +(define-record-type* + kernel-module-loader-configuration make-kernel-module-loader-configuration + kernel-module-loader-configuration? + (modprobe kernel-module-loader-configuration-modprobe ; path of the 'modprobe' command + (default (file-append kmod "/bin/modprobe"))) + (modules kernel-module-loader-configuration-modules ; list of strings + (default '()))) + +(define kernel-module-loader-shepherd-service + (match-lambda + (($ modprobe modules) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (respawn? #f) + (one-shot? #t) + (start + #~(lambda _ + (zero? (system* #$modprobe #$@modules))))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list + (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend (lambda (config modules) + (kernel-module-loader-configuration + (inherit config) + (modules (append + (kernel-module-loader-configuration-modules config) + modules))))) + (default-value (kernel-module-loader-configuration)))) + +(define* (kernel-module-loader-service modules) + "Return a service that loads kernel MODULES." + (service kernel-module-loader-service-type + (kernel-module-loader-configuration + (modules modules)))) -- 2.25.1 From m.othacehe@gmail.com Sat Mar 28 16:51:18 2020 Received: (at submit) by debbugs.gnu.org; 30 Mar 2020 02:35:32 +0000 Received: from lists.gnu.org ([209.51.188.17]:40520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jIIQI-0007a5-1H for submit@debbugs.gnu.org; Sat, 28 Mar 2020 16:51:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55113) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIIQG-0000Eh-V4 for guix-patches@gnu.org; Sat, 28 Mar 2020 16:51:17 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIIQG-0004es-2u for guix-patches@gnu.org; Sat, 28 Mar 2020 16:51:16 -0400 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:36544) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIIQF-0004eY-RL for guix-patches@gnu.org; Sat, 28 Mar 2020 16:51:16 -0400 Received: by mail-wm1-x343.google.com with SMTP id g62so16728456wme.1 for ; Sat, 28 Mar 2020 13:51:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version; bh=vmkitG3X9KxtsJGtGAeYzBZi4Kb9/1AySuHtelcB2Ow=; b=etV1ssbR3teeNyhfMROmXxXRbpv3hVuGyruouOC1tGRZeB/EyVxXCLV2Eolnj46QzC cfb63ftAkoxsJteavGtgSk0mZciT/wSkXHlpMXNcy7v6j1pkiJtgCRc1l/nyKuBd4v82 mw6YDl/8j602GfcaUzN8rjvHpjoIcBsldU22uHEMzmlAUwIrWqDJ7Pw7KHimDnQ5R6nP lIDy3LXAKaNhlBZkHOlCqkttRIO2ys5PDBW4GSVVTgwHAys7+lTWxNYW1aQHRIqqOTuS DQMLhnZvSqWkNObXSuUEppfkGbcuxiwARTxclGct2XysEonNSx8TvvliPglcOko045c/ S/Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version; bh=vmkitG3X9KxtsJGtGAeYzBZi4Kb9/1AySuHtelcB2Ow=; b=TSO+g3ePdy+txM2OCYnJ08cWfhNt6MUKIyOtKMqCELoDjelhEmgs4g+jZsF06MfctU DBakDHHQV5xSE2y8qtnsf+BD64HQz1CrXgUgcWJJSSvBtbXJxEAr+DzAmvBy9gzYT6PA aQsECAnE3oHbTtMzLMxGDiRwJnN2ftTqpKGU9WAHQG30wV8VZqy0jV6ZaEo/gEP/vvkt wGf3HlTNo/n6FYonJWFQdEU32vrxTzo5dON/PtEiUDr5I6EU2M5h6et1c+/pMOkDkPW6 QTOP4yRcvarpdrjgSEWRRWDAC3fKNvwrbwz/eFUEg1ec1qbP/KCj3QpLpnMAsHWYYiVk PgMA== X-Gm-Message-State: ANhLgQ08102/ldYnnXm5uK+OheNzg4oAWmqaAo3GMdq/YC1bUfvl0PTQ xiEr0arPk4khXWiN9tBLX0WQzItyBLI= X-Google-Smtp-Source: ADFU+vtOdt32N/5w7hKfdcZKr0yGv0Mf1LdmYaxVexPTpOcrdH/XK7oW08bSHorV1O/He3mjcsHWrw== X-Received: by 2002:a1c:ed1a:: with SMTP id l26mr5276082wmh.175.1585428670864; Sat, 28 Mar 2020 13:51:10 -0700 (PDT) Received: from cervin ([2a01:cb18:832e:5f00:a873:d253:d873:1441]) by smtp.gmail.com with ESMTPSA id f12sm9857821wrm.94.2020.03.28.13.51.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Mar 2020 13:51:10 -0700 (PDT) References: <20200328135908.2540-1-brice@waegenei.re> User-agent: mu4e 1.2.0; emacs 26.3 From: Mathieu Othacehe To: guix-patches@gnu.org Cc: 40274@debbugs.gnu.org Subject: Re: [bug#40274] [PATCH] gnu: Add kernel-module-loader-service. In-reply-to: <20200328135908.2540-1-brice@waegenei.re> Date: Sat, 28 Mar 2020 21:51:09 +0100 Message-ID: <87o8sgursy.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Mar 2020 20:51:18 -0000 Hello Brice, Thanks for this patch! I think you could add this service to (gnu tests linux-modules). This way we would have a full-coverage of the mechanism. Mathieu From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 31 13:19:17 2020 Received: (at submit) by debbugs.gnu.org; 31 Mar 2020 17:19:17 +0000 Received: from localhost ([127.0.0.1]:36944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJKXl-0004Ck-8u for submit@debbugs.gnu.org; Tue, 31 Mar 2020 13:19:17 -0400 Received: from lists.gnu.org ([209.51.188.17]:38401) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJKXj-0004CZ-Bd for submit@debbugs.gnu.org; Tue, 31 Mar 2020 13:19:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49361) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJKXh-00045f-A6 for guix-patches@gnu.org; Tue, 31 Mar 2020 13:19:15 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJKXe-0007Sh-V5 for guix-patches@gnu.org; Tue, 31 Mar 2020 13:19:12 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:51721) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jJKXe-0007RF-Ln for guix-patches@gnu.org; Tue, 31 Mar 2020 13:19:10 -0400 X-Originating-IP: 78.237.113.178 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 592281C0004 for ; Tue, 31 Mar 2020 17:19:05 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v2] gnu: Add kernel-module-loader-service. Date: Tue, 31 Mar 2020 19:19:00 +0200 Message-Id: <20200331171900.16356-1-brice@waegenei.re> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200328135908.2540-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.197 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Linux Services): Add a new subsection and document the new service and its configuration. * gnu/services/linux.scm (kernel-module-loader-service): New procedure. (kernel-module-loader-service-type, kernel-module-loader-configuration): New types. * gnu/tests/linux-modules.scm (module-loader-program): Procedure removed. (modules-loaded?-program): New procedure. (run-loadable-kernel-modules-test): 'module-loader-program' procedure replaced by the new one. New format for last arguments [os]: Use 'kernel-module-loader-service'. (%test-loadable-kernel-modules-0, %test-loadable-kernel-modules-1, %test-loadable-kernel-modules-2): Use the new argument format. --- doc/guix.texi | 52 +++++++++++++++++++++++++++++++ gnu/services/linux.scm | 61 ++++++++++++++++++++++++++++++++++++- gnu/tests/linux-modules.scm | 45 ++++++++++++++++----------- 3 files changed, 140 insertions(+), 18 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 77a4b8ed71..e8ad830102 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -75,6 +75,7 @@ Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* +Copyright @copyright{} 2020 Brice Waegeneire@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -25382,6 +25383,57 @@ notifications. @end table @end deftp +@cindex modprobe +@cindex kernel module loader +@subsubsection Kernel Module Loader Service + +The @code{kernel-module-loader-service} provides a service to load +kernel modules at boot. This is especially usefull for modules that +don't autoload and need to be manually loaded, like it's the case with +@code{ddcci} for example. + +@deffn {Scheme Procedure} kernel-module-loader-service @var{modules} +Return a service that run @command{modprobe} with arguments +@var{modules} at boot. For example loading the drivers provided by +@code{ddci-driver-linux} with @code{ddcci} in debugging mode can be done +as follow: + +@lisp +(use-modules (gnu)) +(use-package-modules linux) +(use-service-modules linux) +(operating-system + ... + (services (cons* (kernel-module-loader-service + '(("ddcci" "dyndbg") + ("ddcci_backlight"))) + %base-services)) + (kernel-loadable-modules (list ddcci-driver-linux))) +@end lisp +@end defvr + +@deffn {Scheme Variable} kernel-module-loader-service-type +The service type for loading kernel modules at boot with +@command{modprobe}, for module that can't autoload. Its value must be a +@code{kernel-module-loader-configuration} object, described below. + +@deftp {Data Type} kernel-module-loader-configuration +The data type representing the modules to be loaded by +@command{modprobe}. + +@deftp {Data Type} kernel-module-loader-configuration +This is the configuration record for the +@code{kernel-module-loader-service-type}. + +@table @asis +@item @code{modprobe} (default: @code{(file-append kmod "/bin/modprobe"}) +The @command{modprobe} executable to use. + +@item @code{modules} (default: @code{'()}) +A list of list of strings specifying the modules to load with their +optional parameters. +@end table +@end deftp @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..da71b275f1 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,14 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-configuration + kernel-module-loader-configuration? + kernel-module-loader-configuration-modprobe + kernel-module-loader-configuration-modules + kernel-module-loader-service-type + kernel-module-loader-service)) ;;; @@ -123,3 +131,54 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + +;;; +;;; Kernel module loader. +;;; + +(define-record-type* + kernel-module-loader-configuration make-kernel-module-loader-configuration + kernel-module-loader-configuration? + (modprobe kernel-module-loader-configuration-modprobe ; path of the 'modprobe' command + (default (file-append kmod "/bin/modprobe"))) + (modules kernel-module-loader-configuration-modules ; list of lists of strings + (default '()))) + +(define kernel-module-loader-shepherd-service + (match-lambda + (($ modprobe modules) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (respawn? #f) + (one-shot? #t) + (start + #~(lambda _ + (and-map (lambda (module-with-parameters) + (zero? (apply system* #$modprobe "--" + module-with-parameters))) + '#$modules)))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list + (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend (lambda (config modules) + (kernel-module-loader-configuration + (inherit config) + (modules (append + (kernel-module-loader-configuration-modules config) + modules))))) + (default-value (kernel-module-loader-configuration)))) + +(define* (kernel-module-loader-service modules) + "Return a service that loads kernel MODULES." + (service kernel-module-loader-service-type + (kernel-module-loader-configuration + (modules modules)))) diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 39e11587c6..7b820a1269 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze ;;; Copyright © 2020 Danny Milosavljevic +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,7 @@ (define-module (gnu tests linux-modules) #:use-module (gnu packages linux) + #:use-module (gnu services linux) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) @@ -37,25 +39,31 @@ ;;; ;;; Code: -(define* (module-loader-program os modules) - "Return an executable store item that, upon being evaluated, will dry-run -load MODULES." +(define* (modules-loaded?-program os modules) + "Return an executable store item that, upon being evaluated, will verify +that MODULES are actually loaded." (program-file "load-kernel-modules.scm" - (with-imported-modules (source-module-closure '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (for-each (lambda (module) - (invoke (string-append #$kmod "/bin/modprobe") "-n" "--" - module)) - '#$modules))))) + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 popen)) + (let* ((port (open-input-pipe (string-append #$kmod "/bin/lsmod"))) + (output (read-string port)) + (status (close-pipe port))) + (and-map (lambda (module) (string-contains output module)) + '#$modules))))) -(define* (run-loadable-kernel-modules-test module-packages module-names) - "Run a test of an OS having MODULE-PACKAGES, and modprobe MODULE-NAMES." +(define* (run-loadable-kernel-modules-test module-packages + modules-with-parameters) + "Run a test of an OS having MODULE-PACKAGES, and verify that +MODULES-WITH-PARAMETERS are loaded in memory." (define os (marionette-operating-system (operating-system (inherit (simple-operating-system)) + (services (cons (kernel-module-loader-service modules-with-parameters) + (operating-system-user-services + (simple-operating-system)))) (kernel-loadable-modules module-packages)) #:imported-modules '((guix combinators)))) (define vm (virtual-machine os)) @@ -75,7 +83,9 @@ load MODULES." marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - (gexp->derivation "loadable-kernel-modules" (test (module-loader-program os module-names)))) + (gexp->derivation + "loadable-kernel-modules" + (test (modules-loaded?-program os (map car modules-with-parameters))))) (define %test-loadable-kernel-modules-0 (system-test @@ -88,16 +98,17 @@ with no extra modules.") (system-test (name "loadable-kernel-modules-1") (description "Tests loadable kernel modules facility of -with one extra module.") +with one extra module with some parameters.") (value (run-loadable-kernel-modules-test (list ddcci-driver-linux) - '("ddcci"))))) + '(("ddcci" "dyndbg" "delay:120")))))) (define %test-loadable-kernel-modules-2 (system-test (name "loadable-kernel-modules-2") (description "Tests loadable kernel modules facility of -with two extra modules.") +with two extra modules without any parameters.") (value (run-loadable-kernel-modules-test (list acpi-call-linux-module ddcci-driver-linux) - '("acpi_call" "ddcci"))))) + '(("acpi_call") + ("ddcci")))))) -- 2.25.1 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 31 13:22:10 2020 Received: (at 40274) by debbugs.gnu.org; 31 Mar 2020 17:22:10 +0000 Received: from localhost ([127.0.0.1]:36948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJKaY-0004Hp-25 for submit@debbugs.gnu.org; Tue, 31 Mar 2020 13:22:10 -0400 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:47975) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJKaW-0004Hb-G6 for 40274@debbugs.gnu.org; Tue, 31 Mar 2020 13:22:09 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay3-d.mail.gandi.net (Postfix) with ESMTPA id A8D1E60005; Tue, 31 Mar 2020 17:22:01 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Tue, 31 Mar 2020 17:22:01 +0000 From: Brice Waegeneire To: Mathieu Othacehe Subject: Re: [bug#40274] [PATCH] gnu: Add kernel-module-loader-service. In-Reply-To: <87o8sgursy.fsf@gmail.com> References: <20200328135908.2540-1-brice@waegenei.re> <87o8sgursy.fsf@gmail.com> Message-ID: <8b8e74d2584e5660688a741c00301400@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org, Guix-patches X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello Mathieu, On 2020-03-28 20:51, Mathieu Othacehe wrote: > Hello Brice, > > Thanks for this patch! I think you could add this service to (gnu tests > linux-modules). This way we would have a full-coverage of the > mechanism. > > Mathieu I have done what you suggested in v2. It also fix some issues and add the ability to optionally specify parameters for each module. - Brice From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 31 16:00:54 2020 Received: (at submit) by debbugs.gnu.org; 31 Mar 2020 20:00:54 +0000 Received: from localhost ([127.0.0.1]:37060 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJN49-0001GM-Nf for submit@debbugs.gnu.org; Tue, 31 Mar 2020 16:00:54 -0400 Received: from lists.gnu.org ([209.51.188.17]:41775) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJN47-0001G9-K9 for submit@debbugs.gnu.org; Tue, 31 Mar 2020 16:00:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59177) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJN44-0006wF-Op for guix-patches@gnu.org; Tue, 31 Mar 2020 16:00:51 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJN42-0002ya-By for guix-patches@gnu.org; Tue, 31 Mar 2020 16:00:48 -0400 Received: from relay11.mail.gandi.net ([217.70.178.231]:49263) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jJN40-0002tW-MA for guix-patches@gnu.org; Tue, 31 Mar 2020 16:00:46 -0400 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay11.mail.gandi.net (Postfix) with ESMTPSA id 21FA8100006 for ; Tue, 31 Mar 2020 20:00:40 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v3] gnu: Add kernel-module-loader-service. Date: Tue, 31 Mar 2020 22:00:37 +0200 Message-Id: <20200331200037.32346-1-brice@waegenei.re> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200328135908.2540-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.178.231 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Linux Services): Add a new subsection and document the new service and its configuration. * gnu/services/linux.scm (kernel-module-loader-service): New procedure. (kernel-module-loader-service-type, kernel-module-loader-configuration): New types. * gnu/tests/linux-modules.scm (module-loader-program): Procedure removed. (modules-loaded?-program): New procedure. (run-loadable-kernel-modules-test): 'module-loader-program' procedure replaced by the new one. New format for last arguments [os]: Use 'kernel-module-loader-service'. (%test-loadable-kernel-modules-0, %test-loadable-kernel-modules-1, %test-loadable-kernel-modules-2): Use the new argument format. --- This version fix some markup issue in doc/guix.texi. doc/guix.texi | 54 ++++++++++++++++++++++++++++++++ gnu/services/linux.scm | 61 ++++++++++++++++++++++++++++++++++++- gnu/tests/linux-modules.scm | 45 ++++++++++++++++----------- 3 files changed, 142 insertions(+), 18 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 77a4b8ed71..83c893ddb9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -75,6 +75,7 @@ Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* +Copyright @copyright{} 2020 Brice Waegeneire@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -25382,6 +25383,59 @@ notifications. @end table @end deftp +@cindex modprobe +@cindex kernel module loader +@subsubsection Kernel Module Loader Service + +The @code{kernel-module-loader-service} provides a service to load +kernel modules at boot. This is especially usefull for modules that +don't autoload and need to be manually loaded, like it's the case with +@code{ddcci} for example. + +@deffn {Scheme Procedure} kernel-module-loader-service @var{modules} +Return a service that run @command{modprobe} with arguments +@var{modules} at boot. For example loading the drivers provided by +@code{ddci-driver-linux} with @code{ddcci} in debugging mode can be done +as follow: + +@lisp +(use-modules (gnu)) +(use-package-modules linux) +(use-service-modules linux) +(operating-system + ... + (services (cons* (kernel-module-loader-service + '(("ddcci" "dyndbg") + ("ddcci_backlight"))) + %base-services)) + (kernel-loadable-modules (list ddcci-driver-linux))) +@end lisp +@end deffn + +@deffn {Scheme Variable} kernel-module-loader-service-type +The service type for loading kernel modules at boot with +@command{modprobe}, for module that can't autoload. Its value must be a +@code{kernel-module-loader-configuration} object, described below. +@end deffn + +@deftp {Data Type} kernel-module-loader-configuration +The data type representing the modules to be loaded by +@command{modprobe}. +@end deftp + +@deftp {Data Type} kernel-module-loader-configuration +This is the configuration record for the +@code{kernel-module-loader-service-type}. + +@table @asis +@item @code{modprobe} (default: @code{(file-append kmod "/bin/modprobe"}) +The @command{modprobe} executable to use. + +@item @code{modules} (default: @code{'()}) +A list of list of strings specifying the modules to load with their +optional parameters. +@end table +@end deftp @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..da71b275f1 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,14 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-configuration + kernel-module-loader-configuration? + kernel-module-loader-configuration-modprobe + kernel-module-loader-configuration-modules + kernel-module-loader-service-type + kernel-module-loader-service)) ;;; @@ -123,3 +131,54 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + +;;; +;;; Kernel module loader. +;;; + +(define-record-type* + kernel-module-loader-configuration make-kernel-module-loader-configuration + kernel-module-loader-configuration? + (modprobe kernel-module-loader-configuration-modprobe ; path of the 'modprobe' command + (default (file-append kmod "/bin/modprobe"))) + (modules kernel-module-loader-configuration-modules ; list of lists of strings + (default '()))) + +(define kernel-module-loader-shepherd-service + (match-lambda + (($ modprobe modules) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (respawn? #f) + (one-shot? #t) + (start + #~(lambda _ + (and-map (lambda (module-with-parameters) + (zero? (apply system* #$modprobe "--" + module-with-parameters))) + '#$modules)))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list + (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend (lambda (config modules) + (kernel-module-loader-configuration + (inherit config) + (modules (append + (kernel-module-loader-configuration-modules config) + modules))))) + (default-value (kernel-module-loader-configuration)))) + +(define* (kernel-module-loader-service modules) + "Return a service that loads kernel MODULES." + (service kernel-module-loader-service-type + (kernel-module-loader-configuration + (modules modules)))) diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 39e11587c6..7b820a1269 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze ;;; Copyright © 2020 Danny Milosavljevic +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,7 @@ (define-module (gnu tests linux-modules) #:use-module (gnu packages linux) + #:use-module (gnu services linux) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) @@ -37,25 +39,31 @@ ;;; ;;; Code: -(define* (module-loader-program os modules) - "Return an executable store item that, upon being evaluated, will dry-run -load MODULES." +(define* (modules-loaded?-program os modules) + "Return an executable store item that, upon being evaluated, will verify +that MODULES are actually loaded." (program-file "load-kernel-modules.scm" - (with-imported-modules (source-module-closure '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (for-each (lambda (module) - (invoke (string-append #$kmod "/bin/modprobe") "-n" "--" - module)) - '#$modules))))) + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 popen)) + (let* ((port (open-input-pipe (string-append #$kmod "/bin/lsmod"))) + (output (read-string port)) + (status (close-pipe port))) + (and-map (lambda (module) (string-contains output module)) + '#$modules))))) -(define* (run-loadable-kernel-modules-test module-packages module-names) - "Run a test of an OS having MODULE-PACKAGES, and modprobe MODULE-NAMES." +(define* (run-loadable-kernel-modules-test module-packages + modules-with-parameters) + "Run a test of an OS having MODULE-PACKAGES, and verify that +MODULES-WITH-PARAMETERS are loaded in memory." (define os (marionette-operating-system (operating-system (inherit (simple-operating-system)) + (services (cons (kernel-module-loader-service modules-with-parameters) + (operating-system-user-services + (simple-operating-system)))) (kernel-loadable-modules module-packages)) #:imported-modules '((guix combinators)))) (define vm (virtual-machine os)) @@ -75,7 +83,9 @@ load MODULES." marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - (gexp->derivation "loadable-kernel-modules" (test (module-loader-program os module-names)))) + (gexp->derivation + "loadable-kernel-modules" + (test (modules-loaded?-program os (map car modules-with-parameters))))) (define %test-loadable-kernel-modules-0 (system-test @@ -88,16 +98,17 @@ with no extra modules.") (system-test (name "loadable-kernel-modules-1") (description "Tests loadable kernel modules facility of -with one extra module.") +with one extra module with some parameters.") (value (run-loadable-kernel-modules-test (list ddcci-driver-linux) - '("ddcci"))))) + '(("ddcci" "dyndbg" "delay:120")))))) (define %test-loadable-kernel-modules-2 (system-test (name "loadable-kernel-modules-2") (description "Tests loadable kernel modules facility of -with two extra modules.") +with two extra modules without any parameters.") (value (run-loadable-kernel-modules-test (list acpi-call-linux-module ddcci-driver-linux) - '("acpi_call" "ddcci"))))) + '(("acpi_call") + ("ddcci")))))) -- 2.25.1 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 31 16:10:42 2020 Received: (at 40274) by debbugs.gnu.org; 31 Mar 2020 20:10:42 +0000 Received: from localhost ([127.0.0.1]:37072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJNDd-0001iM-OT for submit@debbugs.gnu.org; Tue, 31 Mar 2020 16:10:42 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:35153) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJNDb-0001i6-4P for 40274@debbugs.gnu.org; Tue, 31 Mar 2020 16:10:39 -0400 Received: by mail-wr1-f66.google.com with SMTP id d5so27746084wrn.2 for <40274@debbugs.gnu.org>; Tue, 31 Mar 2020 13:10:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:in-reply-to:references:date:message-id:mime-version :content-transfer-encoding; bh=1tMYn9vpjmnh71hpB6vzI1l4VR25ILn7MzcgYwA2+jk=; b=egCOOq1TrPrB7SvR/mEM/BBqmD4pmtJjF/aOgywti5tCu9E9xbO6Aur7MDwzacC8bC ++2HP80FbHTc+cqDZF0j8D8KfLkHREu6xOXyzlAjnTBZOFsUM1g8jxHPJLQEOeWQiDgY H7gfWdK9qcn1zszLyLyn2kXPjRRhahDB5SiYFIM3gCJFQ57yta1xMzIBcWWp/XeLPlAd w8K3JjmsbVBxdFYDl8uoJwHyy0s2sKGXvCVns3+0+LQfYvGTPxq5MnoQc0c8/DZuoYRg MERfdRn4TpYOEG4NelXqYhw8pj/zTHmaGd3i6MLsHh9K/us+80PoJ50Mu+qxCrOgAV2W rRmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:in-reply-to:references:date :message-id:mime-version:content-transfer-encoding; bh=1tMYn9vpjmnh71hpB6vzI1l4VR25ILn7MzcgYwA2+jk=; b=GtdbuyBSaWP2Pk6kKDusk7l6Hae4f0dQqFKVEC6X8IGwJZC1SEs+ntwC2ZYfSwZ2NO 2HDvtXra+EXoG4wMQ5Rz6AjCtpQqnSiF0f18iYABodzoUTbIk3fzWou1GL+O6A50oe8x 6cSwTgpVo+4pe2xxTEiwjuZ0wUa+UA/M1ax3m6nVFvYj5t86ACaINoxIzYoA4Zn5z/vB sHdQ6e09w6pD+t/ZYQl0DS8tE9DSXWazYoB6QWB/vhrcO9GjcONE9VnDkDfNEi7/swcw wS7BeI6I9kc9iA2tmAWasI8ykte+cwhtNQwGI5MvGqdB+CY97JJJpLN9gVS8u7lvel9+ 6myQ== X-Gm-Message-State: ANhLgQ1Dpouck78bFQggz2xID8Ja1NEzmBxm0VWJT1nZN0N2qfzhhM9R oZ9Du82qP/8gUgEou6uZ3q99cy/i X-Google-Smtp-Source: ADFU+vucA317DB+Y8yc3JE4PSjPbTDhCk5bJy86pTnE4nhKarXy9D7EV90Lb80cQBV0cy0+8vxIWzg== X-Received: by 2002:adf:d846:: with SMTP id k6mr21839191wrl.268.1585685432787; Tue, 31 Mar 2020 13:10:32 -0700 (PDT) Received: from guixSD ([95.237.164.204]) by smtp.gmail.com with ESMTPSA id h10sm29252192wrq.33.2020.03.31.13.10.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Mar 2020 13:10:32 -0700 (PDT) From: =?utf-8?Q?Nicol=C3=B2?= Balzarotti To: Brice Waegeneire , 40274@debbugs.gnu.org Subject: Re: [bug#40274] [PATCH] gnu: Add kernel-module-loader-service. In-Reply-To: <20200328135908.2540-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> Date: Tue, 31 Mar 2020 22:10:30 +0200 Message-ID: <87ftdoe155.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, I found a typo /usefull/useful/ Nicol=C3=B2 Brice Waegeneire writes: > * doc/guix.texi (Linux Services): Add a new subsection and document the > new service and its configuration. > * gnu/services/linux.scm (kernel-module-loader-service): New procedure. > (kernel-module-loader-service-type, kernel-module-loader-configuration): > New types. > --- > > This patch is related to the following thread: > https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00381.html > > doc/guix.texi | 48 ++++++++++++++++++++++++++++++++++ > gnu/services/linux.scm | 58 +++++++++++++++++++++++++++++++++++++++++- > 2 files changed, 105 insertions(+), 1 deletion(-) > > diff --git a/doc/guix.texi b/doc/guix.texi > index 77a4b8ed71..a297ec249f 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -75,6 +75,7 @@ Copyright @copyright{} 2020 Wiktor =C5=BBelazny@* > Copyright @copyright{} 2020 Damien Cassou@* > Copyright @copyright{} 2020 Jakub K=C4=85dzio=C5=82ka@* > Copyright @copyright{} 2020 Jack Hill@* > +Copyright @copyright{} 2020 Brice Waegeneire@* >=20=20 > Permission is granted to copy, distribute and/or modify this document > under the terms of the GNU Free Documentation License, Version 1.3 or > @@ -25382,6 +25383,53 @@ notifications. > @end table > @end deftp >=20=20 > +@cindex modprobe > +@cindex kernel module loader > +@subsubsection Kernel Module Loader Service > + > +The @code{kernel-module-loader-service} provides a service to load > +kernel modules at boot. This is especially usefull for modules that > +don't autoload and need to be manually loaded, like it's the case with > +@code{ddcci} for example. > + > +@deffn {Scheme Procedure} kernel-module-loader-service @var{modules} > +Return a service that run @command{modprobe} with arguments > +@var{modules} at boot. For example loading the drivers provided by > +@code{ddci-driver-linux} can be done as follow: > + > +@lisp > +(use-modules (gnu)) > +(use-package-modules linux) > +(use-service-modules linux) > +(operating-system > + ... > + (services (cons* (kernel-module-loader-service > + '("ddcci""ddcci_backlight")) > + %base-services)) > + (kernel-loadable-modules (list ddcci-driver-linux))) > +@end lisp > +@end defvr > + > +@deffn {Scheme Variable} kernel-module-loader-service-type > +The service type for loading kernel modules, that can't autoload, at > +boot, @command{modprobe}, on. Its value must be a > +@code{kernel-module-loader-configuration} object, described below. > + > +@deftp {Data Type} kernel-module-loader-configuration > +The data type representing the configuration of @command{sysctl}. > + > +@deftp {Data Type} kernel-module-loader-configuration > +This is the configuration record for the > +@code{kernel-module-loader-service-type}. > + > +@table @asis > +@item @code{modprobe} (default: @code{(file-append kmod "/bin/modprobe"}) > +The @command{modprobe} executable to use. > + > +@item @code{modules} (default: @code{'()}) > +A list specifying the modules to load. > +@end table > +@end deftp >=20=20 > @node Miscellaneous Services > @subsection Miscellaneous Services > diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm > index caa0326c31..99ab4a3329 100644 > --- a/gnu/services/linux.scm > +++ b/gnu/services/linux.scm > @@ -1,5 +1,6 @@ > ;;; GNU Guix --- Functional package management for GNU > ;;; Copyright =C2=A9 2020 Maxim Cournoyer > +;;; Copyright =C2=A9 2020 Brice Waegeneire > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -37,7 +38,14 @@ > earlyoom-configuration-ignore-positive-oom-score-adj? > earlyoom-configuration-show-debug-messages? > earlyoom-configuration-send-notification-command > - earlyoom-service-type)) > + earlyoom-service-type > + > + kernel-module-loader-configuration > + kernel-module-loader-configuration? > + kernel-module-loader-configuration-modprobe > + kernel-module-loader-configuration-modules > + kernel-module-loader-service-type > + kernel-module-loader-service)) >=20=20 > > ;;; > @@ -123,3 +131,51 @@ representation." > (list (service-extension shepherd-root-service-type > (compose list earlyoom-shepherd-service)))) > (description "Run @command{earlyoom}, the Early OOM daemon."))) > + > +;;; > +;;; Kernel module loader. > +;;; > + > +(define-record-type* > + kernel-module-loader-configuration make-kernel-module-loader-configura= tion > + kernel-module-loader-configuration? > + (modprobe kernel-module-loader-configuration-modprobe ; path of the 'm= odprobe' command > + (default (file-append kmod "/bin/modprobe"))) > + (modules kernel-module-loader-configuration-modules ; list of strings > + (default '()))) > + > +(define kernel-module-loader-shepherd-service > + (match-lambda > + (($ modprobe modules) > + (list > + (shepherd-service > + (documentation "Load kernel modules.") > + (provision '(kernel-module-loader)) > + (respawn? #f) > + (one-shot? #t) > + (start > + #~(lambda _ > + (zero? (system* #$modprobe #$@modules))))))))) > + > +(define kernel-module-loader-service-type > + (service-type > + (name 'kernel-module-loader) > + (description "Load kernel modules.") > + (extensions > + (list > + (service-extension shepherd-root-service-type > + kernel-module-loader-shepherd-service))) > + (compose concatenate) > + (extend (lambda (config modules) > + (kernel-module-loader-configuration > + (inherit config) > + (modules (append > + (kernel-module-loader-configuration-modules conf= ig) > + modules))))) > + (default-value (kernel-module-loader-configuration)))) > + > +(define* (kernel-module-loader-service modules) > + "Return a service that loads kernel MODULES." > + (service kernel-module-loader-service-type > + (kernel-module-loader-configuration > + (modules modules)))) > --=20 > 2.25.1 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 31 16:23:53 2020 Received: (at submit) by debbugs.gnu.org; 31 Mar 2020 20:23:53 +0000 Received: from localhost ([127.0.0.1]:37083 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJNQO-0002KQ-Hu for submit@debbugs.gnu.org; Tue, 31 Mar 2020 16:23:53 -0400 Received: from lists.gnu.org ([209.51.188.17]:54580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJNQM-0002KJ-LL for submit@debbugs.gnu.org; Tue, 31 Mar 2020 16:23:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39687) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJNQK-0007jW-Q1 for guix-patches@gnu.org; Tue, 31 Mar 2020 16:23:50 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJNQI-0003t9-A7 for guix-patches@gnu.org; Tue, 31 Mar 2020 16:23:48 -0400 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:56507) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jJNQI-0003pV-0K for guix-patches@gnu.org; Tue, 31 Mar 2020 16:23:46 -0400 X-Originating-IP: 78.237.113.178 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 3DC9A40008 for ; Tue, 31 Mar 2020 20:23:43 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v4] gnu: Add kernel-module-loader-service. Date: Tue, 31 Mar 2020 22:23:40 +0200 Message-Id: <20200331202340.10054-1-brice@waegenei.re> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200328135908.2540-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.194 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Linux Services): Add a new subsection and document the new service and its configuration. * gnu/services/linux.scm (kernel-module-loader-service): New procedure. (kernel-module-loader-service-type, kernel-module-loader-configuration): New types. * gnu/tests/linux-modules.scm (module-loader-program): Procedure removed. (modules-loaded?-program): New procedure. (run-loadable-kernel-modules-test): 'module-loader-program' procedure replaced by the new one. New format for last arguments [os]: Use 'kernel-module-loader-service'. (%test-loadable-kernel-modules-0, %test-loadable-kernel-modules-1, %test-loadable-kernel-modules-2): Use the new argument format. --- Fix typo in doc/guix.texi. doc/guix.texi | 54 ++++++++++++++++++++++++++++++++ gnu/services/linux.scm | 61 ++++++++++++++++++++++++++++++++++++- gnu/tests/linux-modules.scm | 45 ++++++++++++++++----------- 3 files changed, 142 insertions(+), 18 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 77a4b8ed71..125726a316 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -75,6 +75,7 @@ Copyright @copyright{} 2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* +Copyright @copyright{} 2020 Brice Waegeneire@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -25382,6 +25383,59 @@ notifications. @end table @end deftp +@cindex modprobe +@cindex kernel module loader +@subsubsection Kernel Module Loader Service + +The @code{kernel-module-loader-service} provides a service to load +kernel modules at boot. This is especially useful for modules that +don't autoload and need to be manually loaded, like it's the case with +@code{ddcci} for example. + +@deffn {Scheme Procedure} kernel-module-loader-service @var{modules} +Return a service that run @command{modprobe} with arguments +@var{modules} at boot. For example loading the drivers provided by +@code{ddci-driver-linux} with @code{ddcci} in debugging mode can be done +as follow: + +@lisp +(use-modules (gnu)) +(use-package-modules linux) +(use-service-modules linux) +(operating-system + ... + (services (cons* (kernel-module-loader-service + '(("ddcci" "dyndbg") + ("ddcci_backlight"))) + %base-services)) + (kernel-loadable-modules (list ddcci-driver-linux))) +@end lisp +@end deffn + +@deffn {Scheme Variable} kernel-module-loader-service-type +The service type for loading kernel modules at boot with +@command{modprobe}, for module that can't autoload. Its value must be a +@code{kernel-module-loader-configuration} object, described below. +@end deffn + +@deftp {Data Type} kernel-module-loader-configuration +The data type representing the modules to be loaded by +@command{modprobe}. +@end deftp + +@deftp {Data Type} kernel-module-loader-configuration +This is the configuration record for the +@code{kernel-module-loader-service-type}. + +@table @asis +@item @code{modprobe} (default: @code{(file-append kmod "/bin/modprobe"}) +The @command{modprobe} executable to use. + +@item @code{modules} (default: @code{'()}) +A list of list of strings specifying the modules to load with their +optional parameters. +@end table +@end deftp @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..da71b275f1 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +38,14 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-configuration + kernel-module-loader-configuration? + kernel-module-loader-configuration-modprobe + kernel-module-loader-configuration-modules + kernel-module-loader-service-type + kernel-module-loader-service)) ;;; @@ -123,3 +131,54 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + +;;; +;;; Kernel module loader. +;;; + +(define-record-type* + kernel-module-loader-configuration make-kernel-module-loader-configuration + kernel-module-loader-configuration? + (modprobe kernel-module-loader-configuration-modprobe ; path of the 'modprobe' command + (default (file-append kmod "/bin/modprobe"))) + (modules kernel-module-loader-configuration-modules ; list of lists of strings + (default '()))) + +(define kernel-module-loader-shepherd-service + (match-lambda + (($ modprobe modules) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (respawn? #f) + (one-shot? #t) + (start + #~(lambda _ + (and-map (lambda (module-with-parameters) + (zero? (apply system* #$modprobe "--" + module-with-parameters))) + '#$modules)))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list + (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend (lambda (config modules) + (kernel-module-loader-configuration + (inherit config) + (modules (append + (kernel-module-loader-configuration-modules config) + modules))))) + (default-value (kernel-module-loader-configuration)))) + +(define* (kernel-module-loader-service modules) + "Return a service that loads kernel MODULES." + (service kernel-module-loader-service-type + (kernel-module-loader-configuration + (modules modules)))) diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 39e11587c6..7b820a1269 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze ;;; Copyright © 2020 Danny Milosavljevic +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,7 @@ (define-module (gnu tests linux-modules) #:use-module (gnu packages linux) + #:use-module (gnu services linux) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) @@ -37,25 +39,31 @@ ;;; ;;; Code: -(define* (module-loader-program os modules) - "Return an executable store item that, upon being evaluated, will dry-run -load MODULES." +(define* (modules-loaded?-program os modules) + "Return an executable store item that, upon being evaluated, will verify +that MODULES are actually loaded." (program-file "load-kernel-modules.scm" - (with-imported-modules (source-module-closure '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (for-each (lambda (module) - (invoke (string-append #$kmod "/bin/modprobe") "-n" "--" - module)) - '#$modules))))) + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 popen)) + (let* ((port (open-input-pipe (string-append #$kmod "/bin/lsmod"))) + (output (read-string port)) + (status (close-pipe port))) + (and-map (lambda (module) (string-contains output module)) + '#$modules))))) -(define* (run-loadable-kernel-modules-test module-packages module-names) - "Run a test of an OS having MODULE-PACKAGES, and modprobe MODULE-NAMES." +(define* (run-loadable-kernel-modules-test module-packages + modules-with-parameters) + "Run a test of an OS having MODULE-PACKAGES, and verify that +MODULES-WITH-PARAMETERS are loaded in memory." (define os (marionette-operating-system (operating-system (inherit (simple-operating-system)) + (services (cons (kernel-module-loader-service modules-with-parameters) + (operating-system-user-services + (simple-operating-system)))) (kernel-loadable-modules module-packages)) #:imported-modules '((guix combinators)))) (define vm (virtual-machine os)) @@ -75,7 +83,9 @@ load MODULES." marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - (gexp->derivation "loadable-kernel-modules" (test (module-loader-program os module-names)))) + (gexp->derivation + "loadable-kernel-modules" + (test (modules-loaded?-program os (map car modules-with-parameters))))) (define %test-loadable-kernel-modules-0 (system-test @@ -88,16 +98,17 @@ with no extra modules.") (system-test (name "loadable-kernel-modules-1") (description "Tests loadable kernel modules facility of -with one extra module.") +with one extra module with some parameters.") (value (run-loadable-kernel-modules-test (list ddcci-driver-linux) - '("ddcci"))))) + '(("ddcci" "dyndbg" "delay:120")))))) (define %test-loadable-kernel-modules-2 (system-test (name "loadable-kernel-modules-2") (description "Tests loadable kernel modules facility of -with two extra modules.") +with two extra modules without any parameters.") (value (run-loadable-kernel-modules-test (list acpi-call-linux-module ddcci-driver-linux) - '("acpi_call" "ddcci"))))) + '(("acpi_call") + ("ddcci")))))) -- 2.25.1 From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 31 16:25:16 2020 Received: (at 40274) by debbugs.gnu.org; 31 Mar 2020 20:25:16 +0000 Received: from localhost ([127.0.0.1]:37087 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJNRk-0002PE-7a for submit@debbugs.gnu.org; Tue, 31 Mar 2020 16:25:16 -0400 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:39301) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJNRi-0002Oi-De for 40274@debbugs.gnu.org; Tue, 31 Mar 2020 16:25:14 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay8-d.mail.gandi.net (Postfix) with ESMTPA id A93E01BF204; Tue, 31 Mar 2020 20:25:07 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Tue, 31 Mar 2020 20:25:07 +0000 From: Brice Waegeneire To: =?UTF-8?Q?Nicol=C3=B2_Balzarotti?= Subject: Re: [bug#40274] [PATCH] gnu: Add kernel-module-loader-service. In-Reply-To: <87ftdoe155.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> References: <20200328135908.2540-1-brice@waegenei.re> <87ftdoe155.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> Message-ID: <9ad47bb94ed179ae6fec73db28c7debb@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org, Guix-patches X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello, On 2020-03-31 20:10, Nicolò Balzarotti wrote: > Hi, I found a typo > > /usefull/useful/ > > Nicolò Thank you Nicolò I was missing flyspell in texinfo-mode, it's fixed in v4. - Brice From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 01 09:30:34 2020 Received: (at submit) by debbugs.gnu.org; 1 Apr 2020 13:30:34 +0000 Received: from localhost ([127.0.0.1]:37608 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJdRx-000136-QY for submit@debbugs.gnu.org; Wed, 01 Apr 2020 09:30:34 -0400 Received: from lists.gnu.org ([209.51.188.17]:48852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJdRv-00012u-U4 for submit@debbugs.gnu.org; Wed, 01 Apr 2020 09:30:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39215) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJdRu-0005xZ-KW for guix-patches@gnu.org; Wed, 01 Apr 2020 09:30:31 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJdRt-0007KA-Di for guix-patches@gnu.org; Wed, 01 Apr 2020 09:30:30 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:44118) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jJdRt-0007Im-55 for guix-patches@gnu.org; Wed, 01 Apr 2020 09:30:29 -0400 Received: by mail-wr1-x441.google.com with SMTP id m17so30525294wrw.11 for ; Wed, 01 Apr 2020 06:30:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version; bh=9xOTmuet93bTWiU90PM/iDtBLFdz0GrZbzbfLnjk3Lc=; b=M35NELGDSP8IVO5b3q6jDFck+NFsKQmaE0rJwlI1DGIooohjw+EVjjNz4t6kyPmx9p GXlSRnp0tOM1MeCaZZRtACjWPWC3duvRVvL7dS25VaoI0LoMD4c8UA2pLnTJaTiEawza cz1aTMU08y/PtCcwjO2KrxaNRcyI3fmPL6YumNQAM7rHblUDQKiFR+5A4dXcvFdAHDfj s1J8qwih6FT8q4Rn3l443MgfNvszVlsvlgJO9Id9vQfdHp2ZpajrWlSiI7aqiMxxb6jG bR6kPjlpQ678HVgCjE6OnIW+T3O8bdJBFt48O4NcBFCVF5OAjPmcTUWoJPR9GDgHRRRP f5Pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version; bh=9xOTmuet93bTWiU90PM/iDtBLFdz0GrZbzbfLnjk3Lc=; b=MYPZyAn5GAsiihVIrj/ehTVSz6v6RiJr9dS+d+hPTarrjsDGljmoy34mm1E0H8wtjs LWZs7iWE9emzMLT0nTEvd5T/PBdJKaloyLb1A5xAiQnhLcimXLvAzCI//O5A0DE3Zt6q QU41oYGbSz7GV82llXv7SMVq80c+W611OJYsja7D251oRQxk3C66NN1Zl0Y1sQuQ7TQk DdbP4K+mH/Jrx4470a52OuRx+0SkmxNV/pxAj/RNecug2oQ+MN7+beY/G3O6Fta2bNVg NRZikbD3qzoPq7diGUDoCqq0t+JNbraNqdWD6K8ktK/6QcgGTaFLnBUKg12iItmwUdJj E1TQ== X-Gm-Message-State: ANhLgQ0JAgFyCBv7W2PLozN+vfD/EFC/o344j6rhCycbpvMdBP4L0roP FjU/mt1YrtOO/qiUPjUdAs/WECv5HsQ= X-Google-Smtp-Source: ADFU+vs4WaTQNbr7SNuIP3fgFh8e0f/86uZ+nTplAeydsyoHIy6BXjVc2uQCwP6mHvQCUZglqY+n0Q== X-Received: by 2002:a5d:5447:: with SMTP id w7mr25696112wrv.299.1585747827796; Wed, 01 Apr 2020 06:30:27 -0700 (PDT) Received: from meru ([2a01:cb18:832e:5f00:75c3:1709:597b:7112]) by smtp.gmail.com with ESMTPSA id u13sm2574742wmm.32.2020.04.01.06.30.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2020 06:30:26 -0700 (PDT) References: <20200328135908.2540-1-brice@waegenei.re> <20200331202340.10054-1-brice@waegenei.re> User-agent: mu4e 1.2.0; emacs 26.3 From: Mathieu Othacehe To: guix-patches@gnu.org Subject: Re: [bug#40274] [PATCH v4] gnu: Add kernel-module-loader-service. In-reply-to: <20200331202340.10054-1-brice@waegenei.re> Date: Wed, 01 Apr 2020 15:30:25 +0200 Message-ID: <87k12zcozy.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: submit Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Hello Brice, > +@deffn {Scheme Procedure} kernel-module-loader-service @var{modules} > +Return a service that run @command{modprobe} with arguments ^ runs > +@var{modules} at boot. For example loading the drivers provided by ^ What's modules? > +@deffn {Scheme Variable} kernel-module-loader-service-type > +The service type for loading kernel modules at boot with > +@command{modprobe}, for module that can't autoload. Its value must be a ^ modules You can add a separator here, C-q C-l with Emacs :) > +;;; > +;;; Kernel module loader. > +;;; > + (modprobe kernel-module-loader-configuration-modprobe ; path of the 'modprobe' command > + (default (file-append kmod "/bin/modprobe"))) > + (modules kernel-module-loader-configuration-modules ; list of lists of strings > + (default '()))) Those lines are above the 78 columns limit. > + > +(define kernel-module-loader-shepherd-service > + (match-lambda > + (($ modprobe modules) > + (list > + (shepherd-service > + (documentation "Load kernel modules.") > + (provision '(kernel-module-loader)) > + (respawn? #f) > + (one-shot? #t) > + (start > + #~(lambda _ > + (and-map (lambda (module-with-parameters) > + (zero? (apply system* #$modprobe "--" > + module-with-parameters))) > + '#$modules)))))))) I wonder if it would make sense to rmmod the modules on service stop? Probably not. > (value (run-loadable-kernel-modules-test > (list acpi-call-linux-module ddcci-driver-linux) > - '("acpi_call" "ddcci"))))) > + '(("acpi_call") > + ("ddcci")))))) When using multiple modules without any configuration, I find the notation '(("module-a") ("module-b")) a bit unclear. Maybe we could add a special case handling '("module-a" "module-b") as two kernel modules taking no arguments. Or we could define a record with two fields: module-name and arguments. Not sure what's better. Anyway, this looks good to me :). But let's wait for Danny opinion maybe. Thanks, Mathieu From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 01 10:39:07 2020 Received: (at 40274) by debbugs.gnu.org; 1 Apr 2020 14:39:07 +0000 Received: from localhost ([127.0.0.1]:38555 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJeWI-0007Bf-Rl for submit@debbugs.gnu.org; Wed, 01 Apr 2020 10:39:07 -0400 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:39255) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJeWG-0007Au-Qa for 40274@debbugs.gnu.org; Wed, 01 Apr 2020 10:39:05 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay8-d.mail.gandi.net (Postfix) with ESMTPA id 15A7B1BF219; Wed, 1 Apr 2020 14:38:57 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Wed, 01 Apr 2020 14:38:57 +0000 From: Brice Waegeneire To: Mathieu Othacehe Subject: Re: [bug#40274] [PATCH v4] gnu: Add kernel-module-loader-service. In-Reply-To: <87k12zcozy.fsf@gmail.com> References: <20200328135908.2540-1-brice@waegenei.re> <20200331202340.10054-1-brice@waegenei.re> <87k12zcozy.fsf@gmail.com> Message-ID: <58b435078b6055874686c2da7d411eaa@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org, Guix-patches X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello Mathieu, On 2020-04-01 13:30, Mathieu Othacehe wrote: > You can add a separator here, C-q C-l with Emacs :) I never used pagination in Emacs, maybe I should start using it. >> +(define kernel-module-loader-shepherd-service >> + (match-lambda >> + (($ modprobe modules) >> + (list >> + (shepherd-service >> + (documentation "Load kernel modules.") >> + (provision '(kernel-module-loader)) >> + (respawn? #f) >> + (one-shot? #t) >> + (start >> + #~(lambda _ >> + (and-map (lambda (module-with-parameters) >> + (zero? (apply system* #$modprobe "--" >> + module-with-parameters))) >> + '#$modules)))))))) > > I wonder if it would make sense to rmmod the modules on service > stop? Probably not. This is a one-shot service so no. >> (value (run-loadable-kernel-modules-test >> (list acpi-call-linux-module ddcci-driver-linux) >> - '("acpi_call" "ddcci"))))) >> + '(("acpi_call") >> + ("ddcci")))))) > > When using multiple modules without any configuration, I find the > notation '(("module-a") ("module-b")) a bit unclear. Maybe we could add > a special case handling '("module-a" "module-b") as two kernel modules > taking no arguments. > > Or we could define a record with two fields: module-name and arguments. > Not sure what's better. I asked about it on IRC before starting v2 but nobody responded so I went on with this “list of lists of string” implementation. I'll be happy to use a better format, the special case look nice but maybe confusing for the user. I have fixed the typo you reported but I'll wait for further suggestion about the format before sending the new version. - Brice From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 01 15:35:04 2020 Received: (at 40274) by debbugs.gnu.org; 1 Apr 2020 19:35:04 +0000 Received: from localhost ([127.0.0.1]:38695 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJj8i-000679-07 for submit@debbugs.gnu.org; Wed, 01 Apr 2020 15:35:04 -0400 Received: from pelzflorian.de ([5.45.111.108]:44070 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJj8f-00066Z-FE for 40274@debbugs.gnu.org; Wed, 01 Apr 2020 15:35:02 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id D32F0360566; Wed, 1 Apr 2020 21:34:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1585769699; bh=QDmaB+GSKAZlGE+vC6Dgez2syiHJoToV4ot+9XCvzVs=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=WDGxpKGZM40S4FgqzWfM48mHrZ246lZEFR/9eMQL6QSvtf6+5fWgx772zDyeLVm9f OYM8phiXC0Y/2WdeeYgffd8/DUoYJ2Z0BGFkY2tF8QPz9PVOWDQ52Pj7ATIB4Ww6hp 7jrPNHBTxs8DsOu3xWwAQmP9iQnHHuIC23rZas8U= Date: Wed, 1 Apr 2020 21:34:58 +0200 From: "pelzflorian (Florian Pelz)" To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v4] gnu: Add kernel-module-loader-service. Message-ID: <20200401193458.evg46ygamtniby7k@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200331202340.10054-1-brice@waegenei.re> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="qkqakf7gtasedsfi" Content-Disposition: inline In-Reply-To: <20200331202340.10054-1-brice@waegenei.re> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --qkqakf7gtasedsfi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 --qkqakf7gtasedsfi Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="uvesafb-fails.patch" 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. --qkqakf7gtasedsfi-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 01 15:44:03 2020 Received: (at 40274) by debbugs.gnu.org; 1 Apr 2020 19:44:03 +0000 Received: from localhost ([127.0.0.1]:38699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJjHO-0006bO-U3 for submit@debbugs.gnu.org; Wed, 01 Apr 2020 15:44:03 -0400 Received: from pelzflorian.de ([5.45.111.108]:44082 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJjHN-0006an-3W for 40274@debbugs.gnu.org; Wed, 01 Apr 2020 15:44:01 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id BF249360566; Wed, 1 Apr 2020 21:43:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1585770239; bh=1RfKx1+iNyPwQ72KICC38SQGnrDDaT86mBX+vXR4gbY=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=wlJPdY+PuGNxMo3P4r/QoD9UStaiL8tiQxc1tmIaQmFILNBqR4Bfq9cadH4wOaqAV LCJ033KQAkUXYHLvom/Sy/W4hAvM8RoVdHLG1nSYTucRk3PA05RMC3P8NgDoMk/C5G hWtq+tES88LxISeBjPirTrPNL1MqIP8gLNFjYc6Q= Date: Wed, 1 Apr 2020 21:43:58 +0200 From: "pelzflorian (Florian Pelz)" To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v4] gnu: Add kernel-module-loader-service. Message-ID: <20200401194358.hamsw4q7but5jeon@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200331202340.10054-1-brice@waegenei.re> <20200401193458.evg46ygamtniby7k@pelzflorian.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200401193458.evg46ygamtniby7k@pelzflorian.localdomain> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Wed, Apr 01, 2020 at 09:34:58PM +0200, pelzflorian (Florian Pelz) wrote: > I believe I pass parameters wrongly. I attach how I try to use your > kernel-module-loader. Of course my quoting was wrong. Nonetheless could you add logging/errors if possible? From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 01 15:48:30 2020 Received: (at 40274) by debbugs.gnu.org; 1 Apr 2020 19:48:30 +0000 Received: from localhost ([127.0.0.1]:38703 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJjLi-0006rE-FB for submit@debbugs.gnu.org; Wed, 01 Apr 2020 15:48:30 -0400 Received: from pelzflorian.de ([5.45.111.108]:44092 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJjLg-0006qy-FL for 40274@debbugs.gnu.org; Wed, 01 Apr 2020 15:48:28 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id 90CD9360566; Wed, 1 Apr 2020 21:48:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1585770507; bh=9U1AzCwUTzaEZVpamY0qNetxVKbf84X7/Ki9mVWTAgg=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=MITBIyFm9AQ0DvlpC65iLHNIwIo/3KpBvFTBd9Fc50D9NifXs0YAHE7KDjyJ+RAuJ DYj8Exi6K0Gwq8QW7hvtCUc7wwSOBLVUJY4YebMiyAXENJvU7VNraxcMppYhS3mvW4 g0tA+JsGKu1gVVS0+B9Df/Pz3eJbAIdjj/erBfXE= Date: Wed, 1 Apr 2020 21:48:26 +0200 From: "pelzflorian (Florian Pelz)" To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v4] gnu: Add kernel-module-loader-service. Message-ID: <20200401194826.uaarkyndzfbi3kqc@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200331202340.10054-1-brice@waegenei.re> <20200401193458.evg46ygamtniby7k@pelzflorian.localdomain> <20200401194358.hamsw4q7but5jeon@pelzflorian.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200401194358.hamsw4q7but5jeon@pelzflorian.localdomain> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Wed, Apr 01, 2020 at 09:34:58PM +0200, pelzflorian (Florian Pelz) wrote: > I believe I pass parameters wrongly. I attach how I try to use your > kernel-module-loader. Also I cannot use gexps in module parameters. Regards, Florian From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 02 08:37:27 2020 Received: (at submit) by debbugs.gnu.org; 2 Apr 2020 12:37:27 +0000 Received: from localhost ([127.0.0.1]:39345 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJz67-0007ml-5X for submit@debbugs.gnu.org; Thu, 02 Apr 2020 08:37:27 -0400 Received: from lists.gnu.org ([209.51.188.17]:42941) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJz64-0007mZ-TI for submit@debbugs.gnu.org; Thu, 02 Apr 2020 08:37:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60709) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJz63-00027l-1Z for guix-patches@gnu.org; Thu, 02 Apr 2020 08:37:24 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJz60-0004y2-Kq for guix-patches@gnu.org; Thu, 02 Apr 2020 08:37:22 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:35305) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jJz60-0004wv-Bb for guix-patches@gnu.org; Thu, 02 Apr 2020 08:37:20 -0400 X-Originating-IP: 78.237.113.178 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 5196C1C0015 for ; Thu, 2 Apr 2020 12:37:15 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v5] gnu: Add kernel-module-loader-service. Date: Thu, 2 Apr 2020 14:37:12 +0200 Message-Id: <20200402123712.338-1-brice@waegenei.re> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200328135908.2540-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.197 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Linux Services): Add a new subsection and document the new service and its configuration. * gnu/services/linux.scm (kernel-module-loader-service): New procedure. (kernel-module-loader-service-type, kernel-module-loader-configuration): New types. * gnu/tests/linux-modules.scm (module-loader-program): Procedure removed. (modules-loaded?-program): New procedure. (run-loadable-kernel-modules-test): 'module-loader-program' procedure replaced by the new one. New format for last arguments [os]: Use 'kernel-module-loader-service'. (%test-loadable-kernel-modules-0, %test-loadable-kernel-modules-1, %test-loadable-kernel-modules-2): Use the new argument format. --- In this version the typos reported by Mathieu have been fixed and if modprobe fail the error is logged by shepherd. doc/guix.texi | 53 +++++++++++++++++++++++++++ gnu/services/linux.scm | 72 ++++++++++++++++++++++++++++++++++++- gnu/tests/linux-modules.scm | 45 ++++++++++++++--------- 3 files changed, 152 insertions(+), 18 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8cb85fe62c..ea1d363efc 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -76,6 +76,7 @@ Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* +Copyright @copyright{} 2020 Brice Waegeneire@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -25383,6 +25384,58 @@ notifications. @end table @end deftp +@cindex modprobe +@cindex kernel module loader +@subsubsection Kernel Module Loader Service + +The @code{kernel-module-loader-service} provides a service to load +kernel modules at boot. This is especially useful for modules that +don't autoload and need to be manually loaded, like it's the case with +@code{ddcci} for example. + +@deffn {Scheme Procedure} kernel-module-loader-service @var{modules} +Return a service that runs @command{modprobe} for each given module. +For example loading the drivers provided by @code{ddci-driver-linux} +with @code{ddcci} in debugging mode can be done as follow: + +@lisp +(use-modules (gnu)) +(use-package-modules linux) +(use-service-modules linux) +(operating-system + ... + (services (cons* (kernel-module-loader-service + '(("ddcci" "dyndbg") + ("ddcci_backlight"))) + %base-services)) + (kernel-loadable-modules (list ddcci-driver-linux))) +@end lisp +@end deffn + +@deffn {Scheme Variable} kernel-module-loader-service-type +The service type for loading kernel modules at boot with +@command{modprobe}, for modules that can't autoload. Its value must be +a @code{kernel-module-loader-configuration} object, described below. +@end deffn + +@deftp {Data Type} kernel-module-loader-configuration +The data type representing the modules to be loaded by +@command{modprobe}. +@end deftp + +@deftp {Data Type} kernel-module-loader-configuration +This is the configuration record for the +@code{kernel-module-loader-service-type}. + +@table @asis +@item @code{modprobe} (default: @code{(file-append kmod "/bin/modprobe"}) +The @command{modprobe} executable to use. + +@item @code{modules} (default: @code{'()}) +A list of list of strings specifying the modules to load with their +optional parameters. +@end table +@end deftp @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..e3942f693d 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (gnu packages linux) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:export (earlyoom-configuration earlyoom-configuration? @@ -37,7 +40,14 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-configuration + kernel-module-loader-configuration? + kernel-module-loader-configuration-modprobe + kernel-module-loader-configuration-modules + kernel-module-loader-service-type + kernel-module-loader-service)) ;;; @@ -123,3 +133,63 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + + +;;; +;;; Kernel module loader. +;;; + +(define-record-type* + kernel-module-loader-configuration make-kernel-module-loader-configuration + kernel-module-loader-configuration? + ;; path of the 'modprobe' command + (modprobe kernel-module-loader-configuration-modprobe + (default (file-append kmod "/bin/modprobe"))) + ;; list of lists of strings + (modules kernel-module-loader-configuration-modules + (default '()))) + +(define kernel-module-loader-shepherd-service + (match-lambda + (($ modprobe kernel-modules) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (respawn? #f) + (one-shot? #t) + (modules `((srfi srfi-34) + (srfi srfi-35) + ,@%default-modules)) + (start + #~(lambda _ + (guard (c ((message-condition? c) + (display (condition-message c)) + #f)) + (map (lambda (module-with-parameters) + (apply invoke/quiet #$modprobe "--" + module-with-parameters)) + '#$kernel-modules))))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list + (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend (lambda (config modules) + (kernel-module-loader-configuration + (inherit config) + (modules (append + (kernel-module-loader-configuration-modules config) + modules))))) + (default-value (kernel-module-loader-configuration)))) + +(define* (kernel-module-loader-service modules) + "Return a service that loads kernel MODULES." + (service kernel-module-loader-service-type + (kernel-module-loader-configuration + (modules modules)))) diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 39e11587c6..2532850d34 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze ;;; Copyright © 2020 Danny Milosavljevic +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,7 @@ (define-module (gnu tests linux-modules) #:use-module (gnu packages linux) + #:use-module (gnu services linux) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) @@ -37,25 +39,31 @@ ;;; ;;; Code: -(define* (module-loader-program os modules) - "Return an executable store item that, upon being evaluated, will dry-run -load MODULES." +(define* (modules-loaded?-program os modules) + "Return an executable store item that, upon being evaluated, will verify +that MODULES are actually loaded." (program-file "load-kernel-modules.scm" - (with-imported-modules (source-module-closure '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (for-each (lambda (module) - (invoke (string-append #$kmod "/bin/modprobe") "-n" "--" - module)) - '#$modules))))) + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 popen)) + (let* ((port (open-input-pipe (string-append #$kmod "/bin/lsmod"))) + (output (read-string port)) + (status (close-pipe port))) + (and-map (lambda (module) (string-contains output module)) + '#$modules))))) -(define* (run-loadable-kernel-modules-test module-packages module-names) - "Run a test of an OS having MODULE-PACKAGES, and modprobe MODULE-NAMES." +(define* (run-loadable-kernel-modules-test module-packages + modules-with-parameters) + "Run a test of an OS having MODULE-PACKAGES, and verify that +MODULES-WITH-PARAMETERS are loaded in memory." (define os (marionette-operating-system (operating-system (inherit (simple-operating-system)) + (services (cons (kernel-module-loader-service modules-with-parameters) + (operating-system-user-services + (simple-operating-system)))) (kernel-loadable-modules module-packages)) #:imported-modules '((guix combinators)))) (define vm (virtual-machine os)) @@ -75,7 +83,9 @@ load MODULES." marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - (gexp->derivation "loadable-kernel-modules" (test (module-loader-program os module-names)))) + (gexp->derivation + "loadable-kernel-modules" + (test (modules-loaded?-program os (map car modules-with-parameters))))) (define %test-loadable-kernel-modules-0 (system-test @@ -88,16 +98,17 @@ with no extra modules.") (system-test (name "loadable-kernel-modules-1") (description "Tests loadable kernel modules facility of -with one extra module.") +with one extra module with some parameters.") (value (run-loadable-kernel-modules-test (list ddcci-driver-linux) - '("ddcci"))))) + '(("ddcci" "dyndbg" "delay=120")))))) (define %test-loadable-kernel-modules-2 (system-test (name "loadable-kernel-modules-2") (description "Tests loadable kernel modules facility of -with two extra modules.") +with two extra modules without any parameters.") (value (run-loadable-kernel-modules-test (list acpi-call-linux-module ddcci-driver-linux) - '("acpi_call" "ddcci"))))) + '(("acpi_call") + ("ddcci")))))) -- 2.25.1 From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 02 08:40:10 2020 Received: (at 40274) by debbugs.gnu.org; 2 Apr 2020 12:40:10 +0000 Received: from localhost ([127.0.0.1]:39349 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJz8j-0007w9-Tw for submit@debbugs.gnu.org; Thu, 02 Apr 2020 08:40:10 -0400 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:44719) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJz8i-0007vK-5a for 40274@debbugs.gnu.org; Thu, 02 Apr 2020 08:40:09 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay8-d.mail.gandi.net (Postfix) with ESMTPA id 4976A1BF209; Thu, 2 Apr 2020 12:40:00 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Thu, 02 Apr 2020 12:40:00 +0000 From: Brice Waegeneire To: "pelzflorian (Florian Pelz)" Subject: Re: [bug#40274] [PATCH v4] gnu: Add kernel-module-loader-service. In-Reply-To: <20200401193458.evg46ygamtniby7k@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200331202340.10054-1-brice@waegenei.re> <20200401193458.evg46ygamtniby7k@pelzflorian.localdomain> Message-ID: <64e7eade2865209e84940a1cbca3313a@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello Florian, Thank you for trying out this new service. On 2020-04-01 19:34, pelzflorian (Florian Pelz) wrote: > 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). This a message saying it can't load that service, in this case because it's parameters weren't formatted correctly, this is not specific to this service that's how shepherd handle failing to load a service. Please open a new issue about it if you think (as I do) that shepherd should be more explicit when it fails to load a service. Regarding this service, logging has been implemented in v5; the output of modprobe will be logged if it fails, for example when trying to load an invalid kernel module like “foo”. - Brice From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 02 09:56:52 2020 Received: (at 40274) by debbugs.gnu.org; 2 Apr 2020 13:56:52 +0000 Received: from localhost ([127.0.0.1]:40301 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jK0Ky-0005tL-0s for submit@debbugs.gnu.org; Thu, 02 Apr 2020 09:56:52 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:48738) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jK0Kv-0005t6-Q4 for 40274@debbugs.gnu.org; Thu, 02 Apr 2020 09:56:50 -0400 Received: from localhost (80-110-126-163.cgn.dynamic.surfer.at [80.110.126.163]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 15A773367C23; Thu, 2 Apr 2020 15:56:48 +0200 (CEST) Date: Thu, 2 Apr 2020 15:56:40 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. Message-ID: <20200402155640.121e4879@scratchpost.org> In-Reply-To: <20200402123712.338-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/31tP6Te17+=uVqQ1L440PeC"; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: ludo@gnu.org, 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/31tP6Te17+=uVqQ1L440PeC Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi Brice, I wonder how common it is to pass arguments to the modules explicitly in no= rmal operation. I haven't done it often even in other distributions--and I'm a kernel hacke= r. See also https://linux.die.net/man/5/modprobe.d for an alternative. I'm not necessarily against doing it like you do it, but just want to bring= up the possibility of just omitting the functionality and let it be someone-else's-problem, possibly another guix service that prepares /etc/modprobe.d with module options and other things (aliases, installation= and removal invocations). That's also important because Linux tries to (lazy-)autoload modules whenev= er possible (via invoking modprobe). In that case, the argument handling would be inconsistent between if it was lazy-autoloaded compared to if it was loa= ded by your loader. (I even wonder if it were better for kernel-module-loader-service to read t= he modprobe to use from /proc/sys/kernel/modprobe in order to make the situati= ons a little more consistent) For example let's say the following happened: (1) Linux boots up. (2) Someone accesses some device so "modprobe foo" is invoked by Linux. (3) foo is loaded, gets options from /etc/modprobe.d (usually none). [Time passes, other stuff happens] (4) Your kernel-module-loader-service is started, invokes "modprobe foo x= =3D2". (5) x=3D2 is not passed to the Linux kernel module ever. I'm just saying maybe not invite this kind of trouble in the first place. I don't think it fits Guix's declarative configuration style to do that either. Also, when reconfiguring the Guix system, kernel-module-loader-service won't unload the kernel modules and thus also wouldn't load it with new options. Also, it could happen that two different guix services require the same mod= ule but with different options. That's an insane problem to have and I wouldn't try to support it. (I've reviewed your patch, otherwise OK!) --Sig_/31tP6Te17+=uVqQ1L440PeC Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6F7xgACgkQ5xo1VCww uqVSlAf/cXcL9VlmptSSYEBlNbKXibrRYJdMtw07amj16IrYtnX5oiLcqEm/jkWF N6Vl/uu1PZn/592Ifx2+2Dc7bJ3NMP1S7hvFy9b5/cQIz5nGxmf+CgDbHGdIKt76 wl4pfmGGzTE7qVdU9x+BBUFkU1Aq1qv0wMbAUJFqXecueKYb15SnH7+5aHCklBIn wqtQAq01NKzgPz0iONAohl0WXAlws9D+Ru+Kugo94Pt5Lzp8K+hecx7UPpWoh9pd 71GWgybbYIEvjlm5AijdbykGXL/wkJi7Y6VpbesfgH7fMpZGThUFqoW5z6Ej7lwl MZnb3knRZSgmeHt3P40zEN422HIIPQ== =R/Dn -----END PGP SIGNATURE----- --Sig_/31tP6Te17+=uVqQ1L440PeC-- From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 02 10:22:28 2020 Received: (at 40274) by debbugs.gnu.org; 2 Apr 2020 14:22:28 +0000 Received: from localhost ([127.0.0.1]:40334 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jK0jk-0007IM-Jz for submit@debbugs.gnu.org; Thu, 02 Apr 2020 10:22:28 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:42829) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jK0jj-0007Hw-FM for 40274@debbugs.gnu.org; Thu, 02 Apr 2020 10:22:28 -0400 Received: by mail-wr1-f68.google.com with SMTP id h15so4416303wrx.9 for <40274@debbugs.gnu.org>; Thu, 02 Apr 2020 07:22:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=A/HEYEQ26OTZT0b3yTuhaUDLoDiSYqDXjp49wHtJaYk=; b=LmHp5lVPkBGregVzgnvqT3W4y7AIy8CwD73rGRIHW2HUMx1TQ9tQkx3KVSmoEa1eX9 P4vhtwnXA+D6rxYMYiBaFNPltGP+bVvz9zq2OANIzK8ufo4C3YIuPqYUX1Tw9EPFdpgP q8fyatA32OORwM/RP5NVWr/epxsxWmDbsNYdoKFBMJpStWeAJtg43XbE8sn1TsFbyEBF XEAoa6WbSI6PW735rs3PXUd5ro533TtclleFFWNCrd8ZaH3URz/Qvi9M40wFV3hWm2RV FUX98Zd0wzjGKTZqh0ciQSjSsU4DC9wNY3Ee/ZxwQiovvVcX6+VyuDVg6wqHSFz6jaEK 3uWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=A/HEYEQ26OTZT0b3yTuhaUDLoDiSYqDXjp49wHtJaYk=; b=mf+8F8qZ+PO7zkWNqMBuJ8DNhFr3li3PNJKMwFM5o3xpJVmqa/N6wyyYHJR/9QOS5I S4vU08ppcxoERiGe+elcARhxzsSkfJ0jDQjxZHvBPTLmXapfIKn5g8AsTahNsaW3youL lCBanPdhLc/2ZHoQs/eD6u2+UiPNN8nwN/TtDEChcHpVteQ5eKgfIGOC1weBGJINkOiz j2VSy8ToNj3moL7CZeXVDIs3p90l+1W5+l5AhJDzcd6LhwtT4+aXoCeLy8LUlzH9y56A sDzP92xiJvRhM5w7VBP0X6So+Io1CTN+iuxJDToXGYrFpQJYWkJoV8GirqYVJKYSaSFi ChBg== X-Gm-Message-State: AGi0PuaOsvP47/l36M87RcuFvVV1Dmf7L/tP40J90gmWpFqngDVQiZXr 8sd1aVzG7pdajKFlzgkrUFhCofgpysY= X-Google-Smtp-Source: APiQypLVStY1UL9zE3XgvabzeA2FVepYuNdzZZnupInILuE2ONqVNOgNucy3nZaljqq0SmukYkNeyA== X-Received: by 2002:a5d:4091:: with SMTP id o17mr4029621wrp.254.1585837341455; Thu, 02 Apr 2020 07:22:21 -0700 (PDT) Received: from meru ([2a01:cb18:832e:5f00:e0:63cb:aa5f:58b0]) by smtp.gmail.com with ESMTPSA id p13sm7695003wru.3.2020.04.02.07.22.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2020 07:22:20 -0700 (PDT) From: Mathieu Othacehe To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> Date: Thu, 02 Apr 2020 16:22:19 +0200 In-Reply-To: <20200402123712.338-1-brice@waegenei.re> (Brice Waegeneire's message of "Thu, 2 Apr 2020 14:37:12 +0200") Message-ID: <87sghm0xyc.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Brice, Thanks for this new version. > + (guard (c ((message-condition? c) > + (display (condition-message c)) Maybe `(format (current-error-port) "~a~%" (condition-message c))' instead of display. Thanks, Mathieu From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 02 13:13:15 2020 Received: (at 40274) by debbugs.gnu.org; 2 Apr 2020 17:13:15 +0000 Received: from localhost ([127.0.0.1]:40686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jK3P1-000455-3c for submit@debbugs.gnu.org; Thu, 02 Apr 2020 13:13:15 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:51777) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jK3Oy-00044f-F6 for 40274@debbugs.gnu.org; Thu, 02 Apr 2020 13:13:13 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay5-d.mail.gandi.net (Postfix) with ESMTPA id C2F511C0004; Thu, 2 Apr 2020 17:13:05 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Thu, 02 Apr 2020 17:13:05 +0000 From: Brice Waegeneire To: Danny Milosavljevic Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. In-Reply-To: <20200402155640.121e4879@scratchpost.org> References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> <20200402155640.121e4879@scratchpost.org> Message-ID: <2b32956fc10fd3012388722e1b00ce21@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: ludo@gnu.org, 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 2020-04-02 13:56, Danny Milosavljevic wrote: > Hi Brice, > > I wonder how common it is to pass arguments to the modules explicitly > in normal > operation. > > I haven't done it often even in other distributions--and I'm a kernel > hacker. > > See also https://linux.die.net/man/5/modprobe.d for an alternative. > > I'm not necessarily against doing it like you do it, but just want to > bring up > the possibility of just omitting the functionality and let it be > someone-else's-problem, possibly another guix service that prepares > /etc/modprobe.d with module options and other things (aliases, > installation and > removal invocations). > > That's also important because Linux tries to (lazy-)autoload modules > whenever > possible (via invoking modprobe). In that case, the argument handling > would > be inconsistent between if it was lazy-autoloaded compared to if it was > loaded > by your loader. > > (I even wonder if it were better for kernel-module-loader-service to > read the > modprobe to use from /proc/sys/kernel/modprobe in order to make the > situations > a little more consistent) > > For example let's say the following happened: > > (1) Linux boots up. > (2) Someone accesses some device so "modprobe foo" is invoked by Linux. > (3) foo is loaded, gets options from /etc/modprobe.d (usually none). > [Time passes, other stuff happens] > (4) Your kernel-module-loader-service is started, invokes "modprobe foo > x=2". > (5) x=2 is not passed to the Linux kernel module ever. > > I'm just saying maybe not invite this kind of trouble in the first > place. > > I don't think it fits Guix's declarative configuration style to do that > either. > > Also, when reconfiguring the Guix system, kernel-module-loader-service > won't > unload the kernel modules and thus also wouldn't load it with new > options. > > Also, it could happen that two different guix services require the same > module > but with different options. That's an insane problem to have and I > wouldn't > try to support it. > > (I've reviewed your patch, otherwise OK!) Hello Danny, Thank for taking the time to review this patch. Since I'm definitely *not* a kernel hacker --just a casual user-- I wasn't aware of the uselessness of specifying the module arguments to modprobe in such service. I wrote this patch just to load this pesky non auto-loading `ddcci-backlight` module and I have no current use of specifying module arguments. I just thought it *could* be useful, to some, to pass arguments to modprobe since it is present in its API; but the edge-cases you brought up show that it wasn't a good idea after all. Should I just go back to the first format, with just a list of module names, and we merge this patch? Or would it be better, regarding the user interface, to start this patch anew by using `modprobe.d` API as a base. By that I mean defining a `modprobe-service-type` which populates `/etc/modprobe.d/` and can manually load a module at boot if needed (like kernel-module-loader does)? Would it be overkill? Following is an example of what such service could look like: #+begin_src scheme (service modprobe-service-type (list (modprobe-entry (module "ddcci") (load? #t) (options '("dyndbg" "delay=120")) (alises '("ddc/ci")) (install "") ; default (remove "")) ; default (modprobe-entry (module "acpi-call") (blacklist? #t)))) #+end_src - Brice From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 03 06:20:52 2020 Received: (at 40274) by debbugs.gnu.org; 3 Apr 2020 10:20:52 +0000 Received: from localhost ([127.0.0.1]:41194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKJRU-0000WR-0e for submit@debbugs.gnu.org; Fri, 03 Apr 2020 06:20:52 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:33760) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKJRS-0000WB-G6 for 40274@debbugs.gnu.org; Fri, 03 Apr 2020 06:20:51 -0400 Received: from localhost (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 96BB033640F3; Fri, 3 Apr 2020 12:20:48 +0200 (CEST) Date: Fri, 3 Apr 2020 12:20:44 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. Message-ID: <20200403122044.2f9e2552@scratchpost.org> In-Reply-To: <2b32956fc10fd3012388722e1b00ce21@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> <20200402155640.121e4879@scratchpost.org> <2b32956fc10fd3012388722e1b00ce21@waegenei.re> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/B9hFx6KpkqGUyz.XmQ+2b+R"; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: ludo@gnu.org, 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/B9hFx6KpkqGUyz.XmQ+2b+R Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi Brice, On Thu, 02 Apr 2020 17:13:05 +0000 Brice Waegeneire wrote: > *could* be useful, to some, to pass arguments to modprobe since it is > present in its API;=20 Definitely could be useful. The question is whether the complexity justifi= es it and whether it can be reliable. > Should I just go back to the first format, with just a list of module > names, and we merge this patch?=20 I would like that more since it's very improbable to ever need changing. >Or would it be better, regarding the=20 > user > interface, to start this patch anew by using `modprobe.d` API as a base. > By that I mean defining a `modprobe-service-type` which populates > `/etc/modprobe.d/` and can manually load a module at boot if needed=20 > (like > kernel-module-loader does)? Would it be overkill? Following is an=20 > example of > what such service could look like: I think the two things (loading a module and configuring a module) can be seperate, so I wouldn't mix it. For example why would you load a module before the service that needs it actually starts up (if ever)? That just increases the attack surface=20 for no reason. On the other hand, module configuration will probably be done as part of some guix service presence--used or not. That said, maybe there are upsides to--among other things easier-understand= able configuration if it's central. > #+begin_src scheme > (service modprobe-service-type > (list (modprobe-entry > (module "ddcci") > (load? #t) > (options '("dyndbg" "delay=3D120")) > (alises '("ddc/ci")) > (install "") ; default > (remove "")) ; default > (modprobe-entry > (module "acpi-call") > (blacklist? #t)))) A service to do that would still be nice. But maybe "kernel-module-configuration-service" ? (Please don't think I have all the answers, let's see which way is better) --Sig_/B9hFx6KpkqGUyz.XmQ+2b+R Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6HDfwACgkQ5xo1VCww uqUsAAgAob3KNEkmMLjYLY1uztGTqcAPd1mv51woMd5x9aaQtwYvgBBWzDXSl6nL 2y7kM6AbtVxPSSrqlvZFk0OMZvqOJfq7oz/vBsyPFGJCVD9vISZqi0CyYgC9sRCq DoWIUc6Wvo2+hTGEvTabamitaIFIgyJfkm0UUsyXq7X13NqiS04ReCwabUbbRu0H YS+7a2CBJ2WvWmHhgANr7BTVNNlrPEdu4KWKFcB/NppSCjAnJfMF7VcQYlBxZDQ+ 9iRM9hBPAgNNAnS6KbROyZYcGzPEKE7T4mk3WlinF2CvlQ/pEzDuiDlbeYWOqgxL KeVAm4/pDTssRfVwKYcbAeR//4RYUg== =jwhD -----END PGP SIGNATURE----- --Sig_/B9hFx6KpkqGUyz.XmQ+2b+R-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 03 08:58:45 2020 Received: (at 40274) by debbugs.gnu.org; 3 Apr 2020 12:58:45 +0000 Received: from localhost ([127.0.0.1]:41363 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKLuH-0006x9-2t for submit@debbugs.gnu.org; Fri, 03 Apr 2020 08:58:45 -0400 Received: from pelzflorian.de ([5.45.111.108]:47196 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKLuE-0006ws-9H for 40274@debbugs.gnu.org; Fri, 03 Apr 2020 08:58:44 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id 06D42360566; Fri, 3 Apr 2020 14:58:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1585918721; bh=9xXnT+RKlWXlTsB+NBU7pG7IgzTUZe+mRtF0dlr6UFQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=YoAOrqcMxg0r0S4xAfRAWyiQaRrIpPAvhW85IYrqYLb4FiwCz9cMBej7IZBHIdZo9 ajCn3upQzbetjaOPHZK4Y8kqikOmJ3NHsK4ifvbcvxaW7uNzGXETHkdx3raL0VNOM6 E9NseodDsHdYmdIwfsfIdL050lx+nX2RL5GhnI2I= Date: Fri, 3 Apr 2020 14:58:39 +0200 From: "pelzflorian (Florian Pelz)" To: Danny Milosavljevic Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. Message-ID: <20200403125839.bci5jduvxrhvw673@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> <20200402155640.121e4879@scratchpost.org> <2b32956fc10fd3012388722e1b00ce21@waegenei.re> <20200403122044.2f9e2552@scratchpost.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="haqwatq56yyapube" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200403122044.2f9e2552@scratchpost.org> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org, ludo@gnu.org, Brice Waegeneire X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --haqwatq56yyapube Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit On Fri, Apr 03, 2020 at 12:20:44PM +0200, Danny Milosavljevic wrote: > On Thu, 02 Apr 2020 17:13:05 +0000 Brice Waegeneire wrote: > > *could* be useful, to some, to pass arguments to modprobe since it is > > present in its API; > Definitely could be useful. The question is whether the complexity justifies it > and whether it can be reliable. I need modprobe arguments in some way via some service to pass to the uvesafb module to make graphics and kmscon work on machines without Kernel Mode Setting (see attachment), but the (string-append …) is not executed as a procedure, it seems. Apr 3 14:54:45 localhost vmunix: [ 9.860831] shepherd[1]: Service user-homes has been started. Apr 3 14:54:45 localhost vmunix: [ 9.880505] shepherd[1]: '/gnu/store/d064bv2b1hrb07j2zj78i608db7qldx9-kmod-26/bin/modprobe -- uvesafb (string-append v86d= /gnu/store/0m780n5q4cr7rqmjn5zzd6adr3042f97-v86d-0.1.10 /sbin/v86d) mode_option=1024x768' exited with status 127; output follows: Apr 3 14:54:45 localhost vmunix: [ 9.881867] shepherd[1]: Apr 3 14:54:45 localhost vmunix: [ 9.883595] shepherd[1]: Service kernel-module-loader could not be started. Regards, Florian --haqwatq56yyapube Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="uvesafb-gexp.patch" diff --git a/gnu/system/install.scm b/gnu/system/install.scm index c15c2c7814..7327efe195 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,14 @@ 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 + (list (list "uvesafb" + #~(string-append "v86d=" #$v86d "/sbin/v86d") + "mode_option=1024x768")))) + '())))) (define %issue ;; Greeting. --haqwatq56yyapube-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 03 09:03:19 2020 Received: (at 40274) by debbugs.gnu.org; 3 Apr 2020 13:03:20 +0000 Received: from localhost ([127.0.0.1]:41367 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKLyh-0007CW-Nl for submit@debbugs.gnu.org; Fri, 03 Apr 2020 09:03:19 -0400 Received: from pelzflorian.de ([5.45.111.108]:47212 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKLyg-0007CK-7v for 40274@debbugs.gnu.org; Fri, 03 Apr 2020 09:03:18 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id 47BF83605CF; Fri, 3 Apr 2020 15:03:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1585918997; bh=V/edRwOIAs5Ay/w/2CoQs0klJ1hZ9+fZ7wofBbfd41w=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=GvnsAWJpivn2lOYJAFBJo8pJLBCRPuM8rjXvgpgUrtyGyC497NR9t8sjWhrSD6L3S gYxMoURNchGTdh4YATcMw3oYZH44iJm+ueC3Z9hC62avbHIFqsZiYiaRGLz9LmrinD rryYA3l7z+1BlPnOyqNIHrse4BAKDfDkHZ8kzWNk= Date: Fri, 3 Apr 2020 15:03:16 +0200 From: "pelzflorian (Florian Pelz)" To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v4] gnu: Add kernel-module-loader-service. Message-ID: <20200403130316.ksrqtl6eq2amjmcl@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200331202340.10054-1-brice@waegenei.re> <20200401193458.evg46ygamtniby7k@pelzflorian.localdomain> <64e7eade2865209e84940a1cbca3313a@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <64e7eade2865209e84940a1cbca3313a@waegenei.re> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Thu, Apr 02, 2020 at 12:40:00PM +0000, Brice Waegeneire wrote: > On 2020-04-01 19:34, pelzflorian (Florian Pelz) wrote: > > failed to load service: kernel-module-loader > This a message saying it can't load that service, in this case because > it's parameters weren't formatted correctly, this is not specific to > this service that's how shepherd handle failing to load a service. > Please open a new issue about it if you think (as I do) that shepherd > should be more explicit when it fails to load a service. I meant compilation could fail if the parameters are incorrect. I do not know how else Shepherd should fail. But this is not very important and applies to many other services as well. Thank you for adding logging. All this works well (in testing, I have not read the code). Regards, Florian From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 06:51:43 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 10:51:43 +0000 Received: from localhost ([127.0.0.1]:43522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKgOr-0000Kk-HB for submit@debbugs.gnu.org; Sat, 04 Apr 2020 06:51:43 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:39762) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKgOp-0000J5-3l for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 06:51:39 -0400 Received: from localhost (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id AE117336410B; Sat, 4 Apr 2020 12:51:37 +0200 (CEST) Date: Sat, 4 Apr 2020 12:51:35 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. Message-ID: <20200404125135.5bef66bf@scratchpost.org> In-Reply-To: <20200403122044.2f9e2552@scratchpost.org> References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> <20200402155640.121e4879@scratchpost.org> <2b32956fc10fd3012388722e1b00ce21@waegenei.re> <20200403122044.2f9e2552@scratchpost.org> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/.AXZFn+dJMWs3CeW2yQ0HP="; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: ludo@gnu.org, 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/.AXZFn+dJMWs3CeW2yQ0HP= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Furthermore, many modules could be built-into the kernel (instead of loadab= le), too. Then the "module" options somehow have to make it into the kerne= l command line as "module_name.parameter_name=3Dparameter_value". --Sig_/.AXZFn+dJMWs3CeW2yQ0HP= Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6IZrcACgkQ5xo1VCww uqXwNwf9F0lOrnFhZZRfRUkRGwkNsVdB3rrFLiTmpZ5ULyEGqjd9UejYhI+aQNlc HLMroX7F3pkfamCUMAzbpElVi69lWzO0UucdxfzICCtGtHzSzrA132AyI0MGO1BH lkto37el0OEqhFOKYVv7c+L6xx36HqnbXZVyYefrJOvdGv8F3VNLWHZP28H4Fa3x 3wAsEAvpjcWft1YPOMUM0d46/jjVYq+AzdMnX0HEAjLDfknZFIRY/QmqFrfBFu5V PeCjdVJcEl68YnCGjVmdKvHT/l/OkHmhAShDsn6QwQ7jMVsHNJpeR76iTLq9sjLt n6wHj/5l8szdcgYlR1juoj/dabHAhw== =qlAe -----END PGP SIGNATURE----- --Sig_/.AXZFn+dJMWs3CeW2yQ0HP=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 11:17:48 2020 Received: (at submit) by debbugs.gnu.org; 4 Apr 2020 15:17:48 +0000 Received: from localhost ([127.0.0.1]:44576 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKkYN-00025c-PK for submit@debbugs.gnu.org; Sat, 04 Apr 2020 11:17:48 -0400 Received: from lists.gnu.org ([209.51.188.17]:36937) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKkYL-00025E-O4 for submit@debbugs.gnu.org; Sat, 04 Apr 2020 11:17:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43942) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jKkYK-0000BF-JJ for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:45 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_20,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jKkYI-0007YA-WD for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:44 -0400 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:38849) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jKkYI-0007X2-Qc for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:42 -0400 X-Originating-IP: 78.237.113.178 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id F1A3C60008 for ; Sat, 4 Apr 2020 15:17:39 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v6 0/2] gnu: Add kernel-module-loader-service. Date: Sat, 4 Apr 2020 17:17:30 +0200 Message-Id: <20200404151732.20341-1-brice@waegenei.re> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200328135908.2540-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.195 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, The following modification have been made since the previous patch version: - The format to specify kernel modules has been reverted to a simple list of strings. - The `modprobe` command used is retrieved from "/proc/sys/kernel/modprobe". - Thanks to the previously listed modifications, `kernel-module-loader-service-type` has been removed together with the helper function `kernel-module-loader-service`. No need to bother with a record now that we only need a list of strings. - A temporary crutch to force `modprobe` from loading "/etc/modprobe.d" has been added. The permanent fix has been submitted as #40422[0] but it needs to go trough the core-updates branch. - The documentation has been updated accordingly. - An example showing how to specify module arguments using "/etc/modprobe.d/" has been added to the documentation. [0]: https://issues.guix.info/issue/40422 - Brice Brice Waegeneire (2): services: Allow modprobe to use "/etc/modprobe.d". gnu: Add kernel-module-loader-service. doc/guix.texi | 38 +++++++++++++++++++++++++++ gnu/services.scm | 4 +++ gnu/services/linux.scm | 52 ++++++++++++++++++++++++++++++++++++- gnu/tests/linux-modules.scm | 33 ++++++++++++++--------- 4 files changed, 114 insertions(+), 13 deletions(-) -- 2.26.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 11:17:48 2020 Received: (at submit) by debbugs.gnu.org; 4 Apr 2020 15:17:48 +0000 Received: from localhost ([127.0.0.1]:44578 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKkYO-00025e-5j for submit@debbugs.gnu.org; Sat, 04 Apr 2020 11:17:48 -0400 Received: from lists.gnu.org ([209.51.188.17]:38138) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKkYL-00025D-Lj for submit@debbugs.gnu.org; Sat, 04 Apr 2020 11:17:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43943) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jKkYK-0000BG-ID for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:45 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_40,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jKkYJ-0007YM-Bz for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:44 -0400 Received: from relay12.mail.gandi.net ([217.70.178.232]:43555) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jKkYJ-0007XU-6A for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:43 -0400 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay12.mail.gandi.net (Postfix) with ESMTPSA id 20F2D200008 for ; Sat, 4 Apr 2020 15:17:40 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v6 1/2] services: Allow modprobe to use "/etc/modprobe.d". Date: Sat, 4 Apr 2020 17:17:31 +0200 Message-Id: <20200404151732.20341-2-brice@waegenei.re> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200404151732.20341-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.178.232 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a temporary crutch allowing 'modprobe' to load it's configuration from "/etc/modprobe.d". The definitive fix is contained in which need to go trough the core-upates branch as it rebuild over 2200 packages. * gnu/services.scm (%modprobe-wrapper): Set 'MODPROBE_OPTIONS' environment variable. --- gnu/services.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/services.scm b/gnu/services.scm index e7a3a95e43..1c39c779a7 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -579,6 +579,10 @@ ACTIVATION-SCRIPT-TYPE." #~(begin (setenv "LINUX_MODULE_DIRECTORY" "/run/booted-system/kernel/lib/modules") + ;; FIXME: Remove this crutch when the patch #40422, + ;; updating to kmod 27 is merged + (setenv "MODPROBE_OPTIONS" + "-C /etc/modprobe.d") (apply execl #$modprobe (cons #$modprobe (cdr (command-line)))))))) -- 2.26.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 11:17:49 2020 Received: (at submit) by debbugs.gnu.org; 4 Apr 2020 15:17:50 +0000 Received: from localhost ([127.0.0.1]:44580 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKkYP-00025t-Eh for submit@debbugs.gnu.org; Sat, 04 Apr 2020 11:17:49 -0400 Received: from lists.gnu.org ([209.51.188.17]:55581) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKkYM-00025S-VH for submit@debbugs.gnu.org; Sat, 04 Apr 2020 11:17:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43957) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jKkYL-0000CZ-8e for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:46 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jKkYJ-0007Ye-Jf for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:45 -0400 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:58961) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jKkYJ-0007Xq-AP for guix-patches@gnu.org; Sat, 04 Apr 2020 11:17:43 -0400 X-Originating-IP: 78.237.113.178 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id ECA4B60002 for ; Sat, 4 Apr 2020 15:17:41 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v6 2/2] gnu: Add kernel-module-loader-service. Date: Sat, 4 Apr 2020 17:17:32 +0200 Message-Id: <20200404151732.20341-3-brice@waegenei.re> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200404151732.20341-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.195 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Linux Services): Add a new subsection and document the new service and its configuration. * gnu/services/linux.scm (kernel-module-loader-service-type): New type. (kernel-module-loader-shepherd-service): New procedure. * gnu/tests/linux-modules.scm (module-loader-program): Procedure removed. (modules-loaded?-program): New procedure. (run-loadable-kernel-modules-test): 'module-loader-program' procedure replaced by the new one. [os]: Use 'kernel-module-loader-service'. --- doc/guix.texi | 38 +++++++++++++++++++++++++++ gnu/services/linux.scm | 52 ++++++++++++++++++++++++++++++++++++- gnu/tests/linux-modules.scm | 33 ++++++++++++++--------- 3 files changed, 110 insertions(+), 13 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8cb85fe62c..b18413f685 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -76,6 +76,7 @@ Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* +Copyright @copyright{} 2020 Brice Waegeneire@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -25383,6 +25384,43 @@ notifications. @end table @end deftp +@cindex modprobe +@cindex kernel module loader +@subsubsection Kernel Module Loader Service + +The kernel module loader service allows one to load, at boot, loadable +kernel modules---in opposition to built-in kernel modules which should +be added to the @code{kernel-arguments} field instead. This is +especially useful for modules that don't autoload and need to be +manually loaded, as it's the case with @code{ddcci} for example. + +@deffn {Scheme Variable} kernel-module-loader-service-type +The service type for loading loadable kernel modules at boot with +@command{modprobe}. Its value must be a list of strings representing +module names. For example loading the drivers provided by +@code{ddci-driver-linux}, in debugging mode by passing some module +parameters, can be done as follow: + +@lisp +(use-modules (gnu) (gnu services)) +(use-package-modules linux) +(use-service-modules linux) + +(define ddcci-config + (plain-file "ddcci.conf" + "options ddcci dyndbg delay=120")) + +(operating-system + ... + (services (cons* (service kernel-module-loader-service-type + '("ddcci" "ddcci_backlight")) + (simple-service 'ddcci-config etc-service-type + (list `("modprobe.d/ddcci.conf" + ,ddcci-config))) + %base-services)) + (kernel-loadable-modules (list ddcci-driver-linux))) +@end lisp +@end deffn @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..621d26fcff 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (gnu packages linux) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:export (earlyoom-configuration earlyoom-configuration? @@ -37,7 +40,9 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-service-type)) ;;; @@ -123,3 +128,48 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + + +;;; +;;; Kernel module loader. +;;; + +(define kernel-module-loader-shepherd-service + (match-lambda + ((and (? list? kernel-modules) ((? string?) ...)) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (requirement '(file-systems)) + (respawn? #f) + (one-shot? #t) + (modules `((srfi srfi-34) + (srfi srfi-35) + ,@%default-modules)) + (start + #~(lambda _ + (if (file-exists? "/proc/sys/kernel/modprobe") + (let ((modprobe (call-with-input-file + "/proc/sys/kernel/modprobe" get-line))) + (guard (c ((message-condition? c) + (format (current-error-port) "~a~%" + (condition-message c)) + #f)) + (map (lambda (module) + (invoke/quiet modprobe "--" module)) + '#$kernel-modules))) + (begin (format (current-error-port) "error: ~a~%" + "Kernel is missing loadable module support.") + #f))))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend append) + (default-value '()))) diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 39e11587c6..f1c4feb7a0 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze ;;; Copyright © 2020 Danny Milosavljevic +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,8 @@ (define-module (gnu tests linux-modules) #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services linux) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) @@ -37,25 +40,30 @@ ;;; ;;; Code: -(define* (module-loader-program os modules) - "Return an executable store item that, upon being evaluated, will dry-run -load MODULES." +(define* (modules-loaded?-program os modules) + "Return an executable store item that, upon being evaluated, will verify +that MODULES are actually loaded." (program-file "load-kernel-modules.scm" - (with-imported-modules (source-module-closure '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (for-each (lambda (module) - (invoke (string-append #$kmod "/bin/modprobe") "-n" "--" - module)) - '#$modules))))) + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 popen)) + (let* ((port (open-input-pipe (string-append #$kmod "/bin/lsmod"))) + (output (read-string port)) + (status (close-pipe port))) + (and-map (lambda (module) (string-contains output module)) + '#$modules))))) (define* (run-loadable-kernel-modules-test module-packages module-names) - "Run a test of an OS having MODULE-PACKAGES, and modprobe MODULE-NAMES." + "Run a test of an OS having MODULE-PACKAGES, and verify that MODULE-NAMES +are loaded in memory." (define os (marionette-operating-system (operating-system (inherit (simple-operating-system)) + (services (cons (service kernel-module-loader-service-type module-names) + (operating-system-user-services + (simple-operating-system)))) (kernel-loadable-modules module-packages)) #:imported-modules '((guix combinators)))) (define vm (virtual-machine os)) @@ -75,7 +83,8 @@ load MODULES." marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - (gexp->derivation "loadable-kernel-modules" (test (module-loader-program os module-names)))) + (gexp->derivation "loadable-kernel-modules" + (test (modules-loaded?-program os module-names)))) (define %test-loadable-kernel-modules-0 (system-test -- 2.26.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 11:53:57 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 15:53:57 +0000 Received: from localhost ([127.0.0.1]:44604 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKl7N-00065j-84 for submit@debbugs.gnu.org; Sat, 04 Apr 2020 11:53:57 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:41514) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKl7L-00065G-IA for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 11:53:56 -0400 Received: by mail-wr1-f68.google.com with SMTP id h9so12217489wrc.8 for <40274@debbugs.gnu.org>; Sat, 04 Apr 2020 08:53:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=8Lmg+FVhrUwrfpISyfOxAOwtA4V1h8upDZQ2PDpPrA8=; b=PWTdSdZ6FiqI3LXLhxDtg/v2NMrDH6H3VNmanHo4w7eVi78ZmQcP/SOsAZVSFglntZ g0N6sAMd/kiq+8tpkUsO4B0CQtHQLmhEAA3GL4P9aOvuboa+bSw9lcLutNPRWCcz/HGg 79SqaLo31AdSGKytkHbanga+Oip9UxwY/Zx2IVApK4a1yNFiApiZZqI/u1Wqo5KBORWu O8IwtTq+M7joK1sVCAQ7YMzG8r3Xu4XKzZNUycsC2DaiROm+xfas4x1u+cU4Cpmvi89p /o0ZpJugcP8lsDFBByhq5FeD4r3OXmnt05ORYkRFjAz0LWuDeLH1E6Uq2c29sWRftYao VBDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=8Lmg+FVhrUwrfpISyfOxAOwtA4V1h8upDZQ2PDpPrA8=; b=eJOQSQ5RAMJLtkfwEqj9/3Nz7xAZGxnKCS268ZdW+SGiF5oXgK7bTbEnq6NitIeK9r aI6E3g4aPOts80r7zLrpl+yBCO+84kZ3qop1osOCglQUVfZPJ3mf6NSkhb2xi42t8paX PWmDh3CjnSVRebyY8PavTmRi0HuIgWxyCLlno106EW4AyPDhd4z50UwVyA70HEidFYF2 X5k55wObuJk0QUTKYhs+3SkyOrx76jV8Om2+ElA9MXH1j6cfB+6bJclxI3ssGsBy/1O2 ZluURF9uR2PFmmfwiQzAhHowqURJG68gG+OvBTWSA4v+UnpEF2XoYtV7SVTRvTwaehYg 6F8w== X-Gm-Message-State: AGi0Puat9vLYYzrS1rQC8+CqHuxWIaVU0BmSiLNyvgZPBh8+ldA9ga4G HiNKJ0XS5pfiXLp6ELl8AVFDoSv5M/A= X-Google-Smtp-Source: APiQypIb2ria7fCkjbg2uLksF4RldYoTNBjfJ7jZn2dmcYU3aO8grwsjdO1abnLCZZaKGr7A9eC4Sg== X-Received: by 2002:a5d:6441:: with SMTP id d1mr15829478wrw.301.1586015629278; Sat, 04 Apr 2020 08:53:49 -0700 (PDT) Received: from meru ([2a01:cb18:832e:5f00:4928:41d8:3661:4718]) by smtp.gmail.com with ESMTPSA id 127sm17111097wmd.38.2020.04.04.08.53.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Apr 2020 08:53:48 -0700 (PDT) From: Mathieu Othacehe To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> Date: Sat, 04 Apr 2020 17:53:47 +0200 In-Reply-To: <20200404151732.20341-3-brice@waegenei.re> (Brice Waegeneire's message of "Sat, 4 Apr 2020 17:17:32 +0200") Message-ID: <87h7xztfg4.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Brice, I think what you discussed with Danny, separating module loading from configuration is very wise. > +The kernel module loader service allows one to load, at boot, loadable > +kernel modules---in opposition to built-in kernel modules which should > +be added to the @code{kernel-arguments} field instead. This is Using kernel-arguments you can configure built-in modules but you cannot force them to show-up, at least for most device drivers. For those device drivers, loading of built-in modules is based on hardware probing at boot-time. So I would just stick with: "The kernel module loader service allows one to load, at boot time, specific kernel modules." > +(define ddcci-config > + (plain-file "ddcci.conf" > + "options ddcci dyndbg delay=120")) Having the modprobe-service-type you proposed earlier, would be super nice to do that :) > + > +(operating-system > + ... > + (services (cons* (service kernel-module-loader-service-type > + '("ddcci" "ddcci_backlight")) > + (simple-service 'ddcci-config etc-service-type > + (list `("modprobe.d/ddcci.conf" > + ,ddcci-config))) Great! This seems really nice to me. Mathieu From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 12:09:59 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 16:09:59 +0000 Received: from localhost ([127.0.0.1]:44621 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKlMs-0006yA-J0 for submit@debbugs.gnu.org; Sat, 04 Apr 2020 12:09:59 -0400 Received: from pelzflorian.de ([5.45.111.108]:49494 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKlMr-0006xy-97 for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 12:09:58 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id 6010436055C; Sat, 4 Apr 2020 18:09:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1586016596; bh=p/gHPf1wJPxo9m2VO8VUAbI4eb4BfUswKtui801N9ko=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=P/yuNgywkM/JTJcAaAx+OzPpg4pU0UUwTxEZEadLAUXDtkG+2p0c6n8vOKb5lD3TT v/CSZheshTv6bBqdFej0rRM/nZMF0O9T1XUCzJjCfXWx5u4ZQ4f8KCkPU+RK18zE+1 bsVCJMwI2VNBWO5psm2H8txMgomvdJXOyMCnHffI= Date: Sat, 4 Apr 2020 18:09:54 +0200 From: "pelzflorian (Florian Pelz)" To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. Message-ID: <20200404160954.js2zya4un7ohngy7@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200404151732.20341-3-brice@waegenei.re> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sat, Apr 04, 2020 at 05:17:30PM +0200, Brice Waegeneire wrote: > Hello, > > The following modification have been made since the previous patch version: > - The format to specify kernel modules has been reverted to a simple list of > strings. > - The `modprobe` command used is retrieved from "/proc/sys/kernel/modprobe". > - Thanks to the previously listed modifications, > `kernel-module-loader-service-type` has been removed together with the > helper function `kernel-module-loader-service`. No need to bother with a > record now that we only need a list of strings. You mean you removed kernel-module-loader-configuration. Regarding patch 2/2: On Sat, Apr 04, 2020 at 05:17:32PM +0200, Brice Waegeneire wrote: > +module names. For example loading the drivers provided by > +@code{ddci-driver-linux}, in debugging mode by passing some module This is a typo. I can only find ddcci-driver-linux. Thank you for this patch. I do not know enough to judge the code. I will try again if it helps me load uvesafb. Regards, Florian From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 12:49:24 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 16:49:25 +0000 Received: from localhost ([127.0.0.1]:44664 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKlz2-0000kF-Jn for submit@debbugs.gnu.org; Sat, 04 Apr 2020 12:49:24 -0400 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:33687) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKlz1-0000jh-8L for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 12:49:23 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay2-d.mail.gandi.net (Postfix) with ESMTPA id 8A4CF40006; Sat, 4 Apr 2020 16:49:16 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Sat, 04 Apr 2020 16:49:16 +0000 From: Brice Waegeneire To: "pelzflorian (Florian Pelz)" Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. In-Reply-To: <20200404160954.js2zya4un7ohngy7@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> <20200404160954.js2zya4un7ohngy7@pelzflorian.localdomain> Message-ID: X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org, Guix-patches X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello Florian, Thank you for the interest you have in this patch series. On 2020-04-04 16:09, pelzflorian (Florian Pelz) wrote: > On Sat, Apr 04, 2020 at 05:17:30PM +0200, Brice Waegeneire wrote: >> - Thanks to the previously listed modifications, >> `kernel-module-loader-service-type` has been removed together with >> the >> helper function `kernel-module-loader-service`. No need to bother >> with a >> record now that we only need a list of strings. > > You mean you removed kernel-module-loader-configuration. Yes. > Regarding patch 2/2: > > On Sat, Apr 04, 2020 at 05:17:32PM +0200, Brice Waegeneire wrote: >> +module names. For example loading the drivers provided by >> +@code{ddci-driver-linux}, in debugging mode by passing some module > > This is a typo. I can only find ddcci-driver-linux. Good catch! DDC/CI what a silly name... > Thank you for this patch. I do not know enough to judge the code. I > will try again if it helps me load uvesafb. Please do send feedback on using it, especially since you are the only one in need of specifying module parameters ATM. I kept your usage in mind when writing this patch version. - Brice From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 13:46:39 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 17:46:39 +0000 Received: from localhost ([127.0.0.1]:44730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKmsR-00060L-Ee for submit@debbugs.gnu.org; Sat, 04 Apr 2020 13:46:39 -0400 Received: from pelzflorian.de ([5.45.111.108]:49700 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKmsP-000609-HI for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 13:46:38 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id 1A80036055C; Sat, 4 Apr 2020 19:46:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1586022396; bh=o9LwRG9H0OztpcDp8YBUPsy2hhD7raqVKGKVCLwx4YA=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=UR5xMAPY7ZAREUi8N0rV3R7kmQmgu89X4x81cJsSlRtfYFR6K7f2pd3TI5ICBZRiU Zi7k5lj5Ofmj4NMRrKwYIbszC8UG6T81m2X9SCAXA8YsZszy9+NX2DITmGoSvzILM3 vEwAH0iy4XVGoSNgkBtK3mYQOBkxow2qCDCWo9ao= Date: Sat, 4 Apr 2020 19:46:34 +0200 From: "pelzflorian (Florian Pelz)" To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. Message-ID: <20200404174634.2iswkauau7wmzzsu@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> <20200404160954.js2zya4un7ohngy7@pelzflorian.localdomain> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="43676ezplsnx7lx5" Content-Disposition: inline In-Reply-To: X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org, Guix-patches X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --43676ezplsnx7lx5 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sat, Apr 04, 2020 at 04:49:16PM +0000, Brice Waegeneire wrote: > Please do send feedback on using it, especially since you are the only one > in need of specifying module parameters ATM. I kept your usage in mind when > writing this patch version. > > - Brice It does not seem to work. There is nothing in /var/log/messages but when I do root@gnu.org # herd start kernel-module-loader herd: exception caught while executing 'start' on service 'kernel-module-loader': In procedure module-lookup: Unbound variable: get-line I attach my changes. Regards, Florian --43676ezplsnx7lx5 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="uvesafb-3.patch" 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. --43676ezplsnx7lx5-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 13:58:19 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 17:58:19 +0000 Received: from localhost ([127.0.0.1]:44785 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKn3j-0006hT-0g for submit@debbugs.gnu.org; Sat, 04 Apr 2020 13:58:19 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:37269) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKn3g-0006gr-MU for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 13:58:17 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay5-d.mail.gandi.net (Postfix) with ESMTPA id 065C81C000C; Sat, 4 Apr 2020 17:58:09 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Sat, 04 Apr 2020 17:58:09 +0000 From: Brice Waegeneire To: Danny Milosavljevic Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. In-Reply-To: <20200403122044.2f9e2552@scratchpost.org> References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> <20200402155640.121e4879@scratchpost.org> <2b32956fc10fd3012388722e1b00ce21@waegenei.re> <20200403122044.2f9e2552@scratchpost.org> Message-ID: <9ed8ed843f7a66dc306679885a641514@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: ludo@gnu.org, 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello, On 2020-04-03 10:20, Danny Milosavljevic wrote: > On Thu, 02 Apr 2020 17:13:05 +0000 > Brice Waegeneire wrote: >> #+begin_src scheme >> (service modprobe-service-type >> (list (modprobe-entry >> (module "ddcci") >> (load? #t) >> (options '("dyndbg" "delay=120")) >> (alises '("ddc/ci")) >> (install "") ; default >> (remove "")) ; default >> (modprobe-entry >> (module "acpi-call") >> (blacklist? #t)))) > > A service to do that would still be nice. But maybe > "kernel-module-configuration-service" ? A lengthy one but a better one for sure. > (Please don't think I have all the answers, let's see which way is > better) I don't but you seems to have more answers than I have on this specific subject. We are on the same page here, the best interface should be the one that get merged! As you suggested, I choose to go back to the list of string format. It simplified the boilerplate a lot: no record and no helper function. Yet it still allows passing arguments to modules by extending `etc-service-type` to create "/etc/modprobe.d/*.conf" files, and avoids all the pitfalls of the previous method you made me aware off. As `kernel-module-loader-service-type` is extensible it would be possible, in an other patch series, if the need arises, to create a `kernel-module-configuration-service` centralizing loadable modules configuration. But like you noted it would be specific to loadable modules and not built-in ones since `kernel-arguments` is just an OS field, which AFAIK can't be influenced by a service. Thank you for your help Danny. - Brice From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 14:31:32 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 18:31:32 +0000 Received: from localhost ([127.0.0.1]:44822 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKnZr-00006F-TT for submit@debbugs.gnu.org; Sat, 04 Apr 2020 14:31:32 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:49368) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKnZq-000065-Ei for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 14:31:30 -0400 Received: from localhost (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id F38223367FBE; Sat, 4 Apr 2020 20:31:28 +0200 (CEST) Date: Sat, 4 Apr 2020 20:31:28 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. Message-ID: <20200404203128.0cc37fca@scratchpost.org> In-Reply-To: <9ed8ed843f7a66dc306679885a641514@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> <20200402155640.121e4879@scratchpost.org> <2b32956fc10fd3012388722e1b00ce21@waegenei.re> <20200403122044.2f9e2552@scratchpost.org> <9ed8ed843f7a66dc306679885a641514@waegenei.re> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/2Sij7beLpFPByi7IeDskkMC"; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: ludo@gnu.org, 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/2Sij7beLpFPByi7IeDskkMC Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi Brice, >But like you noted it would=20 > be specific > to loadable modules and not built-in ones since `kernel-arguments` is=20 > just an OS > field, which AFAIK can't be influenced by a service. There's no one stopping us from extending operating-system-kernel-arguments, which already exists as a helper procedure, to also call operating-system-services and check those for the command line arguments to add (see gnu/system.scm). --Sig_/2Sij7beLpFPByi7IeDskkMC Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6I0oAACgkQ5xo1VCww uqUPXAgAlOS3yl9VVopUcmRf2TjjcNEM0sUdPf8oGtxJ2LqvJQxgsk8Tpcs16qEq v+DiVxh/+uWJLEDakTkYrTXfl6GRMC3ODCLGtcTn1DJq373mE3SNVGxh+CvhMyQL qIUEVgXw86Y6sKRU+kPXbrb0l1MJ7bVLLQkSac5qWE8K6x3dSL766E4EqhcZ8zPm DPhhJ6dKr7bVLSHjv+aGNnIFD93XfgUXjSVXLNGYLTc4cQtMPC2dJM9LroOhvwvC N0ms2yimzmBL9e7uZSZmlyBUWGfjGRS43syk+AK5a1ZiMrbfXU2tQSmsK+cDbIr1 81L8MvmOEfxp/wOuZjvNFecLrnawqg== =9wOr -----END PGP SIGNATURE----- --Sig_/2Sij7beLpFPByi7IeDskkMC-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 17:10:09 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 21:10:09 +0000 Received: from localhost ([127.0.0.1]:44896 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKq3N-0000Dm-2b for submit@debbugs.gnu.org; Sat, 04 Apr 2020 17:10:09 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:33740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKq3L-0000DV-Ax for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 17:10:07 -0400 Received: from localhost (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 8D1A43365336; Sat, 4 Apr 2020 23:10:05 +0200 (CEST) Date: Sat, 4 Apr 2020 23:10:04 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. Message-ID: <20200404231004.0097cf70@scratchpost.org> In-Reply-To: <20200404151732.20341-3-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/=OngUIKyKSwsUtTzIn4mWJ4"; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/=OngUIKyKSwsUtTzIn4mWJ4 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Sat, 4 Apr 2020 17:17:32 +0200 Brice Waegeneire wrote: > get-line Missing (ice-9 rdelim) ? --Sig_/=OngUIKyKSwsUtTzIn4mWJ4 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6I96wACgkQ5xo1VCww uqVCyAf/W+A/jxGIS9Ek+tK5+vvHPhZGzWc/fImkHtZLTAz8muc7833o78FtwS7d m85AjjWiOqdOQMx178QI3y0BPJdJu8ClqljliFZmzxvP/tDBzBbRDXdni9NTl14P 6McGvZVgTYhqBcB7KIrDFTMSusXoaIFk2kHVqCtJQDrbsQhSulOUbACJ/pJfpgaO bk8vRESo3ZoJ2T6FhAtwf0bcaoE3pRHyv3j4DlajPaB0JW14rcT9Fhhl1Vn/MsQr oM8dOn/h81AnSeUzqoP37wsVtj8EXv0wVAqHQPOcxsMTHfzcqUsyHgJgfZ9L/tXv PuFaUv7oCPjlQ7ed5tweFrRwz5gnBQ== =iA0r -----END PGP SIGNATURE----- --Sig_/=OngUIKyKSwsUtTzIn4mWJ4-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 17:11:48 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 21:11:48 +0000 Received: from localhost ([127.0.0.1]:44905 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKq4x-0000Jx-Ph for submit@debbugs.gnu.org; Sat, 04 Apr 2020 17:11:47 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:33882) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKq4v-0000Jl-Gm for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 17:11:45 -0400 Received: from localhost (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id D590E3365336; Sat, 4 Apr 2020 23:11:44 +0200 (CEST) Date: Sat, 4 Apr 2020 23:11:44 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. Message-ID: <20200404231144.05552175@scratchpost.org> In-Reply-To: <20200404231004.0097cf70@scratchpost.org> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> <20200404231004.0097cf70@scratchpost.org> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/cjk4gR+7RPlO18XBfEoHVZ+"; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/cjk4gR+7RPlO18XBfEoHVZ+ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Sat, 4 Apr 2020 23:10:04 +0200 Danny Milosavljevic wrote: > On Sat, 4 Apr 2020 17:17:32 +0200 > Brice Waegeneire wrote: >=20 > > get-line =20 >=20 > Missing (ice-9 rdelim) ? I meant (ice-9 textual-ports) --Sig_/cjk4gR+7RPlO18XBfEoHVZ+ Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6I+BAACgkQ5xo1VCww uqUm1wf+LXtRiJKp/P3Z2KF3OB+AVc8L7WxZ6RqVpx6SP1JhbQebLwUUir9O5dRn v+Qfg5r6P5VJuqnc5pYHA1pK38P1F2K3YXuGJzQA8UoTzc1B6hFjyGBlHI8hmiYe K0T29IJLYTjOhgCKHkfdkQh1jwvX1Y9Buva+1cRREv6GMmpx2kpVsLC3fnTM0ezt Jl4fTxgew7K0Q6GcZo84jHioOPsYIRXDzacUkqEtbLfaYyIgwjcFiIQtuAC6RtTp py+SK4qRrq5U2dLmK0jluRnkKnDqbamcA2ZwRDKA3rHg8U+AN5QrhNO6lWjuBWN6 v2b1ifrwNe5eWv6K+bGZUlvJ2wdBwQ== =NaJ3 -----END PGP SIGNATURE----- --Sig_/cjk4gR+7RPlO18XBfEoHVZ+-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 17:16:57 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 21:16:57 +0000 Received: from localhost ([127.0.0.1]:44915 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKq9x-0000cG-NT for submit@debbugs.gnu.org; Sat, 04 Apr 2020 17:16:57 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:34264) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKq9w-0000c7-Sy for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 17:16:57 -0400 Received: from localhost (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 019C33365336; Sat, 4 Apr 2020 23:16:55 +0200 (CEST) Date: Sat, 4 Apr 2020 23:16:54 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. Message-ID: <20200404231655.0dfd60d7@scratchpost.org> In-Reply-To: <20200404151732.20341-3-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/CmoqO9tUrzgl5MgtAi.IZQw"; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/CmoqO9tUrzgl5MgtAi.IZQw Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable What happens in the case that kernel-module-loader-service is used but no modules to load are specified? IMO that should be succeeding even in the presence of a Linux kernel with no loadable module support. --Sig_/CmoqO9tUrzgl5MgtAi.IZQw Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6I+UcACgkQ5xo1VCww uqVCaAf/Z4rH3r5+yo2SbjK/RNCCcJL1Y/w3qBdPZP50+GmLB0psbVtUOz3u1+j0 8vLJ866zg1eNuzOUmClYL9XzU7M3jnjxkupZAIbt16Qw64ITMlGN9JHwIGOLYRrl Sts5LGvPYdCInCauhgm1OZ7/+6sdT2gERXM8gejr/lDM6s96YMkQKxSX14CyLBYH msABXOckzrNUwdVtTS5Mfmx3asAouK3wSxY5SOI90qiBRs4ZDLagnqmHsqEcW4nb YwwgabgowwhtMdc7HUSz8KD+TZ5+XyI7v4zGphcM37FCnlFJZwgkOrzQXdaqCp4v lNeQQoNbHq6GonMqCARbSPaSaOFFxw== =vrXc -----END PGP SIGNATURE----- --Sig_/CmoqO9tUrzgl5MgtAi.IZQw-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 04 19:06:16 2020 Received: (at 40274) by debbugs.gnu.org; 4 Apr 2020 23:06:16 +0000 Received: from localhost ([127.0.0.1]:44956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKrrk-0006kZ-3C for submit@debbugs.gnu.org; Sat, 04 Apr 2020 19:06:16 -0400 Received: from pelzflorian.de ([5.45.111.108]:50130 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKrrg-0006kE-Tj for 40274@debbugs.gnu.org; Sat, 04 Apr 2020 19:06:15 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id A913D36055C; Sun, 5 Apr 2020 01:06:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1586041571; bh=OY/PnAKK5AV6nnp2o38mHNQdxW8VOLGr4b0XQlpccRc=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=FNRCk80KFcoK+hg8S/exxYISCCzj51geGOSCdThAz5x1wpVubzSGd0yA4NBfwRbRx pTrUdjsNT6gL97yBGya2yUoudWTWSC6iEhbAAT1qY5huWIq420MoxeK2CLdMO6DGIY odyYiUaO31nj1NaLe+APuAILixpP9BKCqJ4pTAhQ= Date: Sun, 5 Apr 2020 01:06:10 +0200 From: "pelzflorian (Florian Pelz)" To: Danny Milosavljevic Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. Message-ID: <20200404230610.obw47uab3utwhge4@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> <20200404231004.0097cf70@scratchpost.org> <20200404231144.05552175@scratchpost.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="iouwcqthyncpf3gp" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200404231144.05552175@scratchpost.org> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org, Brice Waegeneire X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --iouwcqthyncpf3gp Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit On Sat, Apr 04, 2020 at 11:11:44PM +0200, Danny Milosavljevic wrote: > I meant (ice-9 textual-ports) Yes. I change Brice’s kernel-module-loader-shepherd-service (see attachment) and everything works perfectly. Thank you! Regards, Florian --iouwcqthyncpf3gp Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="get-line.patch" diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index 621d26fcff..61a7dbb9a1 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -151,7 +151,8 @@ representation." #~(lambda _ (if (file-exists? "/proc/sys/kernel/modprobe") (let ((modprobe (call-with-input-file - "/proc/sys/kernel/modprobe" get-line))) + "/proc/sys/kernel/modprobe" + (@ (ice-9 textual-ports) get-line)))) (guard (c ((message-condition? c) (format (current-error-port) "~a~%" (condition-message c)) --iouwcqthyncpf3gp-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 01:28:27 2020 Received: (at submit) by debbugs.gnu.org; 5 Apr 2020 05:28:27 +0000 Received: from localhost ([127.0.0.1]:45072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKxpb-00054B-8a for submit@debbugs.gnu.org; Sun, 05 Apr 2020 01:28:27 -0400 Received: from lists.gnu.org ([209.51.188.17]:45861) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKxpY-00053r-R3 for submit@debbugs.gnu.org; Sun, 05 Apr 2020 01:28:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43268) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jKxpX-00072j-Af for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:24 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jKxpV-0005QT-Tq for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:22 -0400 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:42841) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jKxpV-0005Pq-OR for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:21 -0400 X-Originating-IP: 78.237.113.178 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id DFF0F60004 for ; Sun, 5 Apr 2020 05:28:18 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v7 0/2] gnu: Add kernel-module-loader-service. Date: Sun, 5 Apr 2020 07:28:01 +0200 Message-Id: <20200405052803.15711-1-brice@waegenei.re> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200328135908.2540-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.195 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This new revision: - fix a typo in the documentation - remove the part about built-in modules in the documentation - add a missing Guile module to `kernel-module-loader-shepherd-service` - `kernel-module-loader-shepherd-service` doesn't fail when the kernel don't support loadable module and there if no module are to be loaded Brice Waegeneire (2): services: Allow modprobe to use "/etc/modprobe.d". gnu: Add kernel-module-loader-service. doc/guix.texi | 37 +++++++++++++++++++++++++ gnu/services.scm | 4 +++ gnu/services/linux.scm | 54 ++++++++++++++++++++++++++++++++++++- gnu/tests/linux-modules.scm | 33 ++++++++++++++--------- 4 files changed, 115 insertions(+), 13 deletions(-) -- 2.26.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 01:28:27 2020 Received: (at submit) by debbugs.gnu.org; 5 Apr 2020 05:28:27 +0000 Received: from localhost ([127.0.0.1]:45074 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKxpb-00054F-Fd for submit@debbugs.gnu.org; Sun, 05 Apr 2020 01:28:27 -0400 Received: from lists.gnu.org ([209.51.188.17]:57945) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKxpY-00053s-SD for submit@debbugs.gnu.org; Sun, 05 Apr 2020 01:28:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43271) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jKxpX-00072k-DQ for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:24 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jKxpW-0005Qa-76 for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:23 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:49733) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jKxpW-0005QF-21 for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:22 -0400 X-Originating-IP: 78.237.113.178 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 15F7D1C0004 for ; Sun, 5 Apr 2020 05:28:19 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v7 1/2] services: Allow modprobe to use "/etc/modprobe.d". Date: Sun, 5 Apr 2020 07:28:02 +0200 Message-Id: <20200405052803.15711-2-brice@waegenei.re> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200405052803.15711-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200405052803.15711-1-brice@waegenei.re> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.197 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a temporary crutch allowing 'modprobe' to load it's configuration from "/etc/modprobe.d". The definitive fix is contained in which need to go trough the core-upates branch as it rebuild over 2200 packages. * gnu/services.scm (%modprobe-wrapper): Set 'MODPROBE_OPTIONS' environment variable. --- gnu/services.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/services.scm b/gnu/services.scm index e7a3a95e43..1c39c779a7 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -579,6 +579,10 @@ ACTIVATION-SCRIPT-TYPE." #~(begin (setenv "LINUX_MODULE_DIRECTORY" "/run/booted-system/kernel/lib/modules") + ;; FIXME: Remove this crutch when the patch #40422, + ;; updating to kmod 27 is merged + (setenv "MODPROBE_OPTIONS" + "-C /etc/modprobe.d") (apply execl #$modprobe (cons #$modprobe (cdr (command-line)))))))) -- 2.26.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 01:28:30 2020 Received: (at submit) by debbugs.gnu.org; 5 Apr 2020 05:28:30 +0000 Received: from localhost ([127.0.0.1]:45077 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKxpd-00054d-P2 for submit@debbugs.gnu.org; Sun, 05 Apr 2020 01:28:30 -0400 Received: from lists.gnu.org ([209.51.188.17]:47498) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKxpc-00054S-AX for submit@debbugs.gnu.org; Sun, 05 Apr 2020 01:28:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43293) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jKxpa-00072t-Id for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:28 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jKxpX-0005RI-Sy for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:26 -0400 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:37771) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jKxpX-0005Qe-JV for guix-patches@gnu.org; Sun, 05 Apr 2020 01:28:23 -0400 X-Originating-IP: 78.237.113.178 Received: from localhost (luy13-1-78-237-113-178.fbx.proxad.net [78.237.113.178]) (Authenticated sender: brice@waegenei.re) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 76DF51BF203 for ; Sun, 5 Apr 2020 05:28:21 +0000 (UTC) From: Brice Waegeneire To: guix-patches@gnu.org Subject: [PATCH v7 2/2] gnu: Add kernel-module-loader-service. Date: Sun, 5 Apr 2020 07:28:03 +0200 Message-Id: <20200405052803.15711-3-brice@waegenei.re> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200405052803.15711-1-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200405052803.15711-1-brice@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.70.183.201 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Linux Services): Add a new subsection and document the new service and its configuration. * gnu/services/linux.scm (kernel-module-loader-service-type): New type. (kernel-module-loader-shepherd-service): New procedure. * gnu/tests/linux-modules.scm (module-loader-program): Procedure removed. (modules-loaded?-program): New procedure. (run-loadable-kernel-modules-test): 'module-loader-program' procedure replaced by the new one. [os]: Use 'kernel-module-loader-service'. --- doc/guix.texi | 37 +++++++++++++++++++++++++ gnu/services/linux.scm | 54 ++++++++++++++++++++++++++++++++++++- gnu/tests/linux-modules.scm | 33 ++++++++++++++--------- 3 files changed, 111 insertions(+), 13 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8cb85fe62c..bc5602474e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -76,6 +76,7 @@ Copyright @copyright{} 2020 Damien Cassou@* Copyright @copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* Copyright @copyright{} 2020 Naga Malleswari@* +Copyright @copyright{} 2020 Brice Waegeneire@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -25383,6 +25384,42 @@ notifications. @end table @end deftp +@cindex modprobe +@cindex kernel module loader +@subsubsection Kernel Module Loader Service + +The kernel module loader service allows one to load loadable kernel +modules at boot. This is especially useful for modules that don't +autoload and need to be manually loaded, as it's the case with +@code{ddcci}. + +@deffn {Scheme Variable} kernel-module-loader-service-type +The service type for loading loadable kernel modules at boot with +@command{modprobe}. Its value must be a list of strings representing +module names. For example loading the drivers provided by +@code{ddcci-driver-linux}, in debugging mode by passing some module +parameters, can be done as follow: + +@lisp +(use-modules (gnu) (gnu services)) +(use-package-modules linux) +(use-service-modules linux) + +(define ddcci-config + (plain-file "ddcci.conf" + "options ddcci dyndbg delay=120")) + +(operating-system + ... + (services (cons* (service kernel-module-loader-service-type + '("ddcci" "ddcci_backlight")) + (simple-service 'ddcci-config etc-service-type + (list `("modprobe.d/ddcci.conf" + ,ddcci-config))) + %base-services)) + (kernel-loadable-modules (list ddcci-driver-linux))) +@end lisp +@end deffn @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..536d5f8c76 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (gnu packages linux) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:export (earlyoom-configuration earlyoom-configuration? @@ -37,7 +40,9 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-service-type)) ;;; @@ -123,3 +128,50 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + + +;;; +;;; Kernel module loader. +;;; + +(define kernel-module-loader-shepherd-service + (match-lambda + ((and (? list? kernel-modules) ((? string?) ...)) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (requirement '(file-systems)) + (respawn? #f) + (one-shot? #t) + (modules `((srfi srfi-34) + (srfi srfi-35) + (rnrs io ports) + ,@%default-modules)) + (start + #~(lambda _ + (unless (null? '#$kernel-modules) + (if (file-exists? "/proc/sys/kernel/modprobe") + (let ((modprobe (call-with-input-file + "/proc/sys/kernel/modprobe" get-line))) + (guard (c ((message-condition? c) + (format (current-error-port) "~a~%" + (condition-message c)) + #f)) + (map (lambda (module) + (invoke/quiet modprobe "--" module)) + '#$kernel-modules))) + (begin (format (current-error-port) "error: ~a~%" + "Kernel is missing loadable module support.") + #f)))))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend append) + (default-value '()))) diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 39e11587c6..f1c4feb7a0 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze ;;; Copyright © 2020 Danny Milosavljevic +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,8 @@ (define-module (gnu tests linux-modules) #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services linux) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) @@ -37,25 +40,30 @@ ;;; ;;; Code: -(define* (module-loader-program os modules) - "Return an executable store item that, upon being evaluated, will dry-run -load MODULES." +(define* (modules-loaded?-program os modules) + "Return an executable store item that, upon being evaluated, will verify +that MODULES are actually loaded." (program-file "load-kernel-modules.scm" - (with-imported-modules (source-module-closure '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (for-each (lambda (module) - (invoke (string-append #$kmod "/bin/modprobe") "-n" "--" - module)) - '#$modules))))) + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 popen)) + (let* ((port (open-input-pipe (string-append #$kmod "/bin/lsmod"))) + (output (read-string port)) + (status (close-pipe port))) + (and-map (lambda (module) (string-contains output module)) + '#$modules))))) (define* (run-loadable-kernel-modules-test module-packages module-names) - "Run a test of an OS having MODULE-PACKAGES, and modprobe MODULE-NAMES." + "Run a test of an OS having MODULE-PACKAGES, and verify that MODULE-NAMES +are loaded in memory." (define os (marionette-operating-system (operating-system (inherit (simple-operating-system)) + (services (cons (service kernel-module-loader-service-type module-names) + (operating-system-user-services + (simple-operating-system)))) (kernel-loadable-modules module-packages)) #:imported-modules '((guix combinators)))) (define vm (virtual-machine os)) @@ -75,7 +83,8 @@ load MODULES." marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - (gexp->derivation "loadable-kernel-modules" (test (module-loader-program os module-names)))) + (gexp->derivation "loadable-kernel-modules" + (test (modules-loaded?-program os module-names)))) (define %test-loadable-kernel-modules-0 (system-test -- 2.26.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 03:06:12 2020 Received: (at 40274) by debbugs.gnu.org; 5 Apr 2020 07:06:12 +0000 Received: from localhost ([127.0.0.1]:45101 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKzMB-0002AK-OA for submit@debbugs.gnu.org; Sun, 05 Apr 2020 03:06:11 -0400 Received: from relay11.mail.gandi.net ([217.70.178.231]:38895) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKzM7-00029S-HA for 40274@debbugs.gnu.org; Sun, 05 Apr 2020 03:06:10 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay11.mail.gandi.net (Postfix) with ESMTPA id DA538100004; Sun, 5 Apr 2020 07:06:00 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Sun, 05 Apr 2020 07:06:00 +0000 From: Brice Waegeneire To: Danny Milosavljevic Subject: Re: [bug#40274] [PATCH v6 2/2] gnu: Add kernel-module-loader-service. In-Reply-To: <20200404231144.05552175@scratchpost.org> References: <20200328135908.2540-1-brice@waegenei.re> <20200404151732.20341-1-brice@waegenei.re> <20200404151732.20341-3-brice@waegenei.re> <20200404231004.0097cf70@scratchpost.org> <20200404231144.05552175@scratchpost.org> Message-ID: <7bd4926abb753f09593c8451906f88d2@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org, Guix-patches X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 2020-04-04 21:11, Danny Milosavljevic wrote: > On Sat, 4 Apr 2020 23:10:04 +0200 > Danny Milosavljevic wrote: > >> On Sat, 4 Apr 2020 17:17:32 +0200 >> Brice Waegeneire wrote: >> >> > get-line >> >> Missing (ice-9 rdelim) ? > > I meant (ice-9 textual-ports) The tests reported a warning when (ice-9 textual-ports) was imported, using (rnrs io ports) instead didn't. From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 03:19:59 2020 Received: (at 40274) by debbugs.gnu.org; 5 Apr 2020 07:19:59 +0000 Received: from localhost ([127.0.0.1]:45118 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKzZX-0004wH-Jf for submit@debbugs.gnu.org; Sun, 05 Apr 2020 03:19:59 -0400 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:57477) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jKzZW-0004vn-2O for 40274@debbugs.gnu.org; Sun, 05 Apr 2020 03:19:58 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay3-d.mail.gandi.net (Postfix) with ESMTPA id 39EB660003; Sun, 5 Apr 2020 07:19:50 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Sun, 05 Apr 2020 07:19:50 +0000 From: Brice Waegeneire To: Danny Milosavljevic Subject: Re: [bug#40274] [PATCH v5] gnu: Add kernel-module-loader-service. In-Reply-To: <20200404203128.0cc37fca@scratchpost.org> References: <20200328135908.2540-1-brice@waegenei.re> <20200402123712.338-1-brice@waegenei.re> <20200402155640.121e4879@scratchpost.org> <2b32956fc10fd3012388722e1b00ce21@waegenei.re> <20200403122044.2f9e2552@scratchpost.org> <9ed8ed843f7a66dc306679885a641514@waegenei.re> <20200404203128.0cc37fca@scratchpost.org> Message-ID: <791aa8961859e013e713f5f47f11ca77@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: ludo@gnu.org, 40274@debbugs.gnu.org, Guix-patches X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 2020-04-04 18:31, Danny Milosavljevic wrote: >> But like you noted it would >> be specific >> to loadable modules and not built-in ones since `kernel-arguments` is >> just an OS >> field, which AFAIK can't be influenced by a service. > > There's no one stopping us from extending > operating-system-kernel-arguments, > which already exists as a helper procedure, to also call > operating-system-services and check those for the command line > arguments > to add (see gnu/system.scm). Thank you for pointing this to me, I didn't thought it was working this way. So writing such a service is totally doable, interesting. From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 06:06:53 2020 Received: (at 40274) by debbugs.gnu.org; 5 Apr 2020 10:06:53 +0000 Received: from localhost ([127.0.0.1]:45220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jL2B3-0007ts-F5 for submit@debbugs.gnu.org; Sun, 05 Apr 2020 06:06:53 -0400 Received: from pelzflorian.de ([5.45.111.108]:50766 helo=mail.pelzflorian.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jL2B0-0007tZ-11 for 40274@debbugs.gnu.org; Sun, 05 Apr 2020 06:06:51 -0400 Received: from pelzflorian.localdomain (unknown [5.45.111.108]) by mail.pelzflorian.de (Postfix) with ESMTPSA id 4C79136057E; Sun, 5 Apr 2020 12:06:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=pelzflorian.de; s=mail; t=1586081208; bh=QfPTNf7Q7pz4lbEexW2FBTugEGEx4wrsoFyeO6E50Cc=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=tD5O1etzoNVSxY5a623ModdpYvU+F/P0NyIN5D3IqoL8bRQ5eUsNLkExMRUVHCtGm CTGxuug7dl5ylBX3eM9SMdIpEQ5fVlNkqrtBrXGGY1n33VVqgXs8Ws0pqX4mqMT33l KQZln5ulNiJuS3g7DDXK03mQyS+1tsrM7peq2lLo= Date: Sun, 5 Apr 2020 12:06:46 +0200 From: "pelzflorian (Florian Pelz)" To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v7 2/2] gnu: Add kernel-module-loader-service. Message-ID: <20200405100646.glyvza7cy4eeomr7@pelzflorian.localdomain> References: <20200328135908.2540-1-brice@waegenei.re> <20200405052803.15711-1-brice@waegenei.re> <20200405052803.15711-3-brice@waegenei.re> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200405052803.15711-3-brice@waegenei.re> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Apr 05, 2020 at 07:28:03AM +0200, Brice Waegeneire wrote: > […] I can use kernel-module-loader v6 without modifications just fine for uvesafb. Thank you! Regards, Florian From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 07:10:20 2020 Received: (at 40274-done) by debbugs.gnu.org; 5 Apr 2020 11:10:20 +0000 Received: from localhost ([127.0.0.1]:45272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jL3AS-00036Y-Kg for submit@debbugs.gnu.org; Sun, 05 Apr 2020 07:10:20 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:41856) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jL3AR-00036K-JM for 40274-done@debbugs.gnu.org; Sun, 05 Apr 2020 07:10:20 -0400 Received: from localhost (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id D22A93362976; Sun, 5 Apr 2020 13:10:17 +0200 (CEST) Date: Sun, 5 Apr 2020 13:10:16 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v7 2/2] gnu: Add kernel-module-loader-service. Message-ID: <20200405131016.1c30a6c0@scratchpost.org> In-Reply-To: <20200405052803.15711-3-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200405052803.15711-1-brice@waegenei.re> <20200405052803.15711-3-brice@waegenei.re> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/Tb3TenU/YbvB__xFAW9ivfA"; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274-done Cc: 40274-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/Tb3TenU/YbvB__xFAW9ivfA Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi Brice, I've pushed a variant of this to guix master as commit 044d1478c9a63a64547c9cc320008f8d8fbf6791 with the following changes: * Massively over-engineered the tests * Made the shepherd conditional more readable Thanks! --Sig_/Tb3TenU/YbvB__xFAW9ivfA Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6JvJgACgkQ5xo1VCww uqVM9Af/ZV3vn3kdRt6YWEmCuc+X9uU2yon2KsmCj2mJolWCT6sXgB46UKnTL0Vg usXmlOf0rTv3XPiw0+/tw7sty5BunyvMwqUCIfup4xNuU1UU2kYBhDbigDx88Riz b7vBkhD5myNiyIdxqnww+iOaEjS4QzADFbJGBgxBze393IeagyjQnO40EcwQjXR0 S9wSGktKY6YBGUZt38X4soXtVnxsNLTa0VFuTFfBDSn7Jtb1rT9LpJlNMYU8tbGN x3NnSPlynv1Oyo7czjhdTAX5AHTLjdxLPSGRmJRqy5RimMaxgpSS8uqU1gr2gghr 3Reh3VQh7Z9Ar4miUe2/5APy1MthaA== =YJRC -----END PGP SIGNATURE----- --Sig_/Tb3TenU/YbvB__xFAW9ivfA-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 07:11:51 2020 Received: (at 40274) by debbugs.gnu.org; 5 Apr 2020 11:11:51 +0000 Received: from localhost ([127.0.0.1]:45279 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jL3Bu-0003C3-Uz for submit@debbugs.gnu.org; Sun, 05 Apr 2020 07:11:51 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:41982) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jL3Bt-0003Bq-D6 for 40274@debbugs.gnu.org; Sun, 05 Apr 2020 07:11:49 -0400 Received: from localhost (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id C2A7D3362976; Sun, 5 Apr 2020 13:11:48 +0200 (CEST) Date: Sun, 5 Apr 2020 13:11:48 +0200 From: Danny Milosavljevic To: Brice Waegeneire Subject: Re: [bug#40274] [PATCH v7 1/2] services: Allow modprobe to use "/etc/modprobe.d". Message-ID: <20200405131148.2eab72fb@scratchpost.org> In-Reply-To: <20200405052803.15711-2-brice@waegenei.re> References: <20200328135908.2540-1-brice@waegenei.re> <20200405052803.15711-1-brice@waegenei.re> <20200405052803.15711-2-brice@waegenei.re> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/yg6N4F6EwSLCRhKytmYze42"; protocol="application/pgp-signature"; micalg=pgp-sha256 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --Sig_/yg6N4F6EwSLCRhKytmYze42 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Pushed to guix master as commit 8c88e242292db9b35b4ae6ad788a0f8f3c94bb53. I think core-updates will be merged to master pretty soon anyway, but the question is whether we want to update it in core-updates before that, given how many dependencies that has (WTF! What's up with that?). --Sig_/yg6N4F6EwSLCRhKytmYze42 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl6JvPQACgkQ5xo1VCww uqWImAf8CLubE2tYDe0XbISiOgoGL4mLXVf9uhGalkJgQQ/MJdtgXEG21bJCOl5t FCbXAsTyY+3BE0D+W1cSS/l9wIV+DoR5u4WWLrZIoMYjf2M33ixKC/1mKqeCQzdH 8FXMjUEsz8fyAsOwhww+Myio9nS+xRd3rHK4jDjGQ8/Ct1cBujLoG1VZ9stLwhpg 3cnz0KFDVsfiFcJ2HFjK6dVDFuH3GmnSlaR/+dAQW5LqhWr1FE1IcOGJB1XtWClN XpVqq6I6wDhQN1/M2PWCPneDRxPnc9o2+rTqP/FVK6wJTYLGrccGoLskTQ9fjPOE L6GKapURaO33i9n4fTAPIupEGPvaKw== =qjWF -----END PGP SIGNATURE----- --Sig_/yg6N4F6EwSLCRhKytmYze42-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 05 08:38:24 2020 Received: (at 40274) by debbugs.gnu.org; 5 Apr 2020 12:38:24 +0000 Received: from localhost ([127.0.0.1]:45336 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jL4Xf-0001Yu-P6 for submit@debbugs.gnu.org; Sun, 05 Apr 2020 08:38:23 -0400 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:45541) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jL4Xd-0001YN-88 for 40274@debbugs.gnu.org; Sun, 05 Apr 2020 08:38:22 -0400 Received: from webmail.gandi.net (webmail18.sd4.0x35.net [10.200.201.18]) (Authenticated sender: brice@waegenei.re) by relay5-d.mail.gandi.net (Postfix) with ESMTPA id 9F7E61C0004; Sun, 5 Apr 2020 12:38:14 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Sun, 05 Apr 2020 12:38:14 +0000 From: Brice Waegeneire To: Danny Milosavljevic Subject: Re: [bug#40274] [PATCH v7 1/2] services: Allow modprobe to use "/etc/modprobe.d". In-Reply-To: <20200405131148.2eab72fb@scratchpost.org> References: <20200328135908.2540-1-brice@waegenei.re> <20200405052803.15711-1-brice@waegenei.re> <20200405052803.15711-2-brice@waegenei.re> <20200405131148.2eab72fb@scratchpost.org> Message-ID: <02eceeabef1367df39b19f0174ea5dcd@waegenei.re> X-Sender: brice@waegenei.re User-Agent: Roundcube Webmail/1.3.8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 40274 Cc: 40274@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On 2020-04-05 11:11, Danny Milosavljevic wrote: > Pushed to guix master as commit > 8c88e242292db9b35b4ae6ad788a0f8f3c94bb53. > > I think core-updates will be merged to master pretty soon anyway, but > the > question is whether we want to update it in core-updates before that, > given > how many dependencies that has (WTF! What's up with that?). Thank you for helping with that! I thought that core-updates was frozen which would delay #40422 for some time. I wrote the crutch patch to avoid having to wait before supporting module arguments, especially since Florian already had a need for it. From unknown Wed Jun 18 00:28:29 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 04 May 2020 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator