Set network interface to ne2k_pci (workaround for RHBZ#516022).

This commit is contained in:
Richard W.M. Jones 2009-08-07 08:38:23 +00:00
parent b737f1b1cc
commit 9f24b45fa0
2 changed files with 67 additions and 4 deletions

View File

@ -0,0 +1,53 @@
From b5b87cdb764dc757295316878a7fd6e2ff01bec4 Mon Sep 17 00:00:00 2001
From: Richard Jones <rjones@trick.home.annexia.org>
Date: Fri, 7 Aug 2009 09:31:35 +0100
Subject: [PATCH] Allow network interface to be configured.
Add ./configure --with-net-if=(virtio|ne2k_pci) option.
This lets you workaround the following virtio_net bug:
https://bugzilla.redhat.com/show_bug.cgi?id=516022
---
configure.ac | 11 +++++++++++
src/guestfs.c | 2 +-
2 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/configure.ac b/configure.ac
index f6f1735..cf0591d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -138,6 +138,17 @@ AC_ARG_WITH([drive-if],
[with_drive_if=ide])
AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.])
+dnl Set interface used by the network. Normally you should
+dnl leave this at the default (virtio) but you can use the
+dnl alternative (ne2k_pci) because of bugs in virtio networking
+dnl eg. https://bugzilla.redhat.com/show_bug.cgi?id=516022
+AC_ARG_WITH([net-if],
+ [AS_HELP_STRING([--with-net-if],
+ [set default net driver (virtio|ne2k_pci) @<:@default=virtio@:>@])],
+ [],
+ [with_net_if=virtio])
+AC_DEFINE_UNQUOTED([NET_IF],["$with_net_if"],[Default network interface.])
+
dnl Check for febootstrap etc.
AC_CHECK_PROG([FEBOOTSTRAP],
[febootstrap],[febootstrap],[no])
diff --git a/src/guestfs.c b/src/guestfs.c
index de63275..186c570 100644
--- a/src/guestfs.c
+++ b/src/guestfs.c
@@ -1103,7 +1103,7 @@ guestfs_launch (guestfs_h *g)
}
#endif
add_cmdline (g, "-net");
- add_cmdline (g, "nic,model=virtio,vlan=0"); /* model=ne2k_pci also works */
+ add_cmdline (g, "nic,model=" NET_IF ",vlan=0");
/* These options recommended by KVM developers to improve reliability. */
if (qemu_supports (g, "-no-hpet"))
--
1.6.2.5

View File

@ -5,13 +5,15 @@ Summary: Access and modify virtual machine disk images
Name: libguestfs
Epoch: 1
Version: 1.0.66
Release: 1%{?dist}
Release: 2%{?dist}
License: LGPLv2+
Group: Development/Libraries
URL: http://libguestfs.org/
Source0: http://libguestfs.org/download/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Patch0: 0001-Allow-network-interface-to-be-configured.patch
# Basic build requirements:
BuildRequires: /usr/bin/pod2man
BuildRequires: /usr/bin/pod2text
@ -292,6 +294,8 @@ Requires: jpackage-utils
mkdir -p daemon/m4
%patch0 -p1
%build
%if %{buildnonet}
@ -303,12 +307,14 @@ createrepo repo
%define extra %nil
%endif
# --with-net-if=ne2k_pci is a workaround for RHBZ#516022.
./configure \
--prefix=%{_prefix} --libdir=%{_libdir} \
--mandir=%{_mandir} \
--with-qemu="qemu-kvm qemu-system-%{_build_arch} qemu" \
--enable-debug-command \
--enable-supermin \
--with-net-if=ne2k_pci \
%{extra}
# This ensures that /usr/sbin/chroot is on the path. Not needed
@ -340,11 +346,12 @@ export LIBGUESTFS_DEBUG=1
# 507066 all F-12 sequence of chroot calls (FIXED)
# 513249 all F-12 guestfwd broken in qemu (FIXED)
# 516022 all F-12 virtio-net gives "Network is unreachable" errors
# (WORKAROUND ENABLED)
# 516096 ? F-11 race condition in swapoff/blockdev --rereadpt
#%ifarch x86_64
#make check
#%endif
%ifarch x86_64
make check
%endif
%install
@ -538,6 +545,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
* Fri Aug 7 2009 Richard W.M. Jones <rjones@redhat.com> - 1.0.66-2
- Set network interface to ne2k_pci (workaround for RHBZ#516022).
* Thu Aug 6 2009 Richard W.M. Jones <rjones@redhat.com> - 1.0.66-1
- New upstream release 1.0.66.