( 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