Looking Glass - Triage

It must be, because I use it daily and play PUBG which uses BattlEye.

Thats fine until you start running a Linux Guest and a Windows Guest with LG running VM->VM. evdev capture can not handle this scenario.

good to know, hadnā€™t gotten around to testing it myself yet.

I have been banned for playing hearthstone on WINE, before though

doā€¦ do people do that?

not an edge case I had considered

I do that :). TR is such a powerful platform its stupid to dedicate it to a desktop environment only.

The actual host spins up 6 VMs (web-dev, asterisk, bareos, gitlab, windows, linux workstation), using OpenVSwitch to VLAN tag them keeping them isolated from the ā€œUnsecureā€ network which the Windows guest runs on. My workstation is a Guest with a VEGA passthrough, and Windows is a NVIDIA passthrough.

2 Likes

are you just running a headless hypervisor/homelab type thing?

I knew a few folks that did that on xen/esxi way back when

Essentially, I used to run XEN and dreamed of the day I could run my workstation on the same machine. Now that day is here, and I do just that. The experience is exceptional, being able to reboot VMs independently of each other (except for the vega bug) and keep on working away.

Ie, windows does an update, so I just push Looking Glass onto another workspace while I keep chatting with my mates on TS which is running in the Linux guest.

I dedicate 4 cores to windows, and 4 to my workstation, and it never misses a beat. I export the underlying filesystem to the linux guest as a NFS share, so the guest doesnā€™t have to worry about ZFS, etcā€¦

makes sense, and yeah hw virt has definitely come a long way in just a few years.

fun fact: you can expose a zfs vdev as a block device if you want

there are people getting quadro passthrough working on bhyve right now, as soon as the wrinkles are ironed out on that I really want to set up something similar

Yes, I am aware of this, which is where the rootfs lives, but /home is mounted as a NFS share, making it easy for backup/snapshots, etc.

Left: three machines, the host, a remote server, and my backup VM.
Middle: Looking Glass + PUBG :slight_smile:
Top: Browser
Right: webtask.io project I am working on at current.

The main reason to run the workstation seperate from the host, is security. Since I do a ton of development, I can not risk a stray command, rogue script, or bad bit of code, blowing away the other VMs. The worst the Linux guest can do, is screw itself.

5 Likes

ah, yeah thatā€™s a good idea

Oh, and this has also cut my power bill down by 40%, since I was able to deprecate the office server and integrate it all into the one machine.

4 Likes

Thatā€™s great! Something people forget about a lot is the power bill.

For my understanding regarding LG: are keyboard and mouse redirections made through the Spice server set on the VM?

Oh, of course! :sweat_smile: Forgive me. Between the Linux host and the Linux guest, I got confused and lost sight of which step I should follow. After adding the shmem device in XML, I got the server running correctly in Windows.

In Linux, however, Iā€™m getting an error in the client:

Client

[I] main.c:692 | run | Looking Glass ()
[I] main.c:693 | run | Locking Method: Atomic
[I] main.c:686 | try_renderer | Using Renderer: OpenGL
[I] main.c:775 | run | Using: OpenGL
[E] main.c:635 | map_memory | Failed to stat the shared memory file: /dev/shm/looking-glass
[E] main.c:860 | run | Failed to map memory

Maybe worth mentioning: For these instructions:

It is suggested that you create the shared memory file before starting the VM with the appropriate permissions for your system, this only needs to be done once at boot time, for example (this is a sample script only, do not use this without altering it for your requirements):

touch /dev/shm/looking-glass
chown user:kvm /dev/shm/looking-glass
chmod 660 /dev/shm/looking-glass

There is no ā€˜kvmā€™ user in unraid, so I did chmod 777.

Edit: For reference, Iā€™m using the A11 client. I also tried A10 and it gives the same result.

Are you trying to run VM->VM? If so read the README.md file in the module folder.

Answered my own question.
Tried the evdev method + VFIO drivers for mouse/keyboard: works great with LG!!
Never enjoyed CTRL-CTRL that much :wink:

2 Likes

image

Thanks for the evdev method. it seems to be working nicely.

However, I had issues with permissions. Apparently by default libvirt runs qemu instances as ā€œnobodyā€ user. I had to make qemu run as root to solve permissions issues which is probably not secure. I am planning on setting up a new user that will run the qemu and put him in the ā€œinputā€ group. or do you have a better idea?

awesome, looking forward to hearing progress on that front

2 Likes

that last point is really interesting, as there are certain bioses that seem to run bug-free. Maybe try using the shim wolf0/ohgodacompany provides to load the water edition sapphire bios on system startup instead?

1 Like

yeah this could definitely have been made easier

PSP does stand for the same thing on their GPUs, itā€™s just a different implementation that prevents flashing unsigned bioses, which is why the shimming tools are everywhere now given that mining needs significantly different settings than stock.