test "x$QEMU" = "xno" && AC_MSG_ERROR([qemu must be installed])
AC_DEFINE_UNQUOTED([QEMU],["$QEMU"],[Location of qemu binary.])
-dnl Check that the chosen qemu has vmchannel support or we can
-dnl fallback to null vmchannel (still using SLIRP). See the
-dnl discussion in the README file.
+dnl Check that the chosen qemu has virtio-serial support.
if test "x$vmchannel_test" != "xno"; then
- AC_MSG_CHECKING([for guestfwd support in $QEMU])
- if $QEMU -nographic --help | grep -sq guestfwd; then
+ AC_MSG_CHECKING([for virtio-serial support in $QEMU])
+ if $QEMU -nographic -device \? 2>&1 | grep -sq virtio-serial; then
AC_MSG_RESULT([yes])
vmchannel_guestfwd=guestfwd
else
AC_MSG_RESULT([no])
- # Note that this test must be conditional on the previous
- # test failing. This is because recent qemu will throw
- # up an SDL window and hang if we try to run this test.
- AC_MSG_CHECKING([for "-net channel" (old guestfwd) support in $QEMU])
- vmchannelout=`$QEMU -nographic -net channel /dev/zero 2>&1 ||:`
- echo "vmchannel test command output: $vmchannelout" >&AS_MESSAGE_LOG_FD
- if echo "$vmchannelout" | grep -sq "vmchannel wrong port number" ; then
- AC_MSG_RESULT([yes])
- vmchannel_guestfwd=net_channel
- else
- AC_MSG_RESULT([no])
- vmchannel_guestfwd=no
- fi
- fi
-
- AC_MSG_CHECKING([for "-net user" (user mode network) support in $QEMU])
- if $QEMU -nographic --help | grep -sq -- "-net user"; then
- AC_MSG_RESULT([yes])
- vmchannel_net_user=yes
- else
- AC_MSG_RESULT([no])
- vmchannel_net_user=no
- fi
-
- if test "x$vmchannel_net_user" = "xno" && test "x$vmchannel_guestfwd" = "xno"; then
AC_MSG_FAILURE(
-[I did not find user mode network or vmchannel support in
+[I did not find virtio-serial support in
$QEMU.
-Either user mode networking or vmchannel support is vital for
-libguestfs to operate.
+virtio-serial support in qemu or KVM is essential for libguestfs
+to operate.
-Please read the relevant section in the README file for more
-information about this.
+Usually this means that you have to install a newer version of qemu
+and/or KVM. Please read the relevant section in the README file for
+more information about this.
You can override this test by setting the environment variable
vmchannel_test=no However if you don't have the right support