<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">( Answering my own question )<br>
<br>
<br>
<b>Support for macvtap</b><br>
<br>
In a nutshell, Debian Wheezy does not support macvtap due to two
reasons:<br>
1. kernel 3.6+ is required, but Wheezy is based on kernel 3.2<br>
2. recent versions of libvirt and qemu are required.<br>
<br>
In order to solve the trouble, you basically need to pull recent
versions of packages linux-image, qemu and libvirt from
wheezy-backports.<br>
Something like this on an <i>amd64</i> host:<br>
<blockquote>$ apt-get install -t wheezy-backports linux-image-<i>amd64</i>
qemu-kvm virt-manager<br>
</blockquote>
I haven't tested this, actually. I've installed Debian Jessie from
scratch instead.<br>
<br>
<br>
<b>Other aspects to consider</b><br>
<br>
You have to double check whether your host supports
virtualization.<br>
Despite this sounds silly... even if your hardware supports
virtualization, eventually you may not have virtualization enabled
in your host.<br>
<br>
In an amd64 host, change IOMMU in grub defaults at <i>/etc/default/grub</i>,
like shown below in <b><font color="#3333ff">blue</font></b>:<br>
<blockquote>GRUB_CMDLINE_LINUX_DEFAULT="quiet
transparent_hugepage=always elevator=noop <b><font
color="#3366ff">iommu=on,calgary,noaperture</font></b>"<br>
</blockquote>
Then update grub and reboot:<br>
<blockquote>$ sudo update-grub<br>
$ sudo grub-install <font color="#ff0000">/dev/sda (or whatever
your harddisk is)</font><br>
$ sudo reboot<br>
</blockquote>
<br>
I hope it helps<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>
<br>
</div>
On 31/01/14 19:06, Richard Gomes wrote:<br>
</div>
<blockquote cite="mid:52EBF418.2060805@yahoo.co.uk" type="cite">
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
( Posting again. Correct subject line now! )<br>
<br>
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
Jessie, using 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 moz-do-not-send="true"
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 :)
<div class="moz-signature">-- <br>
Richard Gomes<br>
<a moz-do-not-send="true" href="http://rgomes.info">http://rgomes.info</a><br>
<a moz-do-not-send="true"
href="http://www.linkedin.com/in/rgomes">http://www.linkedin.com/in/rgomes</a><br>
mobile: +44(77)9955-6813<br>
<a moz-do-not-send="true" href="http://www.inum.net/">inum</a>:
+883(5100)0800-9804<br>
<a moz-do-not-send="true" class="moz-txt-link-abbreviated"
href="mailto:sip:rgomes@ippi.fr">sip:rgomes@ippi.fr</a><br>
<br>
</div>
</blockquote>
<br>
</body>
</html>