<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>