summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Bentele2021-09-01 12:32:13 +0200
committerManuel Bentele2021-09-01 12:32:13 +0200
commit31dfa2bc07f0fb4ebaa4ef70b1dc952b7348a160 (patch)
tree518ee9c66b184765f16c86b77569e91444614f55
parent[qemu] Enable OpenGL for SPICE graphics if Intel GVT-g is enabled (diff)
downloadmltk-31dfa2bc07f0fb4ebaa4ef70b1dc952b7348a160.tar.gz
mltk-31dfa2bc07f0fb4ebaa4ef70b1dc952b7348a160.tar.xz
mltk-31dfa2bc07f0fb4ebaa4ef70b1dc952b7348a160.zip
[qemu] Set listen address and port for looking-glass-client
-rw-r--r--core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidia.java10
-rw-r--r--core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/viewer/ViewerLookingGlassClient.java5
-rw-r--r--core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidiaTest.java11
3 files changed, 26 insertions, 0 deletions
diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidia.java b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidia.java
index e5d65c27..788c2fd1 100644
--- a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidia.java
+++ b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidia.java
@@ -6,11 +6,13 @@ import java.util.List;
import org.openslx.libvirt.capabilities.Capabilities;
import org.openslx.libvirt.domain.Domain;
+import org.openslx.libvirt.domain.device.GraphicsSpice;
import org.openslx.libvirt.domain.device.HostdevPci;
import org.openslx.libvirt.domain.device.HostdevPciDeviceAddress;
import org.openslx.libvirt.domain.device.HostdevPciDeviceDescription;
import org.openslx.libvirt.domain.device.Shmem;
import org.openslx.libvirt.domain.device.Video;
+import org.openslx.libvirt.domain.device.Graphics.ListenType;
import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs;
import org.openslx.runvirt.plugin.qemu.virtualization.LibvirtHypervisorQemu;
import org.openslx.runvirt.virtualization.LibvirtHypervisorException;
@@ -235,6 +237,14 @@ public class TransformationSpecificQemuGpuPassthroughNvidia
for ( Video videoDevice : config.getVideoDevices() ) {
videoDevice.disable();
}
+
+ // force SPICE graphics to listen on local address for looking-glass-client
+ for ( int i = 0; i < config.getGraphicSpiceDevices().size(); i++ ) {
+ final GraphicsSpice graphicsSpiceDevice = config.getGraphicSpiceDevices().get( i );
+ graphicsSpiceDevice.setListenType( ListenType.ADDRESS );
+ graphicsSpiceDevice.setListenAddress( GraphicsSpice.DEFAULT_ADDRESS );
+ graphicsSpiceDevice.setListenPort( GraphicsSpice.DEFAULT_PORT + i );
+ }
}
}
}
diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/viewer/ViewerLookingGlassClient.java b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/viewer/ViewerLookingGlassClient.java
index cea9ccd8..f41f9ba4 100644
--- a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/viewer/ViewerLookingGlassClient.java
+++ b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/viewer/ViewerLookingGlassClient.java
@@ -1,5 +1,6 @@
package org.openslx.runvirt.viewer;
+import org.openslx.libvirt.domain.device.GraphicsSpice;
import org.openslx.runvirt.virtualization.LibvirtHypervisor;
import org.openslx.runvirt.virtualization.LibvirtVirtualMachine;
import org.openslx.virtualization.Version;
@@ -90,12 +91,16 @@ public class ViewerLookingGlassClient extends Viewer
"app:shmFile=" + ViewerLookingGlassClient.SHARED_MEMORY_FILENAME,
"win:fullScreen=yes",
"spice:enable=yes",
+ "spice:host=" + GraphicsSpice.DEFAULT_ADDRESS,
+ "spice:port=" + GraphicsSpice.DEFAULT_PORT,
"win:alerts=no" };
} else {
viewerParameters = new String[] {
"app:shmFile=" + ViewerLookingGlassClient.SHARED_MEMORY_FILENAME,
"win:fullScreen=yes",
"spice:enable=yes",
+ "spice:host=" + GraphicsSpice.DEFAULT_ADDRESS,
+ "spice:port=" + GraphicsSpice.DEFAULT_PORT,
"win:alerts=yes",
"win:showFPS=yes" };
}
diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidiaTest.java b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidiaTest.java
index 55e40221..4c021363 100644
--- a/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidiaTest.java
+++ b/core/modules/qemu/runvirt-plugin-qemu/src/test/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationSpecificQemuGpuPassthroughNvidiaTest.java
@@ -16,6 +16,8 @@ import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.openslx.libvirt.capabilities.Capabilities;
import org.openslx.libvirt.domain.Domain;
+import org.openslx.libvirt.domain.device.Graphics.ListenType;
+import org.openslx.libvirt.domain.device.GraphicsSpice;
import org.openslx.libvirt.domain.device.HostdevPci;
import org.openslx.libvirt.domain.device.HostdevPciDeviceAddress;
import org.openslx.libvirt.domain.device.Shmem;
@@ -103,6 +105,15 @@ public class TransformationSpecificQemuGpuPassthroughNvidiaTest
assertEquals( Video.Model.NONE, videoDevice.getModel() );
}
+ final List<GraphicsSpice> graphicsSpiceDevices = config.getGraphicSpiceDevices();
+ assertNotNull( graphicsSpiceDevices );
+ for ( int i = 0; i < config.getGraphicSpiceDevices().size(); i++ ) {
+ final GraphicsSpice graphicsSpiceDevice = config.getGraphicSpiceDevices().get( i );
+ assertEquals( ListenType.ADDRESS, graphicsSpiceDevice.getListenType() );
+ assertEquals( GraphicsSpice.DEFAULT_ADDRESS, graphicsSpiceDevice.getListenAddress() );
+ assertEquals( GraphicsSpice.DEFAULT_PORT + i, graphicsSpiceDevice.getListenPort() );
+ }
+
assertDoesNotThrow( () -> config.validateXml() );
}