[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