mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Andreas Pretzsch <apr@cn-eng.de>
To: ptxdist@pengutronix.de
Subject: [ptxdist] [PATCH] rng-tools: new package for rng-tools (rngd) version 5
Date: Sun, 26 Oct 2014 18:02:04 +0100	[thread overview]
Message-ID: <1414342924-19265-1-git-send-email-apr@cn-eng.de> (raw)

random number generator daemon - seed kernel random from hwrng

This daemon feeds data from a random number generator to the kernel's
random number entropy pool, after first checking the data to ensure
that it is properly random.

By default, a hardware rng at /dev/hwrng is used as entropy source.

This daemon is part of the rng-tools, which can be found at
    http://sourceforge.net/projects/gkernel/
    git://git.kernel.org/pub/scm/utils/kernel/rng-tools/rng-tools.git

Signed-off-by: Andreas Pretzsch <apr@cn-eng.de>
---

Start script is kept as simple as possible, as this one runs rather
early and does not need much.

The link default of "S00" in rc.d is intentional. rc-once is S01 by
default and triggers things like ssh key generation. So while in
other cases I would have set rngd to something around S10, it has to
squeeze in before rc-once. As there are no udev depends (the other
S00), being a kernel provided device, this should be ok.

Placing the daemon in /sbin also follows this fact, beside its
very system-near function.

 generic/etc/init.d/rngd   | 40 +++++++++++++++++++++++++++++++++
 rules/rng-tools-bbinit.in | 10 +++++++++
 rules/rng-tools.in        | 23 +++++++++++++++++++
 rules/rng-tools.make      | 57 +++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 130 insertions(+)
 create mode 100644 generic/etc/init.d/rngd
 create mode 100644 rules/rng-tools-bbinit.in
 create mode 100644 rules/rng-tools.in
 create mode 100644 rules/rng-tools.make

diff --git a/generic/etc/init.d/rngd b/generic/etc/init.d/rngd
new file mode 100644
index 0000000..cdae9db
--- /dev/null
+++ b/generic/etc/init.d/rngd
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# Start/stop rngd (random number generator daemon) from rng-tools
+#
+
+# defaults are sane, normally no need to override
+OPTIONS=
+
+# pid-file created from rngd by default
+PIDFILE=/var/run/rngd.pid
+
+case $1 in
+	start)
+		if [ -e $PIDFILE ]; then
+			echo "rngd already running (found $PIDFILE)"
+		else
+			echo "starting rngd"
+			/sbin/rngd $OPTIONS
+		fi
+		;;
+
+	stop)
+		if [ -e $PIDFILE ]; then
+			echo "stopping rngd"
+			kill -s SIGTERM `cat $PIDFILE`
+		else
+			echo "rngd not running (no $PIDFILE)"
+		fi
+		;;
+
+	restart)
+		$0 stop
+		$0 start
+		;;
+
+	*)
+		echo "Usage: ${0} {start|stop|restart}"
+		exit 1
+		;;
+esac
diff --git a/rules/rng-tools-bbinit.in b/rules/rng-tools-bbinit.in
new file mode 100644
index 0000000..7cb74aa
--- /dev/null
+++ b/rules/rng-tools-bbinit.in
@@ -0,0 +1,10 @@
+## SECTION=initmethod_bbinit
+
+config RNG_TOOLS_BBINIT_LINK
+	string
+	depends on RNG_TOOLS_STARTSCRIPT
+	prompt "rng-tools"
+	default "S00rngd"
+	help
+	  Order in start sequence.
+	  Note: Start before rc-once to seed random before e.g. key creation.
diff --git a/rules/rng-tools.in b/rules/rng-tools.in
new file mode 100644
index 0000000..8282b93
--- /dev/null
+++ b/rules/rng-tools.in
@@ -0,0 +1,23 @@
+## SECTION=shell_and_console
+
+config RNG_TOOLS
+	tristate
+	prompt "rng-tools rngd"
+	help
+	  random number generator daemon - seed kernel random from hwrng
+
+	  This daemon feeds data from a random number generator to the kernel's
+	  random number entropy pool, after first checking the data to ensure
+	  that it is properly random.
+
+	  By default, a hardware rng at /dev/hwrng is used as entropy source.
+
+	  This daemon is part of the rng-tools, which can be found at
+	      http://sourceforge.net/projects/gkernel/
+	      git://git.kernel.org/pub/scm/utils/kernel/rng-tools/rng-tools.git
+
+config RNG_TOOLS_STARTSCRIPT
+	bool
+	default y
+	depends on RNG_TOOLS
+	prompt "install /etc/init.d/rngd"
diff --git a/rules/rng-tools.make b/rules/rng-tools.make
new file mode 100644
index 0000000..22f26fd
--- /dev/null
+++ b/rules/rng-tools.make
@@ -0,0 +1,57 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2014 by Andreas Pretzsch <apr@cn-eng.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+PACKAGES-$(PTXCONF_RNG_TOOLS) += rng-tools
+
+RNG_TOOLS_VERSION	:= 5
+RNG_TOOLS_MD5		:= 6726cdc6fae1f5122463f24ae980dd68
+RNG_TOOLS		:= rng-tools-$(RNG_TOOLS_VERSION)
+RNG_TOOLS_SUFFIX	:= tar.gz
+RNG_TOOLS_URL		:= $(call ptx/mirror, SF, gkernel/$(RNG_TOOLS).$(RNG_TOOLS_SUFFIX))
+RNG_TOOLS_SOURCE	:= $(SRCDIR)/$(RNG_TOOLS).$(RNG_TOOLS_SUFFIX)
+RNG_TOOLS_DIR		:= $(BUILDDIR)/$(RNG_TOOLS)
+RNG_TOOLS_LICENSE	:= GPLv2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+RNG_TOOLS_CONF_TOOL	:= autoconf
+RNG_TOOLS_CONF_OPT	:= $(CROSS_AUTOCONF_ROOT)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/rng-tools.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, rng-tools)
+	@$(call install_fixup, rng-tools,PRIORITY,optional)
+	@$(call install_fixup, rng-tools,SECTION,base)
+	@$(call install_fixup, rng-tools,AUTHOR,"Andreas Pretzsch <apr@cn-eng.de>")
+	@$(call install_fixup, rng-tools,DESCRIPTION,"random number generator daemon - seed kernel random from hwrng")
+
+	@$(call install_copy, rng-tools, 0, 0, 0755, -, /sbin/rngd)
+ifdef PTXCONF_INITMETHOD_BBINIT
+ifdef PTXCONF_RNG_TOOLS_STARTSCRIPT
+	@$(call install_alternative, rng-tools, 0, 0, 0755, /etc/init.d/rngd)
+ifneq ($(call remove_quotes,$(PTXCONF_RNG_TOOLS_BBINIT_LINK)),)
+	@$(call install_link, rng-tools, \
+		../init.d/rngd, \
+		/etc/rc.d/$(PTXCONF_RNG_TOOLS_BBINIT_LINK))
+endif
+endif
+endif
+	@$(call install_finish, rng-tools)
+
+	@$(call touch)
+
+# vim: syntax=make
-- 
2.1.1


-- 
ptxdist mailing list
ptxdist@pengutronix.de

             reply	other threads:[~2014-10-26 17:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-26 17:02 Andreas Pretzsch [this message]
2014-11-13 16:52 ` Michael Olbrich
2014-11-16 15:47   ` Andreas Pretzsch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1414342924-19265-1-git-send-email-apr@cn-eng.de \
    --to=apr@cn-eng.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox