#!/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 if [ ${pygrub} ]; then logMessage "pygrub set, skipping module install" else # # 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 fi # if pygrub # # Log our finish # logMessage Script $0 finished