services: Add rngd-service.
* gnu/services/base.scm (<rngd-configuration>): New record type. (rngd-service-type): New variable. (rngd-service): New procedure. * doc/guix.texi (Base Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
cf91cfc0c4
commit
b58cbf9ac5
|
@ -7494,6 +7494,13 @@ created by @command{guix archive --generate-key} (@pxref{Invoking guix
|
||||||
archive}). If that is not the case, the service will fail to start.
|
archive}). If that is not the case, the service will fail to start.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@anchor{rngd-service}
|
||||||
|
@deffn {Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @
|
||||||
|
[#:device "/dev/hwrng"]
|
||||||
|
Return a service that runs the @command{rngd} program from @var{rng-tools}
|
||||||
|
to add @var{device} to the kernel's entropy pool. The service will fail if
|
||||||
|
@var{device} does not exist.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
@node Scheduled Job Execution
|
@node Scheduled Job Execution
|
||||||
@subsubsection Scheduled Job Execution
|
@subsubsection Scheduled Job Execution
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||||
|
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -31,7 +32,7 @@
|
||||||
#:use-module (gnu system mapped-devices)
|
#:use-module (gnu system mapped-devices)
|
||||||
#:use-module (gnu packages admin)
|
#:use-module (gnu packages admin)
|
||||||
#:use-module ((gnu packages linux)
|
#:use-module ((gnu packages linux)
|
||||||
#:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils crda gpm))
|
#:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools))
|
||||||
#:use-module ((gnu packages base)
|
#:use-module ((gnu packages base)
|
||||||
#:select (canonical-package glibc))
|
#:select (canonical-package glibc))
|
||||||
#:use-module (gnu packages package-management)
|
#:use-module (gnu packages package-management)
|
||||||
|
@ -97,6 +98,8 @@
|
||||||
|
|
||||||
urandom-seed-service-type
|
urandom-seed-service-type
|
||||||
urandom-seed-service
|
urandom-seed-service
|
||||||
|
rngd-service-type
|
||||||
|
rngd-service
|
||||||
|
|
||||||
%base-services))
|
%base-services))
|
||||||
|
|
||||||
|
@ -486,7 +489,47 @@ stopped before 'kill' is called."
|
||||||
(define (urandom-seed-service)
|
(define (urandom-seed-service)
|
||||||
(service urandom-seed-service-type #f))
|
(service urandom-seed-service-type #f))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Add hardware random number generator to entropy pool.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define-record-type* <rngd-configuration>
|
||||||
|
rngd-configuration make-rngd-configuration
|
||||||
|
rngd-configuration?
|
||||||
|
(rng-tools rngd-configuration-rng-tools) ;package
|
||||||
|
(device rngd-configuration-device)) ;string
|
||||||
|
|
||||||
|
(define rngd-service-type
|
||||||
|
(shepherd-service-type
|
||||||
|
'rngd
|
||||||
|
(lambda (config)
|
||||||
|
(define rng-tools (rngd-configuration-rng-tools config))
|
||||||
|
(define device (rngd-configuration-device config))
|
||||||
|
|
||||||
|
(define rngd-command
|
||||||
|
(list #~(string-append #$rng-tools "/sbin/rngd")
|
||||||
|
"-f" "-r" device))
|
||||||
|
|
||||||
|
(shepherd-service
|
||||||
|
(documentation "Add TRNG to entropy pool.")
|
||||||
|
(requirement '(udev))
|
||||||
|
(provision '(trng))
|
||||||
|
(start #~(make-forkexec-constructor #$@rngd-command))
|
||||||
|
(stop #~(make-kill-destructor))))))
|
||||||
|
|
||||||
|
(define* (rngd-service #:key
|
||||||
|
(rng-tools rng-tools)
|
||||||
|
(device "/dev/hwrng"))
|
||||||
|
"Return a service that runs the @command{rngd} program from @var{rng-tools}
|
||||||
|
to add @var{device} to the kernel's entropy pool. The service will fail if
|
||||||
|
@var{device} does not exist."
|
||||||
|
(service rngd-service-type
|
||||||
|
(rngd-configuration
|
||||||
|
(rng-tools rng-tools)
|
||||||
|
(device device))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; System-wide environment variables.
|
;;; System-wide environment variables.
|
||||||
;;;
|
;;;
|
||||||
|
|
Reference in New Issue