Return to

Connect client to remote VM


I guess my setup is pretty unique from what I have read I believe the main use case for LG is running the client on the same PC that hosts the VM or from VM to VM on the same PC.

My virtual machine host is not the same PC I want to run the LG client from. I have a server on the LAN running my virtual machines. I have a graphics card on the server that I have successfully passed through to the Windows 10 VM which is running the LG Host.

I thought that I could use sshfs to map the /dev/shm/looking-glass to my main PC (Ubuntu 19.10) where I want to run the client from, however, that doesn’t appear to work. The client runs, opens a window with a purple background and the LG logo but never shows the VM desktop.

Is it possible to make it work this way?

Output from LG client:

[email protected]:~/Downloads/LookingGlass-B1/client/build$ ./looking-glass-client -f /mnt/looking-glass-remote-shm/looking-glass -c -p 5902 -s
[I]               main.c:996  | run                            | Looking Glass (B1-rc6-5-g8ad2d5f949+1)
[I]               main.c:997  | run                            | Locking Method: Atomic
[I]                egl.c:187  | egl_initialize                 | Double buffering is on
[I]                egl.c:201  | egl_initialize                 | Multsampling enabled, max samples: 4
[I]               main.c:902  | try_renderer                   | Using Renderer: EGL
[I]               main.c:1183 | run                            | Using Clipboard: X11
[I]               main.c:1259 | run                            | Waiting for host to signal it's ready...
[I]                egl.c:447  | egl_render_startup             | Vendor  : Intel Open Source Technology Center
[I]                egl.c:448  | egl_render_startup             | Renderer: Mesa DRI Intel(R) HD Graphics 630 (Kaby Lake GT2) 
[I]                egl.c:449  | egl_render_startup             | Version : OpenGL ES 3.2 Mesa 19.2.8

Thank you

full framebuffer relay over the network is possible. but the hardware requirements are well out-of-reach for most people.
what resolution and refresh rate is the VM’s display?
and what is the bandwidth between the client and host?

youd basically need to be able to send an image across the network as fast (maybe faster) than the VM host can perform a few RAM copy instructions. as IVSHMEM is at its core just a series of reads/writes and copies to RAM.

the software side of such a setup is arguably the hard part of this. first thing that comes to my mind is to setup RDMA (basically RAM over IP) and somehow tell qemu and looking glass client to put the IVSHMEM file there.
sshfs, nfs, cifs and all that will likely never work. IVSHMEM data is only ever supposed to exist in RAM, so forcing the client to see it as being inside of a filesystem (even a remote filesystem) will probably break things every single time.

if any of the above is misinformed/wrong, somebody please correct me.

There has been some discussion on this-

Thank you both for your feedback, much appreciated. Clearly my understanding of /dev/shm is flawed. Thanks for the link to “Looking Glass over Cat6 Cable”, I did try some searching on the site before posting but didn’t find that one. I’ll read it in more details as soon as time allows.