198184Sgordon#!/bin/sh 298184Sgordon# 398184Sgordon# $FreeBSD$ 498184Sgordon# 598184Sgordon 698184Sgordon# PROVIDE: initrandom 7208307Sdougb# REQUIRE: dumpon ddb 898184Sgordon# BEFORE: disks 9136224Smtm# KEYWORD: nojail 1098184Sgordon 1198184Sgordon. /etc/rc.subr 1298184Sgordon 1398184Sgordonname="initrandom" 1498184Sgordonstart_cmd="initrandom_start" 1598184Sgordonstop_cmd=":" 1698184Sgordon 1798184Sgordoninitrandom_start() 1898184Sgordon{ 19128060Smarkm soft_random_generator=`sysctl kern.random 2>/dev/null` 20128060Smarkm 2198184Sgordon echo -n 'Entropy harvesting:' 2298184Sgordon 23128060Smarkm if [ \! -z "${soft_random_generator}" ] ; then 24128060Smarkm 25178423Sru if [ -w /dev/random ]; then 26178423Sru if checkyesno harvest_interrupt; then 27220153Semaste ${SYSCTL} kern.random.sys.harvest.interrupt=1 >/dev/null 28128060Smarkm echo -n ' interrupts' 29178423Sru else 30220153Semaste ${SYSCTL} kern.random.sys.harvest.interrupt=0 >/dev/null 31128060Smarkm fi 3298184Sgordon 33178423Sru if checkyesno harvest_ethernet; then 34220153Semaste ${SYSCTL} kern.random.sys.harvest.ethernet=1 >/dev/null 35128060Smarkm echo -n ' ethernet' 36178423Sru else 37220153Semaste ${SYSCTL} kern.random.sys.harvest.ethernet=0 >/dev/null 38128060Smarkm fi 3998184Sgordon 40178423Sru if checkyesno harvest_p_to_p; then 41220153Semaste ${SYSCTL} kern.random.sys.harvest.point_to_point=1 >/dev/null 42128060Smarkm echo -n ' point_to_point' 43178423Sru else 44220153Semaste ${SYSCTL} kern.random.sys.harvest.point_to_point=0 >/dev/null 45128060Smarkm fi 46128060Smarkm 47256381Smarkm if checkyesno harvest_swi; then 48256381Smarkm ${SYSCTL} kern.random.sys.harvest.swi=1 >/dev/null 49256381Smarkm echo -n ' swi' 50256381Smarkm else 51256381Smarkm ${SYSCTL} kern.random.sys.harvest.swi=0 >/dev/null 52128060Smarkm fi 53256381Smarkm fi 54128060Smarkm 5598184Sgordon fi 5698184Sgordon 5798184Sgordon echo '.' 5898184Sgordon} 5998184Sgordon 6098184Sgordonload_rc_config random 6198184Sgordonrun_rc_command "$1" 62