summaryrefslogtreecommitdiff
path: root/gnu/build/linux-modules.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-02-21 12:49:27 +0100
committerLudovic Courtès <ludo@gnu.org>2016-02-21 13:04:10 +0100
commit5c7dd5ac3ae20da352b953cf8bb55baadd1274e1 (patch)
tree9115c79cdf50c517cd41bbaba25eb42a3805feba /gnu/build/linux-modules.scm
parent57a41bfb3c84d72f95269dde45446b1f2869c37e (diff)
downloadgnu-guix-5c7dd5ac3ae20da352b953cf8bb55baadd1274e1.tar
gnu-guix-5c7dd5ac3ae20da352b953cf8bb55baadd1274e1.tar.gz
linux-modules: Use normalized module names for 'modprobe.blacklist'.
* gnu/build/linux-modules.scm (normalize-module-name): New procedure. (file-name->module-name): Use it. (module-black-list): Expound docstring.
Diffstat (limited to 'gnu/build/linux-modules.scm')
-rw-r--r--gnu/build/linux-modules.scm20
1 files changed, 16 insertions, 4 deletions
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm
index bbe1a74d85..d7feb3a080 100644
--- a/gnu/build/linux-modules.scm
+++ b/gnu/build/linux-modules.scm
@@ -96,10 +96,20 @@ contains module names, not actual file names."
name
(dot-ko name)))
+(define (normalize-module-name module)
+ "Return the \"canonical\" name for MODULE, replacing hyphens with
+underscores."
+ ;; See 'modname_normalize' in libkmod.
+ (string-map (lambda (chr)
+ (case chr
+ ((#\-) #\_)
+ (else chr)))
+ module))
+
(define (file-name->module-name file)
- "Return the module name corresponding to FILE, stripping the trailing '.ko',
-etc."
- (basename file ".ko"))
+ "Return the module name corresponding to FILE, stripping the trailing '.ko'
+and normalizing it."
+ (normalize-module-name (basename file ".ko")))
(define* (recursive-module-dependencies files
#:key (lookup-module dot-ko))
@@ -138,7 +148,9 @@ LOOKUP-MODULE to the module name."
(define (module-black-list)
"Return the black list of modules that must not be loaded. This black list
is specified using 'modprobe.blacklist=MODULE1,MODULE2,...' on the kernel
-command line; it is honored by libkmod."
+command line; it is honored by libkmod for users that pass
+'KMOD_PROBE_APPLY_BLACKLIST', which includes 'modprobe --use-blacklist' and
+udev."
(define parameter
"modprobe.blacklist=")