X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=cirros-testvm%2Fsrc-cirros%2Fsrc%2Fetc%2Finit.d%2Fload-modules;fp=cirros-testvm%2Fsrc-cirros%2Fsrc%2Fetc%2Finit.d%2Fload-modules;h=8a0a8f9d7512041191197f660528558af7a0f3ea;hb=b0a0f15dfaa205161a7fcb20cf1b8cd4948c2ef3;hp=0000000000000000000000000000000000000000;hpb=c6ac3cd55ee2da956195eee393b0882105dfad4e;p=packages%2Ftrusty%2Fcirros-testvm.git diff --git a/cirros-testvm/src-cirros/src/etc/init.d/load-modules b/cirros-testvm/src-cirros/src/etc/init.d/load-modules new file mode 100755 index 0000000..8a0a8f9 --- /dev/null +++ b/cirros-testvm/src-cirros/src/etc/init.d/load-modules @@ -0,0 +1,65 @@ +#!/bin/sh +# vi: ts=4 noexpandtab +# load modules + +loadmods() { + local line + while read line; do + line="${line%%#*}" + [ -n "$line" ] || continue + modprobe $line + done +} + +parse_modules() { + local f="$1" arch="$2" march="" comment="" modinfo="" oifs="$IFS" + local x="" found=false + [ -f "$f" ] || return 1 + case "$arch" in + i?86) march=",i386,x86,";; + amd64|x86_64) march=",x86_64,x86,";; + ppc64|powerpc) march=",powerpc,ppc64,";; + arm*) march=",arm,$arch,";; + esac + while read line; do + modinfo=${line%%#*} + [ "$modinfo" = "$line" ] && comment="" || + comment="${line#${modinfo}#}" + [ "${comment#*arch=}" = "$comment" ] && + { echo "$modinfo"; continue; } + found=false + for tok in $comment; do + [ "${tok#arch=}" != "$tok" ] || continue + IFS=","; set -- ${tok#arch=}; IFS="$oifs"; + [ $# -eq 0 ] && continue + for x in "$@"; do + [ "${march#*,$x,}" != "$march" ] && + { echo "$modinfo"; found=true; break; } + shift; + done + $found && break + done + done < "$f" +} + +MODULES_FILE="/etc/modules" + +case "$1" in + start) + lxc-is-container && exit 0 + if [ -f "$MODULES_FILE" ]; then + [ -d "/lib/modules/$(uname -r)" ] || exit 0 + march=$(uname -m) + parse_modules "$MODULES_FILE" "$march" | loadmods + [ "$march" = "ppc64" ] && sleep 1 + fi + ;; + stop|restart|reload) : ;; + parse_modules) + parse_modules "$2" "$3";; + *) + echo $"Usage: $0 {start}" + exit 1 +esac + +exit $?