85 lines
1.8 KiB
Bash
Executable File
85 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Install modules from the host system into the new image, and
|
|
# ensure that 'module-init-tools' is setup.
|
|
#
|
|
# This is most likely required if you're using a custom kernel
|
|
# for your Xen system. But even if it isn't required it can't
|
|
# really do anything bad; just waste a bit of space.
|
|
#
|
|
# Steve
|
|
# --
|
|
# http://www.steve.org.uk/
|
|
|
|
|
|
prefix=$1
|
|
|
|
|
|
|
|
#
|
|
# Source our common functions
|
|
#
|
|
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
. /usr/lib/xen-tools/common.sh
|
|
else
|
|
. ./hooks/common.sh
|
|
fi
|
|
|
|
|
|
#
|
|
# Log our start
|
|
#
|
|
logMessage Script $0 starting
|
|
|
|
|
|
#
|
|
# The name of the package containing the correct modules.
|
|
#
|
|
linux_modules_package="linux-modules-$(uname -r)"
|
|
|
|
#
|
|
# Attempt to install that package. This will either work on an Etch
|
|
# system, or fail on a Sarge/custom kernel.
|
|
#
|
|
if [ -n "${modules}" -a -d "${modules}" ]; then
|
|
|
|
#
|
|
# Modules path was specified during install
|
|
#
|
|
logMessage "Copying modules from ${modules}"
|
|
|
|
mkdir -p ${prefix}/lib/modules
|
|
cp -au ${modules} ${prefix}/lib/modules
|
|
elif chroot ${prefix} /usr/bin/apt-cache show ${linux_modules_package} >/dev/null 2>/dev/null; then
|
|
|
|
logMessage "Package '${linux_modules_package}' is available - installing"
|
|
|
|
#
|
|
# If it worked then we can install the package.
|
|
#
|
|
installDebianPackage ${prefix} ${linux_modules_package}
|
|
else
|
|
|
|
#
|
|
# Fall back to copying over modules from the host to the new
|
|
# system.
|
|
#
|
|
logMessage "Package '${linux_modules_package}' is not available"
|
|
logMessage "Copying modules from /lib/modules/$(uname -r)"
|
|
|
|
mkdir -p ${prefix}/lib/modules
|
|
cp -au /lib/modules/$(uname -r) ${prefix}/lib/modules
|
|
fi
|
|
|
|
|
|
#
|
|
# Install the module-init-tools package.
|
|
#
|
|
installDebianPackage ${prefix} module-init-tools
|
|
|
|
|
|
#
|
|
# Log our finish
|
|
#
|
|
logMessage Script $0 finished
|