
( Posting again. Correct subject line now! ) Hello, I'm trying to use macvtap on Debian Wheezy. Actually, I've installed a recent version of libvirt and qemu from Jessie, using wheezy-backports. $ virsh version Compiled against library: libvirt 1.2.1 Using library: libvirt 1.2.1 Using API: QEMU 1.2.1 Running hypervisor: QEMU 1.7.0 I'm trying to configure a macvtap interface like this: <interface type='direct'> <mac address='52:54:00:7b:05:cd'/> <source dev='eth1' mode='passthrough'/> <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </interface> The interface eth1 is used exclusively by this VM, so as far as I understand, mode 'passthrough' is enough since I'd like to "plug" the VM straight onto a public static IP. On my /etc/networks/interfaces, I have this: # start :: define eth1 iface eth1 inet manual # end :: define eth1 It does not matter whether eth1 is up or down, when I try to start the VM, I get the following error: Error starting domain: Cannot create macvlan devices on this platform: Function not implemented Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45, in cb_wrapper callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/asyncjob.py", line 66, in tmpcb callback(*args, **kwargs) File "/usr/share/virt-manager/virtManager/domain.py", line 1114, in startup self._backend.create() File "/usr/lib/python2.7/dist-packages/libvirt.py", line 866, in create if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self) libvirtError: Cannot create macvlan devices on this platform: Function not implemented Trying to solve the issue, I found this: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737097 I've tried to rebuild the package from Debian sources, but apparently, macvtap is already defined, as I've reported to another mailing list. For your information:
I'm new to building packages from Debian sources, so I followed instructions from
https://wiki.debian.org/HowToPackageForDebian#Building_Debian_packages
$ apt-get -t wheezy-backports source libvirt $ cd libvirt-0.9.12.3/ $ sudo apt-get build-dep libvirt $ debuild -i -us -uc -b
So... yes, it works and builds without any errors.
Next step now is applying the changes mentioned. But I'm confused because /apparently/ debian/rules is already the way it should be.
ifneq (,$(findstring $(DEB_HOST_ARCH_OS), linux)) WITH_STORAGE_LVM = --with-storage-lvm WITH_STORAGE_ISCSI = --with-storage-iscsi WITH_STORAGE_DISK = --with-storage-disk WITH_UDEV = --with-udev --without-hal WITH_CAPNG = --with-capng WITH_POLKIT = --with-polkit * WITH_MACVTAP = --with-macvtap** ** WITH_NETWORK = --with-network** * WITH_QEMU = --with-qemu WITH_OPENVZ = --with-openvz WITH_NETCF = --with-netcf ifneq (,$(findstring $(DEB_HOST_ARCH), amd64 i386 ia64 mips mipsel powerpc)) WITH_NUMA = --with-numactl else WITH_NUMA = --without-numactl endif ifneq (,$(findstring $(DEB_HOST_ARCH), ia64)) WITH_LXC = --without-lxc else WITH_LXC = --with-lxc endif else WITH_STORAGE_LVM = --without-storage-lvm WITH_STORAGE_ISCSI = --without-storage-iscsi WITH_STORAGE_DISK = --without-storage-disk WITH_UDEV = --without-udev --with-hal WITH_CAPNG = --without-capng WITH_POLKIT = --without-polkit * WITH_MACVTAP = --without-macvtap** ** WITH_NETWORK = --without-network** * WITH_QEMU = --without-qemu WITH_LXC = --without-lxc WITH_NUMA = --without-numactl WITH_NETCF = --without-netcf endif
I suppose that nothing has to be changed, correct? ... since the _/then/_ branch already has the change mentioned and the _/else/_ branch probably means that nothing related to networking would be enabled anyway.
Am I missing something ?
Thoughts? Thanks a lot :) -- Richard Gomes http://rgomes.info http://www.linkedin.com/in/rgomes mobile: +44(77)9955-6813 inum <http://www.inum.net/>: +883(5100)0800-9804 sip:rgomes@ippi.fr