Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2:PowerPC
rng-tools
rng-tools.init
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File rng-tools.init of Package rng-tools
#! /bin/sh ### BEGIN INIT INFO # Provides: rng-tools # Required-Start: $syslog # Required-Stop: $syslog # Default-Start: 2 3 5 # Default-Stop: # Short-Description: Support for hardware Random Number Generators (RNGs) # Description: Loads RNG-modules specific to the hardware (if not automatically # loaded by udev accoding to the PCI id) and starts the userspace # daemon that passes the RNG data from /dev/hwrng to /dev/random # X-UnitedLinux-Default-Enabled: yes ### END INIT INFO RNGD_BIN=/usr/sbin/rngd HWRNG_DEV=/dev/hwrng MODPROBE=/sbin/modprobe RNGD_PARAMS="-r $HWRNG_DEV --fill-watermark=90% --feed-interval=1" # Source configuration file. This should define the shell variable smartd_opts RETVAL=0 # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v ditto but be verbose in local rc status # rc_status -v -r ditto and clear the local rc status # rc_failed set local and overall rc status to failed # rc_reset clear local rc status (overall remains) # rc_exit exit appropriate to overall rc status . /etc/rc.status # First reset status of this service rc_reset ## # Detect if HW random support is currently available (i.e. modules that provide # a HW RNG are loaded and the device file is there) # # Parameters: none # Return value: 0 if a RNG is avilable, != 0 otherwise ## have_rng() { [ -f /sys/devices/virtual/misc/hw_random/rng_current ] && [ -r "$HWRNG_DEV" ] } ## # Loads HW-RNG modules if the hardware looks like it has a HW-RNG. Checks if we # already have HW-RNG modules before. Waits (max. 5 sec) until udev generates # the device. # # Parameters: none # Return value: none ## load_rng_modules() { loaded=0 if ! have_rng ; then # VIA CPUs have a HW-RNG built-in if grep "model name.*VIA" /proc/cpuinfo &> /dev/null ; then $MODPROBE via-rng &> /dev/null && loaded=1 fi # add other Hardware here in future # ... fi # if a module was loaded until udev generates the device, max 5 seconds if [ $loaded -gt 0 ] ; then loopcount=0 while [ ! -r $HWRNG_DEV -a $loopcount -lt 50 ] ; do usleep 100000 loopcount=$[$loopcount + 1] done fi } ## # Unloads HW-RNG that are loaded by load_rng_modules(). So this function doesn't unload # modules that get loaded by their PCI id. # # Parameters: none # Return value: none ## unload_rng_modules() { if have_rng ; then # VIA CPUs have a HW-RNG built-in if grep "model name.*VIA" /proc/cpuinfo &> /dev/null ; then $MODPROBE -r via-rng &> /dev/null fi # add other Hardware here in future # ... fi } # Return values acc. to LSB for all commands but status: # 0 - success # 1 - misc error # 2 - invalid or excess args # 3 - unimplemented feature (e.g. reload) # 4 - insufficient privilege # 5 - program not installed # 6 - program not configured # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signalling is not supported) are # considered a success. case "$1" in start) echo -n "Starting RNG daemon " ## Start daemon with startproc(8). If this fails ## the echo return value is set appropriate. load_rng_modules if have_rng ; then # startproc should return 0, even if service is # already running to match LSB spec. startproc $RNGD_BIN $RNGD_PARAMS # Remember status and be verbose rc_status -v else echo -n " No Hardware RNG support available" rc_status -s rc_exit fi ;; stop) echo -n "Shutting down RNG daemon " killproc -TERM $RNGD_BIN && unload_rng_modules # Remember status and be verbose rc_status -v ;; try-restart|condrestart) ## Do a restart only if the service was active before. ## Note: try-restart is now part of LSB (as of 1.9). ## RH has a similar command named condrestart. if test "$1" = "condrestart"; then echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then $0 restart else rc_reset # Not running is not a failure. fi # Remember status and be quiet rc_status ;; restart | force-reload) $0 stop $0 start ;; reload) ## Like force-reload, but if daemon does not support ## signaling, do nothing (!) rc_failed 3 rc_status -v ;; status) echo -n "Checking for RNG daemon " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. # Status has a slightly different for the status command: # 0 - service running # 1 - service dead, but /var/run/ pid file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running # NOTE: checkproc returns LSB compliant status values. checkproc $RNGD_BIN rc_status -v ;; *) echo $"Usage: $0 {start|stop|status|restart|reload}" exit 1 ;; esac rc_exit # vim: set sw=4 ts=4 et:
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor