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.

After this change blktap2 and blktap will be loaded at the same time.
This is already done in out-of-tree xencommons scripts, and systemd will
load both modules as well. No harm is expected by loading both modules.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
[ ijc -- ran autogen.sh as requested ]
This commit is contained in:
Olaf Hering authored and Ian Campbell committed 2014-10-06 17:00:22 +01:00
1 parent 4e41f61135
commit b7567ae3b8
9 files changed
+91 -110

No files matched your search

-12
View File
@@ -235,15 +235,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
-20
View File
@@ -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
+2
View File
@@ -74,6 +74,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@
+42 -2
View File
@@ -699,6 +699,7 @@ qemu_xen
rombios
qemu_traditional
blktap2
LINUX_BACKEND_MODULES
blktap1
debug
seabios
@@ -789,6 +790,7 @@ enable_ovmf
enable_seabios
enable_debug
enable_blktap1
with_linux_backend_modules
enable_blktap2
enable_qemu_traditional
enable_rombios
@@ -1474,6 +1476,9 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-initddir=DIR Path to directory with sysv runlevel scripts.
[SYSCONFDIR/init.d]
--with-linux-backend-modules="mod1 mod2"
List of Linux backend module or modalias names to be
autoloaded on startup.
--with-system-qemu[=PATH]
Use system supplied qemu PATH or qemu (taken from
$PATH) as qemu-xen device model instead of building
@@ -2261,7 +2266,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_config_files="$ac_config_files ../config/Tools.mk 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/xendomains hotplug/Linux/systemd/proc-xen.mount hotplug/Linux/systemd/var-lib-xenstored.mount hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service hotplug/Linux/systemd/xen-watchdog.service hotplug/Linux/systemd/xenconsoled.service hotplug/Linux/systemd/xendomains.service hotplug/Linux/systemd/xenstored.service hotplug/Linux/systemd/xenstored.socket hotplug/Linux/systemd/xenstored_ro.socket hotplug/Linux/vif-setup hotplug/Linux/xen-backend.rules hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains"
ac_config_files="$ac_config_files ../config/Tools.mk hotplug/FreeBSD/rc.d/xencommons hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/xen-watchdog hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/systemd/proc-xen.mount hotplug/Linux/systemd/var-lib-xenstored.mount hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service hotplug/Linux/systemd/xen-watchdog.service hotplug/Linux/systemd/xenconsoled.service hotplug/Linux/systemd/xendomains.service hotplug/Linux/systemd/xenstored.service hotplug/Linux/systemd/xenstored.socket hotplug/Linux/systemd/xenstored_ro.socket hotplug/Linux/vif-setup hotplug/Linux/xen-backend.rules hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains"
ac_config_headers="$ac_config_headers config.h"
@@ -4001,6 +4006,41 @@ blktap1=$ax_cv_blktap1
# Check whether --with-linux-backend-modules was given.
if test "${with_linux_backend_modules+set}" = set; then :
withval=$with_linux_backend_modules; LINUX_BACKEND_MODULES="$withval"
else
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
fi
LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
# Check whether --enable-blktap2 was given.
if test "${enable_blktap2+set}" = set; then :
enableval=$enable_blktap2;
@@ -9541,7 +9581,7 @@ do
"hotplug/FreeBSD/rc.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/FreeBSD/rc.d/xencommons" ;;
"hotplug/Linux/init.d/sysconfig.xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/sysconfig.xencommons" ;;
"hotplug/Linux/init.d/xen-watchdog") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xen-watchdog" ;;
"hotplug/Linux/init.d/xencommons.in") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xencommons.in" ;;
"hotplug/Linux/init.d/xencommons") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xencommons" ;;
"hotplug/Linux/init.d/xendomains") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/init.d/xendomains" ;;
"hotplug/Linux/systemd/proc-xen.mount") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/systemd/proc-xen.mount" ;;
"hotplug/Linux/systemd/var-lib-xenstored.mount") CONFIG_FILES="$CONFIG_FILES hotplug/Linux/systemd/var-lib-xenstored.mount" ;;
+33 -1
View File
@@ -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],
+4 -10
View File
@@ -37,23 +37,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)
@@ -65,7 +59,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); \
@@ -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}
+6 -28
View File
@@ -38,31 +38,9 @@ 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):
rm -f $@.tmp
for mod in $(LINUX_BACKEND_MODULES) ; do \
echo $$mod ; \
done > $@.tmp
$(call move-if-changed,$@.tmp,$@)
-36
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.