[oe] [PATCH] rng-tools_2: Add a file in /etc/default to configure hrngdevice

Camille Moncelier moncelier at devlife.org
Wed Nov 3 08:47:26 UTC 2010


* Fixed the executable path (No more /usr/local/bin)

* Changed the init file to try to autodiscover the HRNGDEVICE.
  (Stolen from debian)

* Added a conf file to be able to specify urandom as a source
  of random number (it helps producing random number faster
  with a small quality decrease)

Signed-off-by: Camille Moncelier <moncelier at devlife.org>
---
 recipes/rng-tools/files/init      |   48 ++++++++++++++++++++++++++----------
 recipes/rng-tools/files/rng-tools |    2 +
 recipes/rng-tools/rng-tools_2.bb  |    7 ++++-
 3 files changed, 42 insertions(+), 15 deletions(-)
 create mode 100644 recipes/rng-tools/files/rng-tools

diff --git a/recipes/rng-tools/files/init b/recipes/rng-tools/files/init
index e12f71c..e750685 100755
--- a/recipes/rng-tools/files/init
+++ b/recipes/rng-tools/files/init
@@ -5,37 +5,57 @@
 # > update-rc.d rng-tools defaults 60
 #
 
-rngd=/usr/local/sbin/rngd
-test -x "$rngd" || exit 1
+DAEMON=/usr/sbin/rngd
+test -x "$DAEMON" || exit 1
 
+DEVICELIST="hwrng hw_random hwrandom intel_rng i810_rng"
+HRNGDEVICE=/dev/hwrng
+RNGDOPTIONS=
+[ -r /etc/default/rng-tools ] && . /etc/default/rng-tools
+
+finddevice () {
+	[ -c "${HRNGDEVICE}" ] && return 0
+	for i in ${DEVICELIST} ; do
+		if [ -c "/dev/$i" ] ; then
+			HRNGDEVICE="/dev/$i"
+			return 0
+		fi
+		if [ -c "/dev/misc/$i" ] ; then
+			HRNGDEVICE="/dev/misc/$i"
+			return 0
+		fi
+	done
+
+	echo "(Hardware RNG device inode not found)"
+	echo "$0: Cannot find a hardware RNG device to use." >&2
+	exit 1
+}
 
 case "$1" in
   start)
-    echo -n "Starting random number generator daemon"
-    start-stop-daemon --start --quiet --exec $rngd
+    echo -n "Starting random number generator daemon "
+    finddevice
+    start-stop-daemon --start --quiet --exec $DAEMON -- -r ${HRNGDEVICE} ${RNGDOPTIONS}
     echo "."
     ;;
   stop)
     echo -n "Stopping random number generator daemon"
-    start-stop-daemon --stop --quiet -n rngd
+    start-stop-daemon --stop --quiet --exec $DAEMON
     echo "."
     ;;
   reload|force-reload)
     echo -n "Signalling rng daemon restart"
-    start-stop-daemon --stop --quiet --signal 1 --exec $rngd
-    start-stop-daemon --stop --quiet --signal 1 --exec $rngd
+    start-stop-daemon --stop --quiet --signal 1 --exec $DAEMON
+    start-stop-daemon --stop --quiet --signal 1 --exec $DAEMON
     ;;
   restart)
-    echo -n "Stopping random number generator daemon"
-    start-stop-daemon --stop --quiet -n rngd
-    echo "."
-    echo -n "Starting random number generator daemon"
-    start-stop-daemon --start --quiet --exec $rngd
-    echo "."
+    $0 stop
+    sleep 1
+    $0 start
     ;;
   *)
     echo "Usage: /etc/init.d/rng-tools {start|stop|reload|restart|force-reload}"
     exit 1
 esac
 
-exit 0
\ No newline at end of file
+exit 0
diff --git a/recipes/rng-tools/files/rng-tools b/recipes/rng-tools/files/rng-tools
new file mode 100644
index 0000000..777a816
--- /dev/null
+++ b/recipes/rng-tools/files/rng-tools
@@ -0,0 +1,2 @@
+# HRNGDEVICE=/dev/hwrandom
+# RNGDOPTIONS="-W 80% -t 20"
diff --git a/recipes/rng-tools/rng-tools_2.bb b/recipes/rng-tools/rng-tools_2.bb
index 523587c..dee6f45 100644
--- a/recipes/rng-tools/rng-tools_2.bb
+++ b/recipes/rng-tools/rng-tools_2.bb
@@ -1,8 +1,9 @@
 DESCRIPTION = "Random number generator daemon"
 LICENSE = "GPL"
-PR = "1"
+PR = "2"
 
 SRC_URI = "http://heanet.dl.sourceforge.net/sourceforge/gkernel/${P}.tar.gz \
+           file://rng-tools \
            file://init"
 
 inherit autotools update-rc.d
@@ -12,8 +13,12 @@ INITSCRIPT_PARAMS = "defaults"
 
 do_install_append() {
         install -d "${D}${sysconfdir}/init.d"
+        install -d "${D}${sysconfdir}/default"
         install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
+        install -c -m 755 ${WORKDIR}/rng-tools ${D}${sysconfdir}/default/rng-tools
 }
 
+CONFFILES_${PN} = "${sysconfdir}/default/rng-tools"
+
 SRC_URI[md5sum] = "63d503191eabed630324c104cc024475"
 SRC_URI[sha256sum] = "1126f0ecc8cab3af14a562cddc5d8ffeef47df7eba34a7aadcdee35a25ec2b1e"
-- 
1.7.3.1





More information about the Openembedded-devel mailing list