The cirros image was rebuilt against the 3.13.0-83 kernel, drivers e1000e, igbvf...
[packages/trusty/cirros-testvm.git] / cirros-testvm / src-cirros / src / etc / init.d / load-modules
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 (executable)
index 0000000..8a0a8f9
--- /dev/null
@@ -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 $?