[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 32/46] Add configure --with-linux-backend-modules="mod1 mod2"
This replaces config/Linux.modules with a configure option. As a result of this change only a single xencomons.in is required, instead of a xencomons.in.in and sed hackery. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> --- README | 12 -------- config/Linux.modules | 20 ------------ config/Tools.mk.in | 2 ++ tools/configure.ac | 34 +++++++++++++++++++- tools/hotplug/Linux/Makefile | 14 +++------ .../init.d/{xencommons.in.in => xencommons.in} | 5 ++- tools/hotplug/Linux/systemd/Makefile | 33 +++----------------- tools/hotplug/Linux/update-modules.sh | 36 ---------------------- 8 files changed, 48 insertions(+), 108 deletions(-) diff --git a/README b/README index 81bf938..3203d8a 100644 --- a/README +++ b/README @@ -231,15 +231,3 @@ There are optional targets as part of Xen's top-level makefile that will download and build tboot: install-tboot, build-tboot, dist-tboot, clean-tboot. These will download the latest tar file from the SourceForge site using wget, then build/install/dist according to Xen's settings. - -Required Kernel modules -====================== - -Xen has a set of Kernel modules which the init scripts ensure to load before -before starting Xen guests. The list of modules are maintained in one place: - - * config/$(XEN_OS).modules - -For more details refer to: - -http://wiki.xen.org/wiki/Category:Host_Configuration#Kernel_modules diff --git a/config/Linux.modules b/config/Linux.modules deleted file mode 100644 index 8a764df..0000000 --- a/config/Linux.modules +++ /dev/null @@ -1,20 +0,0 @@ -# The file supports a simple language, comments are ignored, and if you there -# are module replacements this can be listed by using a pipe to show preference -# for the first module, followed by the older module. - -xen-evtchn -xen-gntdev -xen-gntalloc -xen-blkback -xen-netback -xen-pciback -evtchn -gntdev -netbk -blkbk -xen-scsibk -usbbk -pciback -xen-acpi-processor -# Prefer to load blktap2 if found, otherwise load blktap -blktap2|blktap diff --git a/config/Tools.mk.in b/config/Tools.mk.in index 5126bb1..23ae8b1 100644 --- a/config/Tools.mk.in +++ b/config/Tools.mk.in @@ -71,6 +71,8 @@ SYSTEMD_LIBS := @SYSTEMD_LIBS@ XEN_SYSTEMD_DIR := @SYSTEMD_DIR@ XEN_SYSTEMD_MODULES_LOAD := @SYSTEMD_MODULES_LOAD@ +LINUX_BACKEND_MODULES := @LINUX_BACKEND_MODULES@ + #System options ZLIB := @zlib@ CONFIG_LIBICONV := @libiconv@ diff --git a/tools/configure.ac b/tools/configure.ac index 013f04d..7c0181c 100644 --- a/tools/configure.ac +++ b/tools/configure.ac @@ -10,7 +10,7 @@ AC_CONFIG_FILES([ hotplug/FreeBSD/rc.d/xencommons hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/xen-watchdog -hotplug/Linux/init.d/xencommons.in +hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/systemd/proc-xen.mount hotplug/Linux/systemd/var-lib-xenstored.mount @@ -90,6 +90,38 @@ AX_ARG_DEFAULT_ENABLE([seabios], [Disable SeaBIOS]) AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of tools]) AX_ARG_DEFAULT_DISABLE([blktap1], [Enable blktap1 tools]) +AC_ARG_WITH([linux-backend-modules], + AS_HELP_STRING([--with-linux-backend-modules="mod1 mod2"], + [List of Linux backend module or modalias names to be autoloaded on startup.]), + [LINUX_BACKEND_MODULES="$withval"], + [case "$host_os" in +*linux*) +LINUX_BACKEND_MODULES=" +xen-evtchn +xen-gntdev +xen-gntalloc +xen-blkback +xen-netback +xen-pciback +evtchn +gntdev +netbk +blkbk +xen-scsibk +usbbk +pciback +xen-acpi-processor +blktap2 +blktap +" +;; +*) +LINUX_BACKEND_MODULES= +;; +esac]) +LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`" +AC_SUBST(LINUX_BACKEND_MODULES) + dnl Enable blktap2 on Linux only. AC_ARG_ENABLE([blktap2], AS_HELP_STRING([--enable-blktap2], diff --git a/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile index 4361f68..e6e7bcb 100644 --- a/tools/hotplug/Linux/Makefile +++ b/tools/hotplug/Linux/Makefile @@ -35,23 +35,17 @@ UDEV_RULES_DIR = $(CONFIG_DIR)/udev UDEV_RULES = xen-backend.rules $(UDEV_RULES-y) .PHONY: all -all: $(XENCOMMONS_INITD) subdirs-all - -$(XENCOMMONS_INITD): $(XEN_ROOT)/config/$(XEN_OS).modules $(XENCOMMONS_INITD).in - $(XEN_ROOT)/tools/hotplug/Linux/update-modules.sh \ - $(XEN_ROOT) \ - $(XEN_OS) \ - $(XENCOMMONS_INITD) > $@ +all: subdirs-all .PHONY: build -build: all +build: .PHONY: install install: all install-initd install-scripts install-udev subdirs-install # See docs/misc/distro_mapping.txt for INITD_DIR location .PHONY: install-initd -install-initd: all +install-initd: [ -d $(DESTDIR)$(INITD_DIR) ] || $(INSTALL_DIR) $(DESTDIR)$(INITD_DIR) [ -d $(DESTDIR)$(SYSCONFIG_DIR) ] || $(INSTALL_DIR) $(DESTDIR)$(SYSCONFIG_DIR) [ -d $(DESTDIR)$(LIBEXEC_BIN) ] || $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) @@ -63,7 +57,7 @@ install-initd: all $(INSTALL_PROG) init.d/xen-watchdog $(DESTDIR)$(INITD_DIR) .PHONY: install-scripts -install-scripts: all +install-scripts: [ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \ $(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR) set -e; for i in $(XEN_SCRIPTS); \ diff --git a/tools/hotplug/Linux/init.d/xencommons.in.in b/tools/hotplug/Linux/init.d/xencommons.in similarity index 96% rename from tools/hotplug/Linux/init.d/xencommons.in.in rename to tools/hotplug/Linux/init.d/xencommons.in index 590f745..10edf29 100644 --- a/tools/hotplug/Linux/init.d/xencommons.in.in +++ b/tools/hotplug/Linux/init.d/xencommons.in @@ -19,6 +19,7 @@ ### END INIT INFO XENSTORED=@XENSTORED@ +BACKEND_MODULES="@LINUX_BACKEND_MODULES@" . @XEN_SCRIPT_DIR@/hotplugpath.sh @@ -58,8 +59,10 @@ fi do_start () { local time=0 local timeout=30 + local mod + + for mod in $BACKEND_MODULES ; do modprobe "$mod" &>/dev/null ; done - @LOAD_MODULES@ mkdir -p ${XEN_RUN_DIR} mkdir -p ${XEN_LOCK_DIR} diff --git a/tools/hotplug/Linux/systemd/Makefile b/tools/hotplug/Linux/systemd/Makefile index dc98b67..ac20c76 100644 --- a/tools/hotplug/Linux/systemd/Makefile +++ b/tools/hotplug/Linux/systemd/Makefile @@ -37,31 +37,8 @@ install: $(ALL_XEN_SYSTEMD) $(INSTALL_DATA) *.mount $(DESTDIR)$(XEN_SYSTEMD_DIR) $(INSTALL_DATA) *.conf $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD) -$(XEN_SYSTEMD_MODULES): $(XEN_ROOT)/config/$(XEN_OS).modules - @set -e ; \ - IFS='' ;\ - cat $(XEN_ROOT)/config/$(XEN_OS).modules | ( \ - while read l ; do \ - if echo $${l} | egrep -q "^#" ; then \ - continue ;\ - fi ;\ - if echo "$${l}" | egrep -q "\|" ; then \ - m1=$${l%%|*} ;\ - m2=$${l#*|} ;\ - # Systemd modules-load.d lacks support ;\ - # for module replacement options, we ;\ - # need to add that support upstream but ;\ - # its best instead to ensure this file ;\ - # is no longer needed. Some folks ;\ - # however have reported issues with ;\ - # some modules automatically loading ;\ - # so we just load all necessary xen ;\ - # modules and for replacements we load ;\ - # the latest module ;\ - echo "$$m1" ;\ - echo "$$m2" ;\ - else \ - echo "$$l" ;\ - fi ;\ - done \ - ) > $@ +$(XEN_SYSTEMD_MODULES): + for mod in $(LINUX_BACKEND_MODULES) ; do \ + echo $$mod ; \ + done > $@.tmp ; \ + $(call move-if-changed,$@.tmp,$@) diff --git a/tools/hotplug/Linux/update-modules.sh b/tools/hotplug/Linux/update-modules.sh deleted file mode 100755 index 692d220..0000000 --- a/tools/hotplug/Linux/update-modules.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -set -e - -IFS='' - -XEN_ROOT=$1 -XEN_OS=$2 -XENCOMMONS_INITD=$3 - -cat $XEN_ROOT/config/${XEN_OS}.modules | ( - while read l ; do - if echo $l | egrep -q "^#" ; then - continue - fi - if echo "$l" | egrep -q "\|" ; then - m1=${l%%|*} - m2=${l#*|} - echo " modprobe $m1 2>/dev/null || modprobe $m2 2>/dev/null" - else - echo " modprobe $l 2>/dev/null" - fi - done -) > ${XENCOMMONS_INITD}.modules - -cat ${XENCOMMONS_INITD}.in | ( - while read l ; do - if echo "$l" | egrep -q "@LOAD_MODULES@" ; then - cat ${XENCOMMONS_INITD}.modules - else - echo $l - fi - done -) - -rm -f ${XENCOMMONS_INITD}.modules _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |