<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">hello,<br>
<br>
I'm trying to use macvtap on Debian Wheezy.<br>
Actually, I've installed a recent version of libvirt and qemu from
wheezy-backports.<br>
<br>
$ virsh version<br>
Compiled against library: libvirt 1.2.1<br>
Using library: libvirt 1.2.1<br>
Using API: QEMU 1.2.1<br>
Running hypervisor: QEMU 1.7.0<br>
<br>
<br>
I'm trying to configure a macvtap interface like this:<br>
<br>
<br>
<interface type='direct'><br>
<mac address='52:54:00:7b:05:cd'/><br>
<source dev='eth1' mode='passthrough'/><br>
<model type='rtl8139'/><br>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x08' function='0x0'/><br>
</interface><br>
<br>
<br>
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.<br>
<br>
<br>
On my /etc/networks/interfaces, I have this:<br>
<br>
<br>
# start :: define eth1<br>
iface eth1 inet manual<br>
# end :: define eth1<br>
<br>
<br>
It does not matter whether eth1 is up or down, when I try to start
the VM, I get the following error:<br>
<br>
<blockquote><font face="Courier New, Courier, monospace">Error
starting domain: Cannot create macvlan devices on this
platform: Function not implemented<br>
<br>
Traceback (most recent call last):<br>
File "/usr/share/virt-manager/virtManager/asyncjob.py", line
45, in cb_wrapper<br>
callback(asyncjob, *args, **kwargs)<br>
File "/usr/share/virt-manager/virtManager/asyncjob.py", line
66, in tmpcb<br>
callback(*args, **kwargs)<br>
File "/usr/share/virt-manager/virtManager/domain.py", line
1114, in startup<br>
self._backend.create()<br>
File "/usr/lib/python2.7/dist-packages/libvirt.py", line
866, in create<br>
if ret == -1: raise libvirtError ('virDomainCreate()
failed', dom=self)<br>
libvirtError: Cannot create macvlan devices on this platform:
Function not implemented</font><br>
</blockquote>
<br>
Trying to solve the issue, I found this:<br>
<a
href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737097">http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737097</a><br>
<br>
<br>
I've tried to rebuild the package from Debian sources, but
apparently, macvtap is already defined, as I've reported to
another mailing list.<br>
For your information:<br>
<br>
<blockquote type="cite">I'm new to building packages from Debian
sources, so I followed instructions from <br>
<a moz-do-not-send="true"
href="https://wiki.debian.org/HowToPackageForDebian#Building_Debian_packages">https://wiki.debian.org/HowToPackageForDebian#Building_Debian_packages</a><br>
<blockquote>$ apt-get -t wheezy-backports source libvirt<br>
$ cd libvirt-0.9.12.3/<br>
$ sudo apt-get build-dep libvirt<br>
$ debuild -i -us -uc -b<br>
</blockquote>
So... yes, it works and builds without any errors.<br>
<br>
Next step now is applying the changes mentioned.<br>
But I'm confused because <i>apparently</i> debian/rules is
already the way it should be.<br>
<br>
<pre>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
<big><b> WITH_MACVTAP = --with-macvtap</b><b>
</b><b> WITH_NETWORK = --with-network</b><b>
</b></big> 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
<big><b> WITH_MACVTAP = --without-macvtap</b><b>
</b><b> WITH_NETWORK = --without-network</b><b>
</b></big> WITH_QEMU = --without-qemu
WITH_LXC = --without-lxc
WITH_NUMA = --without-numactl
WITH_NETCF = --without-netcf
endif
</pre>
I suppose that nothing has to be changed, correct? ... since the
<u><i>then</i></u> branch already has the change mentioned and
the <u><i>else</i></u> branch probably means that nothing
related to networking would be enabled anyway.<br>
<br>
Am I missing something ?</blockquote>
<br>
Thoughts?<br>
<br>
Thanks a lot :)<br>
<br>
<div class="moz-signature">Richard Gomes<br>
<a href="http://rgomes.info">http://rgomes.info</a><br>
<a href="http://www.linkedin.com/in/rgomes">http://www.linkedin.com/in/rgomes</a><br>
mobile: +44(77)9955-6813<br>
<a href="http://www.inum.net/">inum</a>: +883(5100)0800-9804<br>
<a class="moz-txt-link-abbreviated" href="mailto:sip:rgomes@ippi.fr">sip:rgomes@ippi.fr</a><br>
</div>
</div>
</body>
</html>