diff options
author | Maxim Mikityanskiy <maxtram95@gmail.com> | 2015-01-19 18:14:16 +0200 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2015-04-22 22:07:26 +0200 |
commit | 22cb51e1a2cdff07f220d7519d05934f6ce1bf2c (patch) | |
tree | a90851e182682ec501d2b039a875825295a1abec | |
parent | d3230923e62f57cdefa90b5ffb9760f39c94718e (diff) | |
download | buildroot-22cb51e1a2cdff07f220d7519d05934f6ce1bf2c.tar.gz buildroot-22cb51e1a2cdff07f220d7519d05934f6ce1bf2c.zip |
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>
-rw-r--r-- | package/rng-tools/0001-rngd-exit-code.patch | 22 | ||||
-rw-r--r-- | package/rng-tools/rng-tools.mk | 8 | ||||
-rw-r--r-- | package/rng-tools/rngd.service | 9 |
3 files changed, 39 insertions, 0 deletions
diff --git a/package/rng-tools/0001-rngd-exit-code.patch b/package/rng-tools/0001-rngd-exit-code.patch new file mode 100644 index 0000000000..709e20c70d --- /dev/null +++ b/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) { diff --git a/package/rng-tools/rng-tools.mk b/package/rng-tools/rng-tools.mk index 5b89656e02..8648c4f878 100644 --- a/package/rng-tools/rng-tools.mk +++ b/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)) diff --git a/package/rng-tools/rngd.service b/package/rng-tools/rngd.service new file mode 100644 index 0000000000..3bdc4c11a7 --- /dev/null +++ b/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 |