# $NetBSD: rc.lkm,v 1.9 2005/03/04 21:11:23 cube Exp $ # # this script loads or unloads LKMs (loadable kernel modules). if [ -s /etc/lkm.conf ]; then case "$1" in start) (while read path options entry postinstall output when; do flags='' case $path in \#*|"") continue ;; /*) ;; *) if [ -f "/lkm/$path" ]; then path="/lkm/$path" elif [ -f "/usr/lkm/$path" ]; then path="/usr/lkm/$path" else echo "couldn't find module $path" fi ;; esac case $options in -) ;; *) flags="$flags $options" ;; esac case $entry in -) ;; *) flags="$flags -e $entry" ;; esac case $postinstall in -) ;; *) flags="$flags -p $postinstall" ;; esac case $output in -) ;; *) if [ "$output" = TEMP ]; then flags="$flags -o /tmp/lkm.$$" else flags="$flags -o $output" fi ;; esac case $when in -) when=BEFORENET ;; [A-Z]*) ;; *) echo "invalid \"when\" field \`${when}' in /etc/lkm.conf - $path not loaded!" continue ;; esac if [ "$when" != "$lkmstage" ]; then continue fi echo -n "${path##*/}: " modload $flags $path rm -f /tmp/lkm.$$ done) < /etc/lkm.conf ;; stop) (while read path options entry postinstall output when; do case $path in \#*|"") continue ;; /*) name=${path##*/} name=${name%.o} ;; *) name=${path%.o} ;; esac if [ "$when" = "$lkmstage" ]; then modunload -n ${name} fi done) < /etc/lkm.conf ;; esac fi