3247184d86
I spoke with the prefix team sometime back and was told that they do not have an interest in using OpenRC on prefix systems.
64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
#!@PREFIX@/sbin/runscript
|
|
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
|
|
# Released under the 2-clause BSD license.
|
|
|
|
description="Loads a user defined list of kernel modules."
|
|
|
|
depend()
|
|
{
|
|
use isapnp
|
|
keyword -openvz -vserver -lxc
|
|
}
|
|
|
|
start()
|
|
{
|
|
# Should not fail if kernel do not have module
|
|
# support compiled in ...
|
|
[ ! -f /proc/modules ] && return 0
|
|
|
|
local KV x y kv_variant_list
|
|
KV=$(uname -r)
|
|
# full $KV
|
|
kv_variant_list="${KV}"
|
|
# remove any KV_EXTRA options to just get the full version
|
|
x=${KV%%-*}
|
|
# now slowly strip them
|
|
while [ -n "$x" ] && [ "$x" != "$y" ]; do
|
|
kv_variant_list="${kv_variant_list} $x"
|
|
y=$x
|
|
x=${x%.*}
|
|
done
|
|
|
|
local list= x= xx= y= args= mpargs= cnt=0 a=
|
|
for x in $kv_variant_list ; do
|
|
eval list=\$modules_$(shell_var "$x")
|
|
[ -n "$list" ] && break
|
|
done
|
|
[ -z "$list" ] && list=$modules
|
|
|
|
for x in $list; do
|
|
a=${x#*:}
|
|
if [ "$a" = "$x" ]; then
|
|
unset mpargs
|
|
ebegin "Loading module $x"
|
|
else
|
|
x=${x%%:*}
|
|
mpargs="-o $a"
|
|
ebegin "Loading module $x as $a"
|
|
fi
|
|
aa=$(shell_var "$a")
|
|
xx=$(shell_var "$x")
|
|
for y in $kv_variant_list ; do
|
|
eval args=\$module_${aa}_args_$(shell_var "$y")
|
|
[ -n "${args}" ] && break
|
|
eval args=\$module_${xx}_args_$(shell_var "$y")
|
|
[ -n "${args}" ] && break
|
|
done
|
|
[ -z "$args" ] && eval args=\$module_${aa}_args
|
|
[ -z "$args" ] && eval args=\$module_${xx}_args
|
|
eval modprobe -q "$mpargs" "$x" "$args"
|
|
eend $? "Failed to load $x" && : $(( cnt += 1 ))
|
|
done
|
|
einfo "Autoloaded $cnt module(s)"
|
|
}
|