[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v10 1/3] xencommons: move module list into a generic place
From: "Luis R. Rodriguez" <mcgrof@xxxxxxxx> This will allow us to share the same module list with systemd, and lets us upkeep it in one place. Document this while at it on the top level README and expand on the wiki: http://wiki.xen.org/wiki/Category:Host_Configuration#Kernel_modules In order to upkeep parallelism builds be explicit about the requirement to complete all actions before any installation targets. Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx> --- README | 12 +++++++++ config/Linux.modules | 20 +++++++++++++++ tools/hotplug/Linux/Makefile | 13 ++++++---- .../Linux/init.d/{xencommons => xencommons.in} | 16 +----------- tools/hotplug/Linux/update-modules.sh | 30 ++++++++++++++++++++++ 5 files changed, 71 insertions(+), 20 deletions(-) create mode 100644 config/Linux.modules rename tools/hotplug/Linux/init.d/{xencommons => xencommons.in} (89%) create mode 100755 tools/hotplug/Linux/update-modules.sh diff --git a/README b/README index 9bbe734..0c8c7aa 100644 --- a/README +++ b/README @@ -183,3 +183,15 @@ 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 new file mode 100644 index 0000000..8a764df --- /dev/null +++ b/config/Linux.modules @@ -0,0 +1,20 @@ +# 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/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile index d5de9e6..39467cb 100644 --- a/tools/hotplug/Linux/Makefile +++ b/tools/hotplug/Linux/Makefile @@ -6,7 +6,7 @@ XENDOMAINS_INITD = init.d/xendomains XENDOMAINS_LIBEXEC = xendomains XENDOMAINS_SYSCONFIG = init.d/sysconfig.xendomains -XENCOMMONS_INITD = init.d/xencommons +export XENCOMMONS_INITD = init.d/xencommons XENCOMMONS_SYSCONFIG = init.d/sysconfig.xencommons # Xen script dir and scripts to go there. @@ -33,17 +33,20 @@ UDEV_RULES_DIR = $(CONFIG_DIR)/udev UDEV_RULES = xen-backend.rules $(UDEV_RULES-y) .PHONY: all -all: +all: $(XENCOMMONS_INITD) + +$(XENCOMMONS_INITD): $(XEN_ROOT)/config/$(XEN_OS).modules $(XENCOMMONS_INITD).in + $(XEN_ROOT)/tools/hotplug/Linux/update-modules.sh > $@ .PHONY: build -build: +build: all .PHONY: install install: all install-initd install-scripts install-udev # See docs/misc/distro_mapping.txt for INITD_DIR location .PHONY: install-initd -install-initd: +install-initd: all [ -d $(DESTDIR)$(INITD_DIR) ] || $(INSTALL_DIR) $(DESTDIR)$(INITD_DIR) [ -d $(DESTDIR)$(SYSCONFIG_DIR) ] || $(INSTALL_DIR) $(DESTDIR)$(SYSCONFIG_DIR) [ -d $(DESTDIR)$(LIBEXEC) ] || $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC) @@ -55,7 +58,7 @@ install-initd: $(INSTALL_PROG) init.d/xen-watchdog $(DESTDIR)$(INITD_DIR) .PHONY: install-scripts -install-scripts: +install-scripts: all [ -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 b/tools/hotplug/Linux/init.d/xencommons.in similarity index 89% rename from tools/hotplug/Linux/init.d/xencommons rename to tools/hotplug/Linux/init.d/xencommons.in index 4ebd636..3939bcc 100644 --- a/tools/hotplug/Linux/init.d/xencommons +++ b/tools/hotplug/Linux/init.d/xencommons.in @@ -57,21 +57,7 @@ do_start () { local time=0 local timeout=30 - modprobe xen-evtchn 2>/dev/null - modprobe xen-gntdev 2>/dev/null - modprobe xen-gntalloc 2>/dev/null - modprobe xen-blkback 2>/dev/null - modprobe xen-netback 2>/dev/null - modprobe xen-pciback 2>/dev/null - modprobe evtchn 2>/dev/null - modprobe gntdev 2>/dev/null - modprobe netbk 2>/dev/null - modprobe blkbk 2>/dev/null - modprobe xen-scsibk 2>/dev/null - modprobe usbbk 2>/dev/null - modprobe pciback 2>/dev/null - modprobe xen-acpi-processor 2>/dev/null - modprobe blktap2 2>/dev/null || modprobe blktap 2>/dev/null + @LOAD_MODULES@ mkdir -p /var/run/xen if ! `${BINDIR}/xenstore-read -s / >/dev/null 2>&1` diff --git a/tools/hotplug/Linux/update-modules.sh b/tools/hotplug/Linux/update-modules.sh new file mode 100755 index 0000000..f9c10e2 --- /dev/null +++ b/tools/hotplug/Linux/update-modules.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +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#*|} + 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 -- 2.0.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |