[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/3] services: Add rngd-service.
From: |
David Craven |
Subject: |
[PATCH 3/3] services: Add rngd-service. |
Date: |
Sun, 3 Jul 2016 04:26:29 +0200 |
* gnu/services/base.scm: New service.
---
gnu/services/base.scm | 43 +++++++++++++++++++++++++++++++++++++++++--
1 file changed, 41 insertions(+), 2 deletions(-)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index f304bf8..67f3961 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -31,7 +31,7 @@
#:use-module (gnu system mapped-devices)
#:use-module (gnu packages admin)
#: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)
#:select (canonical-package glibc))
#:use-module (gnu packages package-management)
@@ -97,6 +97,7 @@
urandom-seed-service-type
urandom-seed-service
+ rngd-service
%base-services))
@@ -486,7 +487,45 @@ stopped before 'kill' is called."
(define (urandom-seed-service)
(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)
+ (rng-device rngd-configuration-rngd-device))
+
+(define rngd-service-type
+ (shepherd-service-type
+ 'rngd
+ (lambda (config)
+ (define rng-tools (rngd-configuration-rng-tools config))
+ (define rng-device (rngd-configuration-rngd-device config))
+
+ (define rngd-command
+ (list #~(string-append #$rng-tools "/sbin/rngd") "-f" "-r" rng-device))
+
+ (shepherd-service
+ (documentation "Add TRNG to entropy pool.")
+ (requirement '(udev))
+ (provision '(trng))
+ (start #~(make-forkexec-constructor address@hidden))
+ (stop #~(make-kill-destructor))))))
+
+(define* (rngd-service #:key
+ (rng-tools rng-tools)
+ (rng-device "/dev/hwrng"))
+ "Run the @command{rngd} program from @var{rng-tools} to add @var{rng-device}
+to the kernel's entropy pool."
+ (service rngd-service-type
+ (rngd-configuration
+ (rng-tools rng-tools)
+ (rng-device rng-device))))
+
+
;;;
;;; System-wide environment variables.
;;;
--
2.9.0
- [PATCH] services: Add rngd service., David Craven, 2016/07/02
- Re: [PATCH] services: Add rngd service., Leo Famulari, 2016/07/02
- Re: [PATCH] services: Add rngd service., David Craven, 2016/07/02
- [PATCH 3/3] services: Add rngd-service.,
David Craven <=
- [PATCH 2/3] gnu: Add rng-tools 5., David Craven, 2016/07/02
- [PATCH 3/4] services: Add rngd-service., David Craven, 2016/07/03
- [PATCH 4/4] build: Ignore texi2pdf temporary files., David Craven, 2016/07/03