diff options
Diffstat (limited to 'init.d')
-rw-r--r-- | init.d/Makefile | 4 | ||||
-rw-r--r-- | init.d/modules-load.in | 72 | ||||
-rw-r--r-- | init.d/modules.in | 62 |
3 files changed, 62 insertions, 76 deletions
diff --git a/init.d/Makefile b/init.d/Makefile index 9c97e1ed..e18f7a9f 100644 --- a/init.d/Makefile +++ b/init.d/Makefile @@ -19,10 +19,10 @@ SRCS-FreeBSD= hostid.in modules.in moused.in newsyslog.in pf.in rarpd.in \ rc-enabled.in rpcbind.in savecore.in syslogd.in # These are FreeBSD specific SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \ - modules-load.in mixer.in nscd.in powerd.in syscons.in + mixer.in nscd.in powerd.in syscons.in SRCS-Linux= agetty.in binfmt.in devfs.in cgroups.in dmesg.in hwclock.in \ - consolefont.in keymaps.in killprocs.in modules.in modules-load.in \ + consolefont.in keymaps.in killprocs.in modules.in \ mount-ro.in mtab.in numlock.in procfs.in net-online.in sysfs.in \ termencoding.in diff --git a/init.d/modules-load.in b/init.d/modules-load.in deleted file mode 100644 index f71f704d..00000000 --- a/init.d/modules-load.in +++ /dev/null @@ -1,72 +0,0 @@ -#!@SBINDIR@/openrc-run -# Copyright (c) 2016 The OpenRC Authors. -# See the Authors file at the top-level directory of this distribution and -# https://github.com/OpenRC/openrc/blob/master/AUTHORS -# -# This file is part of OpenRC. It is subject to the license terms in -# the LICENSE file found in the top-level directory of this -# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE -# This file may not be copied, modified, propagated, or distributed -# except according to the terms contained in the LICENSE file. - -description="Loads a list of modules from systemd-compatible locations." - -depend() -{ - keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver -} - -find_modfiles() -{ - local dirs="/usr/lib/modules-load.d /run/modules-load.d /etc/modules-load.d" - local basenames files fn x y - for x in $dirs; do - [ ! -d $x ] && continue - for y in $x/*.conf; do - [ -f $y ] && basenames="${basenames}\n${y##*/}" - done - done - basenames=$(printf "$basenames" | sort -u) - for x in $basenames; do - for y in $dirs; do - [ -r $y/$x ] && - fn=$y/$x - done - files="$files $fn" - done - echo $files -} - -load_modules() -{ - local file m modules rc x - file=$1 - [ -z "$file" ] && return 0 - while read m x; do - case $m in - \;*) continue ;; - \#*) continue ;; - *) modules="$modules $m" - ;; - esac - done < $file - for x in $modules; do - ebegin "Loading module $x" - case "$RC_UNAME" in - FreeBSD) kldload "$x"; rc=$? ;; - Linux) modprobe --use-blacklist -q "$x"; rc=$? ;; - *) ;; - esac - eend $rc "Failed to load $x" - done -} - -start() -{ - local x - files=$(find_modfiles) - for x in $files; do - load_modules $x - done - return 0 -} diff --git a/init.d/modules.in b/init.d/modules.in index 2eab77f0..d6dd7a29 100644 --- a/init.d/modules.in +++ b/init.d/modules.in @@ -14,10 +14,65 @@ description="Loads a user defined list of kernel modules." depend() { use isapnp - want modules-load + provide modules-load keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver } +find_modfiles() +{ + local dirs="/usr/lib/modules-load.d /run/modules-load.d /etc/modules-load.d" + local basenames files fn x y + for x in $dirs; do + [ ! -d $x ] && continue + for y in $x/*.conf; do + [ -f $y ] && basenames="${basenames}\n${y##*/}" + done + done + basenames=$(printf "$basenames" | sort -u) + for x in $basenames; do + for y in $dirs; do + [ -r $y/$x ] && + fn=$y/$x + done + files="$files $fn" + done + echo $files +} + +load_modules() +{ + local file m modules rc x + file=$1 + [ -z "$file" ] && return 0 + while read m x; do + case $m in + \;*) continue ;; + \#*) continue ;; + *) modules="$modules $m" + ;; + esac + done < $file + for x in $modules; do + ebegin "Loading module $x" + case "$RC_UNAME" in + FreeBSD) kldload "$x"; rc=$? ;; + Linux) modprobe --use-blacklist -q "$x"; rc=$? ;; + *) ;; + esac + eend $rc "Failed to load $x" + done +} + +modules_load_d() +{ + local x + files=$(find_modfiles) + for x in $files; do + load_modules $x + done + return 0 +} + FreeBSD_modules() { local cnt=0 x @@ -82,7 +137,10 @@ Linux_modules() start() { case "$RC_UNAME" in - FreeBSD|Linux) ${RC_UNAME}_modules ;; + FreeBSD|Linux) + modules_load_d + ${RC_UNAME}_modules + ;; *) ;; esac return 0 |