From patchwork Sat Jul 4 18:54:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brice Waegeneire X-Patchwork-Id: 23052 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id D6AB127BBE4; Sat, 4 Jul 2020 19:55:17 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 0C26727BBE5 for ; Sat, 4 Jul 2020 19:55:12 +0100 (BST) Received: from localhost ([::1]:46854 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jrnJf-0006dT-H9 for patchwork@mira.cbaines.net; Sat, 04 Jul 2020 14:55:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43964) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jrnJX-0006aC-KO for guix-patches@gnu.org; Sat, 04 Jul 2020 14:55:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:48091) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jrnJX-0006qI-B7 for guix-patches@gnu.org; Sat, 04 Jul 2020 14:55:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jrnJX-0005HL-AW for guix-patches@gnu.org; Sat, 04 Jul 2020 14:55:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#42193] [WIP 5/6] WIP services: Add kernel-arguments-service-type. Resent-From: Brice Waegeneire Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 04 Jul 2020 18:55:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42193 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 42193@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.159388888520223 (code B ref -1); Sat, 04 Jul 2020 18:55:03 +0000 Received: (at submit) by debbugs.gnu.org; 4 Jul 2020 18:54:45 +0000 Received: from localhost ([127.0.0.1]:59627 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jrnJE-0005G1-Iw for submit@debbugs.gnu.org; Sat, 04 Jul 2020 14:54:44 -0400 Received: from lists.gnu.org ([209.51.188.17]:45504) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jrnJC-0005FP-OA for submit@debbugs.gnu.org; Sat, 04 Jul 2020 14:54:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43928) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jrnJC-0006TR-Fj for guix-patches@gnu.org; Sat, 04 Jul 2020 14:54:42 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:50675) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jrnJA-0006nX-9R for guix-patches@gnu.org; Sat, 04 Jul 2020 14:54:42 -0400 X-Originating-IP: 176.181.186.101 Received: from localhost (i15-les02-ntr-176-181-186-101.sfr.lns.abo.bbox.fr [176.181.186.101]) (Authenticated sender: brice@waegenei.re) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 086E7E0007 for ; Sat, 4 Jul 2020 18:54:38 +0000 (UTC) From: Brice Waegeneire Date: Sat, 4 Jul 2020 20:54:30 +0200 Message-Id: <20200704185431.13739-6-brice@waegenei.re> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200704185234.12571-1-brice@waegenei.re> References: <20200704185234.12571-1-brice@waegenei.re> MIME-Version: 1.0 Received-SPF: pass client-ip=217.70.183.196; envelope-from=brice@waegenei.re; helo=relay4-d.mail.gandi.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/04 14:54:36 X-ACL-Warn: Detected OS = Linux 3.11 and newer X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- gnu/services.scm | 14 ++++++++++++++ gnu/system.scm | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/gnu/services.scm b/gnu/services.scm index 7df9bf9d46..7cf71ae97a 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -538,6 +538,20 @@ possible (that is if there's a LINUX keyword argument in the build system)." (kernel kernel) ;the kernel package to use (packages (append packages additional-packages)))))))) + +;;; +;;; Kernel arguments. +;;; + +;; (define kernel-arguments-service-type +;; (service-type (name 'kernel-arguments) +;; (description "Set the kernel arguments.") +;; (extensions +;; (list (service-extension system-service-type +;; kernel-arguments->profile-entry))) +;; (compose concatenate) +;; (extend append))) + ;;; ;;; Cleanup. diff --git a/gnu/system.scm b/gnu/system.scm index ba9eeb66b8..805aa2ab01 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -56,6 +56,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages firmware) #:use-module (gnu services) + #:use-module (gnu services linux) #:use-module (gnu services shepherd) #:use-module (gnu services base) #:use-module (gnu services linux) @@ -258,11 +259,37 @@ (sudoers-file operating-system-sudoers-file ; file-like (default %sudoers-specification))) +(define (operating-system-modules-kernel-arguments os) + "Return the kernel arguments for builtin modules specified in + from OS." + (let* ((kernel-module-configuration-service + (find (lambda (service) + (eq? (service-kind service) + kernel-module-configuration-service-type)) + (operating-system-user-services os))) + (modules (if kernel-module-configuration-service + (service-value kernel-module-configuration-service) + '()))) + (display kernel-module-configuration-service) + (display (concatenate + (filter-map (lambda (module) + (if (kernel-module-is-builtin? module) + (kernel-module->kernel-arguments module) + #f)) + modules))) + (concatenate + (filter-map (lambda (module) + (if (kernel-module-is-builtin? module) + (kernel-module->kernel-arguments module) + #f)) + modules)))) + (define (operating-system-kernel-arguments os root-device) "Return all the kernel arguments, including the ones not specified directly by the user." (append (bootable-kernel-arguments os root-device) - (operating-system-user-kernel-arguments os))) + (operating-system-user-kernel-arguments os) + (operating-system-modules-kernel-arguments os))) ;;; @@ -512,6 +539,7 @@ OS." (file-append (operating-system-kernel os) "/" (system-linux-image-file-name)))) +;; TODO Migrate to KMCS (define %default-modprobe-blacklist ;; List of kernel modules to blacklist by default. '("usbmouse" ;races with bcm5974, see @@ -569,6 +597,11 @@ bookkeeping." (kernel-profile-configuration (kernel (operating-system-kernel os)) (packages (operating-system-kernel-loadable-modules os)))) + ;; (service kernel-arguments-service-type + ;; (kernel-arguments-configuration + ;; (root (operating-system-root-file-system os)) + ;; (bootloader (operating-system-bootloader os)) + ;; (parameters "TODO"))) %boot-service ;; %SHEPHERD-ROOT-SERVICE must come last so that the gexp that @@ -1232,7 +1265,9 @@ such as '--root' and '--load' to ." (kernel-arguments (if system-kernel-arguments? (operating-system-kernel-arguments os root-device) - (operating-system-user-kernel-arguments os))) + (append + (operating-system-user-kernel-arguments os) + (operating-system-modules-kernel-arguments os)))) (initrd initrd) (multiboot-modules multiboot-modules) (bootloader-name bootloader-name)