ソースを参照

package/rng-tools: add systemd support for rngd

Add rngd.service for systemd. Also patch rngd with patch from Fedora to
ignore failure if no hwrng present:
https://bugzilla.redhat.com/show_bug.cgi?id=892178

[Thomas:
 - rename patch to the proper naming convention
 - add description and SoB to patch
 - install service file to /usr/lib/systemd and not /lib/systemd
 - use a relative symbolic link instead of an absolute one]

Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Maxim Mikityanskiy 10 年 前
コミット
22cb51e1a2

+ 22 - 0
package/rng-tools/0001-rngd-exit-code.patch

@@ -0,0 +1,22 @@
+Exit with a special value when RNG modules are not available
+
+Instead of returning with an error, exit with a special value when the
+RNG kernel modules are not present in the kernel. This is not really a
+hard failure.
+
+Patch borrowed from Fedora, at
+http://pkgs.fedoraproject.org/cgit/rng-tools.git/tree/rngd-exit-code.patch.
+
+Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
+
+--- a/rngd.c
++++ b/rngd.c
+@@ -319,7 +319,7 @@ int main(int argc, char **argv)
+ 			message(LOG_DAEMON|LOG_ERR,
+ 				"Maybe RNG device modules are not loaded\n");
+ 		}
+-		return 1;
++		return 66;
+ 	}
+ 
+ 	if (arguments->verbose) {

+ 8 - 0
package/rng-tools/rng-tools.mk

@@ -21,4 +21,12 @@ else
 RNG_TOOLS_CONF_OPTS += --without-libgcrypt
 endif
 
+define RNG_TOOLS_INSTALL_INIT_SYSTEMD
+	$(INSTALL) -D -m 644 package/rng-tools/rngd.service \
+		$(TARGET_DIR)/usr/lib/systemd/system/rngd.service
+	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+	ln -fs ../../../../usr/lib/systemd/system/rngd.service \
+		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/rngd.service
+endef
+
 $(eval $(autotools-package))

+ 9 - 0
package/rng-tools/rngd.service

@@ -0,0 +1,9 @@
+[Unit]
+Description=Hardware RNG Entropy Gatherer Daemon
+
+[Service]
+ExecStart=/usr/sbin/rngd -f
+SuccessExitStatus=66
+
+[Install]
+WantedBy=multi-user.target