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.
This commit is contained in:
Ludovic Courtès 2016-02-21 12:49:27 +01:00
parent 57a41bfb3c
commit 5c7dd5ac3a
1 changed files with 16 additions and 4 deletions

View File

@ -96,10 +96,20 @@ contains module names, not actual file names."
name name
(dot-ko 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) (define (file-name->module-name file)
"Return the module name corresponding to FILE, stripping the trailing '.ko', "Return the module name corresponding to FILE, stripping the trailing '.ko'
etc." and normalizing it."
(basename file ".ko")) (normalize-module-name (basename file ".ko")))
(define* (recursive-module-dependencies files (define* (recursive-module-dependencies files
#:key (lookup-module dot-ko)) #:key (lookup-module dot-ko))
@ -138,7 +148,9 @@ LOOKUP-MODULE to the module name."
(define (module-black-list) (define (module-black-list)
"Return the black list of modules that must not be loaded. This 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 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 (define parameter
"modprobe.blacklist=") "modprobe.blacklist=")