summaryrefslogtreecommitdiff
path: root/gnu/services/linux.scm
diff options
context:
space:
mode:
authorBrice Waegeneire <brice@waegenei.re>2020-07-04 20:54:29 +0200
committerDanny Milosavljevic <dannym@scratchpost.org>2021-01-06 19:18:58 +0100
commit3d3185b54448cb44fffc1badc8c1cf51bb76585d (patch)
treef1bde7aeafec91b81279bd6a2a6c108e2c2ee624 /gnu/services/linux.scm
parentff1a9f0d17e966746ab84ebf26e1f7e196a2bf12 (diff)
services: kernel-module-loader: Return a single 'shepherd-service'.
* gnu/services/linux.scm (kernel-module-loader-shepherd-service): Return a 'shepherd-service' instead of a list of it. (kernel-module-loader-service-type): Adjust it. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
Diffstat (limited to 'gnu/services/linux.scm')
-rw-r--r--gnu/services/linux.scm59
1 files changed, 29 insertions, 30 deletions
diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm
index 72c7779596c..1046a7e0c2d 100644
--- a/gnu/services/linux.scm
+++ b/gnu/services/linux.scm
@@ -147,35 +147,34 @@ representation."
147(define kernel-module-loader-shepherd-service 147(define kernel-module-loader-shepherd-service
148 (match-lambda 148 (match-lambda
149 ((and (? list? kernel-modules) ((? string?) ...)) 149 ((and (? list? kernel-modules) ((? string?) ...))
150 (list 150 (shepherd-service
151 (shepherd-service 151 (documentation "Load kernel modules.")
152 (documentation "Load kernel modules.") 152 (provision '(kernel-module-loader))
153 (provision '(kernel-module-loader)) 153 (requirement '(file-systems))
154 (requirement '(file-systems)) 154 (one-shot? #t)
155 (one-shot? #t) 155 (modules `((srfi srfi-1)
156 (modules `((srfi srfi-1) 156 (srfi srfi-34)
157 (srfi srfi-34) 157 (srfi srfi-35)
158 (srfi srfi-35) 158 (rnrs io ports)
159 (rnrs io ports) 159 ,@%default-modules))
160 ,@%default-modules)) 160 (start
161 (start 161 #~(lambda _
162 #~(lambda _ 162 (cond
163 (cond 163 ((null? '#$kernel-modules) #t)
164 ((null? '#$kernel-modules) #t) 164 ((file-exists? "/proc/sys/kernel/modprobe")
165 ((file-exists? "/proc/sys/kernel/modprobe") 165 (let ((modprobe (call-with-input-file
166 (let ((modprobe (call-with-input-file 166 "/proc/sys/kernel/modprobe" get-line)))
167 "/proc/sys/kernel/modprobe" get-line))) 167 (guard (c ((message-condition? c)
168 (guard (c ((message-condition? c) 168 (format (current-error-port) "~a~%"
169 (format (current-error-port) "~a~%" 169 (condition-message c))
170 (condition-message c)) 170 #f))
171 #f)) 171 (every (lambda (module)
172 (every (lambda (module) 172 (invoke/quiet modprobe "--" module))
173 (invoke/quiet modprobe "--" module)) 173 '#$kernel-modules))))
174 '#$kernel-modules)))) 174 (else
175 (else 175 (format (current-error-port) "error: ~a~%"
176 (format (current-error-port) "error: ~a~%" 176 "Kernel is missing loadable module support.")
177 "Kernel is missing loadable module support.") 177 #f))))))))
178 #f)))))))))
179 178
180(define kernel-module-loader-service-type 179(define kernel-module-loader-service-type
181 (service-type 180 (service-type
@@ -183,7 +182,7 @@ representation."
183 (description "Load kernel modules.") 182 (description "Load kernel modules.")
184 (extensions 183 (extensions
185 (list (service-extension shepherd-root-service-type 184 (list (service-extension shepherd-root-service-type
186 kernel-module-loader-shepherd-service))) 185 (compose list kernel-module-loader-shepherd-service))))
187 (compose concatenate) 186 (compose concatenate)
188 (extend append) 187 (extend append)
189 (default-value '()))) 188 (default-value '())))