diff options
author | Kurt J. Bosch <kjb-temp-2009@alpenjodel.de> | 2011-06-24 16:50:33 +0200 |
---|---|---|
committer | Kurt J. Bosch <kjb-temp-2009@alpenjodel.de> | 2011-06-24 16:50:33 +0200 |
commit | 5f1447418e83de7aec8b82eccf645446e28ea771 (patch) | |
tree | 32e87d1217a5a7ad9cab45a239af2fcde4106cae /functions | |
parent | 18516c50897e1be65c83ccc3f60284b0bc67526f (diff) |
rc.sysinit/rc.single: Merge UDev stuff into a function
rc.single changes (when coming from multi-user):
* avoid settling UDev quietly as in rc.sysinit
* modules defined in rc.conf are loaded if missing
* minilogd is started before udevd as in rc.sysinit
rc.sysinit behaviour is unchanged
Diffstat (limited to 'functions')
-rw-r--r-- | functions | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -301,6 +301,33 @@ kill_everything() { run_hook "$1_postkillall" } +# Start/trigger UDev, load MODULES and settle UDev +udevd_modprobe() { + # $1 = where we are being called from. + # This is used to determine which hooks to run. + status "Starting UDev Daemon" udevd --daemon + + run_hook "${1}_udevlaunched" + + stat_busy "Triggering UDev uevents" + udevadm trigger --action=add --type=subsystems + udevadm trigger --action=add --type=devices + stat_done + + # Load modules from the MODULES array defined in rc.conf + if [[ -f /proc/modules ]] && (( ${#MODULES[*]} )); then + status "Loading Modules" modprobe -ab "${MODULES[@]}" + fi + + status "Waiting for UDev uevents to be processed" \ + udevadm settle --timeout=${UDEV_TIMEOUT:-30} + + run_hook "${1}_udevsettled" + + # in case loading a module changed the display mode + calc_columns +} + activate_vgs() { [[ $USELVM = [yY][eE][sS] && -x $(type -P lvm) && -d /sys/block ]] || return # Kernel 2.6.x, LVM2 groups |