diff --git a/dracut.spec b/dracut.spec index d5e89955..326a3e7b 100644 --- a/dracut.spec +++ b/dracut.spec @@ -168,6 +168,7 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/dracut/modules.d/10redhat-i18n %{_datadir}/dracut/modules.d/10rpmversion %{_datadir}/dracut/modules.d/50plymouth +%{_datadir}/dracut/modules.d/60xen %{_datadir}/dracut/modules.d/90crypt %{_datadir}/dracut/modules.d/90dm %{_datadir}/dracut/modules.d/90dmraid diff --git a/modules.d/60xen/check b/modules.d/60xen/check new file mode 100644 index 00000000..fbad0128 --- /dev/null +++ b/modules.d/60xen/check @@ -0,0 +1,12 @@ +#!/bin/bash + +# No Xen-detect? Boo!! +which xen-detect >/dev/null 2>&1 || exit 1 + +. $dracutfunctions +[[ $debug ]] && set -x + +# Yes, we are under Xen PV env. +xen-detect | egrep -q -v 'PV' || exit 0 + +exit 1 diff --git a/modules.d/60xen/install b/modules.d/60xen/install new file mode 100644 index 00000000..71a508fc --- /dev/null +++ b/modules.d/60xen/install @@ -0,0 +1,4 @@ +#!/bin/bash +inst xen-detect +inst_hook pre-udev 40 "$moddir/xen-pre-udev.sh" + diff --git a/modules.d/60xen/installkernel b/modules.d/60xen/installkernel new file mode 100644 index 00000000..cb140642 --- /dev/null +++ b/modules.d/60xen/installkernel @@ -0,0 +1,9 @@ +#!/bin/bash + +for i in \ + xenbus_probe_frontend xen-pcifront \ + xen-fbfront xen-kbdfront xen-blkfront xen-netfront \ + ; do + modinfo -k $kernel $i >/dev/null 2>&1 && instmods $i +done + diff --git a/modules.d/60xen/xen-pre-udev.sh b/modules.d/60xen/xen-pre-udev.sh new file mode 100644 index 00000000..96faf44d --- /dev/null +++ b/modules.d/60xen/xen-pre-udev.sh @@ -0,0 +1,10 @@ +xen-detect +RC=$? +if [ "$RC" = "1" ] ; then + modprobe xenbus_probe_frontend + modprobe xen-kbdfront + modprobe xen-fbfront + modprobe xen-blkfront + modprobe xen-netfront + modprobe xen-pcifront +fi