diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-07-29 18:45:18 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-07-29 18:50:28 +0200 |
commit | 99b78ba49872bf8a7023bc1ae50e9e0995d0267d (patch) | |
tree | 4c4e7e9c66e30da344c0931e267a3e530441be36 /gnu/system | |
parent | fcd068e984078ab74c6842af2525bf88096cd262 (diff) | |
download | guix-99b78ba49872bf8a7023bc1ae50e9e0995d0267d.tar.gz guix-99b78ba49872bf8a7023bc1ae50e9e0995d0267d.zip |
linux-initrd: Report only missing modules, not all needed modules.
Previously the warning would list all the required modules rather than
just those that are missing.
* gnu/system/mapped-devices.scm (check-device-initrd-modules): Compute
'missing' and report it.
Diffstat (limited to 'gnu/system')
-rw-r--r-- | gnu/system/mapped-devices.scm | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index 384b1aaf7d..af73dc608c 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -128,15 +128,16 @@ DEVICE must be a \"/dev\" file name." (const #f))) (when aliases - (let ((modules (delete-duplicates - (append-map (cut matching-modules <> aliases) - (device-module-aliases device)))) + (let* ((modules (delete-duplicates + (append-map (cut matching-modules <> aliases) + (device-module-aliases device)))) - ;; Module names (not file names) are supposed to use underscores - ;; instead of hyphens. MODULES is a list of module names, whereas - ;; LINUX-MODULES is file names without '.ko', so normalize them. - (provided (map file-name->module-name linux-modules))) - (unless (every (cut member <> provided) modules) + ;; Module names (not file names) are supposed to use underscores + ;; instead of hyphens. MODULES is a list of module names, whereas + ;; LINUX-MODULES is file names without '.ko', so normalize them. + (provided (map file-name->module-name linux-modules)) + (missing (remove (cut member <> provided) modules))) + (unless (null? missing) ;; Note: What we suggest here is a list of module names (e.g., ;; "usb_storage"), not file names (e.g., "usb-storage.ko"). This is ;; OK because we have machinery that accepts both the hyphen and the @@ -145,7 +146,7 @@ DEVICE must be a \"/dev\" file name." (&message (message (format #f (G_ "you may need these modules \ in the initrd for ~a:~{ ~a~}") - device modules))) + device missing))) (&fix-hint (hint (format #f (G_ "Try adding them to the @code{initrd-modules} field of your @code{operating-system} declaration, along @@ -157,7 +158,7 @@ these lines: (initrd-modules (append (list~{ ~s~}) %base-initrd-modules))) @end example\n") - modules))) + missing))) (&error-location (location (source-properties->location location))))))))) |