mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
4e41f61135
commit
b7567ae3b8
9 files changed
+91
-110
No files matched your search
@@ -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
|
||||
@@ -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
|
||||
@@ -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@
|
||||
|
||||
Vendored
+42
-2
@@ -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
@@ -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],
|
||||
|
||||
@@ -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); \
|
||||
|
||||
+4
-1
@@ -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}
|
||||
|
||||
@@ -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,$@)
|
||||
@@ -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
|
||||