[elbe-devel] [PATCH] Port forwarding with newer qemu versions

bage at linutronix.de bage at linutronix.de
Fri Apr 12 09:23:29 CEST 2019


From: Bastian Germann <bage at linutronix.de>

The -redir flag does not work with QEMU >= 2.9. Replace it with an equivalent
-netdev flag with hostfwd option. Unfortunately it cannot be connected to the
libvirt domain's <interface>, so create this also via the qemu namespace.

This enables the port forwarding on buster, so that elbe can be used on buster
in general. This fixes #150.

Signed-off-by: Bastian Germann <bage at linutronix.de>
---
 elbepack/init/libvirt.xml.mako | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/elbepack/init/libvirt.xml.mako b/elbepack/init/libvirt.xml.mako
index 4174256f..c33609e7 100644
--- a/elbepack/init/libvirt.xml.mako
+++ b/elbepack/init/libvirt.xml.mako
@@ -28,6 +28,10 @@ img = os.path.join(opt.directory, 'buildenv.img')
 
 emulator = prj.text('interpreter', default=defs, key='interpreter')
 nicmac = prj.text('buildimage/NIC/MAC', default=defs, key='nicmac')
+forward = ''
+for f in prj.node("portforwarding"):
+    forward += ',hostfwd=%s::%s-:%s' % (
+        f.text("proto"), f.text("host"), f.text("buildenv"))
 
 %><domain type='kvm'
 xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
@@ -78,17 +82,11 @@ xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
       <address type='virtio-serial' controller='0' bus='0'
       port='1' />
     </channel>
-    <interface type='user' >
-      <mac address='${nicmac}'/>
-      <model type='virtio'/>
-    </interface>
   </devices>
-%if prj.has("portforwarding"):
   <qemu:commandline>
-  %for f in prj.node('portforwarding'):
-    <qemu:arg value='-redir' />
-    <qemu:arg value='${f.text("proto")}:${f.text("host")}::${f.text("buildenv")}' />
-  %endfor
+    <qemu:arg value='-netdev' />
+    <qemu:arg value='user,id=user.0${forward}' />
+    <qemu:arg value='-device' />
+    <qemu:arg value='virtio-net-pci,netdev=user.0,mac=${nicmac}' />
   </qemu:commandline>
-% endif
 </domain>
-- 
2.20.1




More information about the elbe-devel mailing list