From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50117) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eqlt0-0006bf-Tn for guix-patches@gnu.org; Tue, 27 Feb 2018 15:30:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eqlsx-00068A-72 for guix-patches@gnu.org; Tue, 27 Feb 2018 15:30:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:56319) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eqlsw-00067t-QH for guix-patches@gnu.org; Tue, 27 Feb 2018 15:30:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eqlsw-00085T-CY for guix-patches@gnu.org; Tue, 27 Feb 2018 15:30:02 -0500 Subject: [bug#30629] [PATCH 0/5] Detect missing modules in the initrd Resent-Message-ID: Date: Tue, 27 Feb 2018 22:29:51 +0100 From: Danny Milosavljevic Message-ID: <20180227222632.42bcf52c@scratchpost.org> In-Reply-To: <20180227141720.12513-1-ludo@gnu.org> References: <20180227141720.12513-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/BuwwDUYzF/x3Z_HYg_V=eu=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 30629@debbugs.gnu.org --MP_/BuwwDUYzF/x3Z_HYg_V=eu= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi Ludo, > 1. =E2=80=98device-module-aliases=E2=80=99 returns the empty list for /= dev/dm-0, which > is a LUKS device on my laptop. I=E2=80=99m not sure what it would t= ake to > have it return =E2=80=9Cdm-crypt=E2=80=9D, etc. Same for RAID devic= es. Hmm... I don't know either. (same happens on my machine) > 2. Let=E2=80=99s assume you have: (initrd-modules '("a")). =E2=80=98gu= ix system=E2=80=99 > could report that module =E2=80=9Cb=E2=80=9D is missing, even if =E2= =80=9Cb=E2=80=9D is actually a > dependency of =E2=80=9Ca=E2=80=9D and will therefore be automaticall= y included in > the initrd. I think that=E2=80=99s an acceptable limitation (fixing= it is > non-trivial since we=E2=80=99d ideally need to build the target kern= el so > we can inspect its modules and determine their closure.) I think that's okay. > You=E2=80=99re welcome to give it a try. In particular it=E2=80=99d be g= reat if you > could check that =E2=80=98device-module-aliases=E2=80=99 returns the righ= t thing on your > machine, as I shown in the example above. scheme@(guile-user)> (device-module-aliases "/dev/sda5") $1 =3D ("scsi:t-0x00" "pci:v00008086d00009C03sv000017AAsd00002214bc01sc06i0= 1") scheme@(guile-user)> (device-module-aliases "/dev/sda1") $2 =3D ("scsi:t-0x00" "pci:v00008086d00009C03sv000017AAsd00002214bc01sc06i0= 1") > Note that, in addition to that, we could also have a tool to generate a > template =E2=80=98operating-system=E2=80=99 declaration. Let=E2=80=99s s= ay: >=20 > guix system template desktop encrypted-root >=20 > would generate a config based on the desktop config but with the right > =E2=80=98initrd-modules=E2=80=99. Sounds like a good idea! P.S. I just integrated my patchset (v5) and your patchset and have a workin= g system with pure guile initrd (modprobe is in guile, too). I ran basic system tes= ts and also rebooted my machine with it :) Attached is the integration patch, so let's just review the patchsets as normal and then push both and then push the integration patch. I'm not sure about the module resolution order, first use the aliases or fi= rst use the real module files? The Linux modules should be much more under control then... (zip file attached for convenience, but please ignore duplicates - it conta= ins the same patches as in the other E-Mails already - except for patch context) --MP_/BuwwDUYzF/x3Z_HYg_V=eu= Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0013-linux-initrd-Make-modprobe-pure-Guile.patch >From ffd464d540943e221636f7c63bcd22f4370803ae Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 27 Feb 2018 21:25:27 +0100 Subject: [FIXME 13/13] linux-initrd: Make modprobe pure-Guile. Tags: patch * gnu/build/linux-initrd.scm (build-initrd): Replace kmod by modprobe. * gnu/system/linux-initrd.scm (%modprobe-exp): New variable. (expression->initrd): Delete parameter "kmod". Use the above. (raw-initrd): Replace kmod's default by "kmod". (base-initrd): Replace kmod's default by "kmod". Add LINUX-MODULES parameter again because it fell out before (?). --- gnu/build/linux-initrd.scm | 7 +++--- gnu/system/linux-initrd.scm | 57 ++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 55 insertions(+), 9 deletions(-) diff --git a/gnu/build/linux-initrd.scm b/gnu/build/linux-initrd.scm index 6356007df..f54d7102d 100644 --- a/gnu/build/linux-initrd.scm +++ b/gnu/build/linux-initrd.scm @@ -107,7 +107,7 @@ This is similar to what 'compiled-file-name' in (system base compile) does." (define* (build-initrd output #:key - guile init kmod linux-module-directory + guile init modprobe linux-module-directory (references-graphs '()) (gzip "gzip")) "Write an initial RAM disk (initrd) to OUTPUT. The initrd starts the script @@ -132,9 +132,10 @@ REFERENCES-GRAPHS." (readlink "proc/self/exe") ;; Make modprobe available as /sbin/modprobe so the kernel finds it. - (when kmod + (when modprobe (mkdir-p "sbin") - (symlink (string-append kmod "/bin/modprobe") "sbin/modprobe")) + (symlink modprobe "sbin/modprobe") + (compile-to-cache "sbin/modprobe")) ;; Make modules available as /lib/modules so modprobe finds them. (mkdir-p "lib") diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 1cb73b310..0e8ce3590 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -56,12 +56,51 @@ ;;; ;;; Code: +(define* (%modprobe-exp linux-module-directory) + (with-imported-modules (source-module-closure + '((gnu build linux-modules))) + #~(begin + (use-modules (gnu build linux-modules) (ice-9 getopt-long) + (ice-9 match) (srfi srfi-1)) + (define (lookup module) + (let* ((name (ensure-dot-ko module)) + (linux-release-module-directory + (string-append "/lib/modules/" (utsname:release (uname)) + "/")) + (path (string-append linux-release-module-directory name))) + (if (file-exists? path) + path + ;; FIXME: Make safe. + (match (delete-duplicates (matching-modules module + (known-module-aliases + (string-append linux-release-module-directory + "modules.alias")))) + (() #f) + ((x-name) (lookup x-name)) + ((_ ...) + (error "several modules by that name" + name)))))) + (define option-spec + '((quiet (single-char #\q) (value #f)))) + (define options (getopt-long (command-line) option-spec)) + (for-each + (lambda (option) + (match option + ((() modules ...) + (for-each + (lambda (module) + (let ((file-name (lookup module))) + (when file-name + (load-linux-module* file-name + #:lookup-module lookup)))) + modules)) + (_ #t))) + options)))) (define* (expression->initrd exp #:key (guile %guile-static-stripped) (gzip gzip) - kmod linux-module-directory (name "guile-initrd") (system (%current-system))) @@ -75,6 +114,10 @@ the derivations referenced by EXP are automatically copied to the initrd." (define init (program-file "init" exp #:guile guile)) + (define modprobe + (program-file "modprobe" + (%modprobe-exp linux-module-directory) #:guile guile)) + (define builder (with-imported-modules (source-module-closure '((gnu build linux-initrd))) @@ -98,14 +141,16 @@ the derivations referenced by EXP are automatically copied to the initrd." (build-initrd (string-append #$output "/initrd") #:guile #$guile #:init #$init - #:kmod #$kmod + #:modprobe #$modprobe #:linux-module-directory #$linux-module-directory - ;; Copy everything INIT refers to into the initrd. - #:references-graphs '("closure") + ;; Copy everything INIT and MODPROBE refer to into the initrd. + #:references-graphs '("init-closure" + "modprobe-closure") #:gzip (string-append #$gzip "/bin/gzip"))))) (gexp->derivation name builder - #:references-graphs `(("closure" ,init)))) + #:references-graphs `(("init-closure" ,init) + ("modprobe-closure" ,modprobe)))) (define (flat-linux-module-directory linux modules kmod) "Return a flat directory containing the Linux kernel modules listed in @@ -247,7 +292,6 @@ upon error." #:qemu-guest-networking? #$qemu-networking? #:volatile-root? '#$volatile-root? #:on-error '#$on-error))) - #:kmod kmod #:linux-module-directory kodir #:name "raw-initrd")) @@ -321,6 +365,7 @@ FILE-SYSTEMS." (define* (base-initrd file-systems #:key (linux linux-libre) + (linux-modules '()) (kmod kmod-minimal/static) (mapped-devices '()) qemu-networking? --MP_/BuwwDUYzF/x3Z_HYg_V=eu= Content-Type: application/zip Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=a.zip 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 AAABAAAApIFcGgAAMDAwNC1saW51eC1ib290LUxvYWQta2VybmVsLW1vZHVsZXMtb25seS13aGVu LXRoZS1oYXJkd2FyLnBhdGNoVVQFAAO2yJVadXgLAAEEWWsAAATmAwAAUEsBAh4DFAAAAAgAA7Fb TBV6x1TYBQAA8g4AAD8AGAAAAAAAAQAAAKSBlx8AADAwMDUtdm0tQWxsb3ctcWVtdS1pbWFnZS1i dWlsZGVyLXRvLWxvYWQtTGludXgta2VybmVsLW1vZC5wYXRjaFVUBQADtsiVWnV4CwABBFlrAAAE 5gMAAFBLAQIeAxQAAAAIAAOxW0wGsrnvFwMAAOwGAAA/ABgAAAAAAAEAAACkgeglAAAwMDA2LXZt LU1ha2UtdGhlLXZpcnRpby1ibGstaXMtdW5pcXVlbHktaWRlbnRpZnlhYmxlLWluLXMucGF0Y2hV VAUAA7bIlVp1eAsAAQRZawAABOYDAABQSwECHgMUAAAACAADsVtMeXIJ/5EDAACyCAAAPwAYAAAA AAABAAAApIF4KQAAMDAwNy1saW51eC1ib290LUNhbGwtbWFrZS1zdGF0aWMtZGV2aWNlLW5vZGVz LW11Y2gtZWFybGllLnBhdGNoVVQFAAO2yJVadXgLAAEEWWsAAATmAwAAUEsBAh4DFAAAAAgAA7Fb TBV9l5upCAAACR0AABgAGAAAAAAAAQAAAKSBgi0AADAwMDgtQWRkLWd1aXgtZ2xvYi5wYXRjaFVU BQADtsiVWnV4CwABBFlrAAAE5gMAAFBLAQIeAxQAAAAIAAOxW0zxG+Xr9AoAAGceAAA/ABgAAAAA AAEAAACkgX02AAAwMDA5LWxpbnV4LW1vZHVsZXMtQWRkLWRldmljZS1tb2R1bGUtYWxpYXNlcy1h bmQtcmVsYXRlZC0ucGF0Y2hVVAUAA7bIlVp1eAsAAQRZawAABOYDAABQSwECHgMUAAAACAADsVtM 6GOtrX8FAABtDwAAOQAYAAAAAAABAAAApIHqQQAAMDAxMC1saW51eC1pbml0cmQtU2VwYXJhdGUt ZmlsZS1zeXN0ZW0tbW9kdWxlLWxvZ2ljLnBhdGNoVVQFAAO2yJVadXgLAAEEWWsAAATmAwAAUEsB Ah4DFAAAAAgAA7FbTMAv5U/uDQAA1yoAACoAGAAAAAAAAQAAAKSB3EcAADAwMTEtc3lzdGVtLUFk ZC1pbml0cmQtbW9kdWxlcy1maWVsZC5wYXRjaFVUBQADtsiVWnV4CwABBFlrAAAE5gMAAFBLAQIe AxQAAAAIAAOxW0xpNbed8gkAAMUhAAA/ABgAAAAAAAEAAACkgS5WAAAwMDEyLWd1aXgtc3lzdGVt LUNoZWNrLWZvci10aGUtbGFjay1vZi1tb2R1bGVzLWluLXRoZS1pbmkucGF0Y2hVVAUAA7bIlVp1 eAsAAQRZawAABOYDAABQSwECHgMUAAAACAADsVtMONIGnRwIAAD6GAAAMAAYAAAAAAABAAAApIGZ YAAAMDAxMy1saW51eC1pbml0cmQtTWFrZS1tb2Rwcm9iZS1wdXJlLUd1aWxlLnBhdGNoVVQFAAO2 yJVadXgLAAEEWWsAAATmAwAAUEsFBgAAAAAOAA4AgAYAAB9pAAAAAA== --MP_/BuwwDUYzF/x3Z_HYg_V=eu=--