Return to Level1Techs.com

Looking Glass - Guides, Help and Support

iommu
lookingglass

#640

What happens when you run looking-glass-client without Spice (-s)?


#641

it’s the same, of course without the spice messages


#642

Did you install IVSHMEM driver on Windows10(GuestOS) on device “PCI standard RAM controller”?
[https://github.com/virtio-win/kvm-guest-drivers-windows/issues/217]
Be carefull, Windows Update sometimes reinstall device with original driver!

What is output run "looking-glass-host.exe -f " on GuestOS?


#643

Yeah, IVSHMEM Driver is still installed (already checked every step from guide again)

looking-glass-host.exe -f
[I]     CaptureFactory.h:83   | CaptureFactory::DetectDevice   | Trying NvFBC
[E]            NvFBC.cpp:68   | Capture::NvFBC::Initialize     | Failed to load the NvFBC library: 126 - C:\WINDOWS\System3    2\NvFBC64.dll
[I]     CaptureFactory.h:83   | CaptureFactory::DetectDevice   | Trying DXGI
[I]     CaptureFactory.h:86   | CaptureFactory::DetectDevice   | Using DXGI

#644

Maybe 32MB of share memory is not enough for your resolution 2560x1080. Try size 64MB.

[email protected]:~$ sudo ./lgshp.sh 
*** Example code, do not use in production ***
[I]               main.c:680  | run                            | Looking Glass (a10-50-gfd8d4d3d38)
[I]               main.c:681  | run                            | Locking Method: Atomic
[I]               main.c:674  | try_renderer                   | Using Renderer: OpenGL
[I]               main.c:762  | run                            | Using: OpenGL
[I]               main.c:877  | run                            | Waiting for host to signal it's ready...
[I]               main.c:881  | run                            | Host ready, starting session
[I]               main.c:172  | updatePositionInfo             | client 3840x2160, guest 3840x2160, target 3840x2160, scaleX: 1.00, scaleY 1.00
[I]               main.c:172  | updatePositionInfo             | client 1024x768, guest 3840x2160, target 1024x576, scaleX: 3.75, scaleY 3.75
[W]               main.c:175  | updatePositionInfo             | Window size doesn't match guest resolution, cursor alignment may not be reliable
[I]               main.c:172  | updatePositionInfo             | client 3840x2160, guest 3840x2160, target 3840x2160, scaleX: 1.00, scaleY 1.00
[I]             opengl.c:542  | configure                      | Vendor  : NVIDIA Corporation
[I]             opengl.c:543  | configure                      | Renderer: GeForce GTX 960/PCIe/SSE2
[I]             opengl.c:544  | configure                      | Version : 4.6.0 NVIDIA 396.18
[I]             opengl.c:575  | configure                      | Using decoder: NULL

#645

it already worked with this configuration and if you use the equation for calculating it (height x width x 2 x 4), you get ~ 21MB, so 32 should be plenty enough


#646

I am running Linux Mint 18.3 (Ubuntu 16.04 base), and am stumped right out of the gate. When trying to add the lines to my VM XML config I get an error;

error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Extra element devices in interleave
Element domain failed to validate content

I have tried both of the different versions and neither work.


#647

I’m an idiot, should have watched first on github… The problem is mesa-18, already reported as issue on github, downgrading to 17.3.7 or “-o opengl:preventBuffer=0” fixes it


#648

@wendell @gnif @sgtawesomesauce

this might be a long shot but how hard would it be too make lg bind to a different VT like vt6 instead of vt7. This could be a ok-ish solution for sharing one monitor and two systems.


#649

After adding the Alternative syntax to my libvirt file, I get the following error when trying to start the VM. I have checked the looking-glass file and I am the owner of it so I’m not sure what the problem is. Its probably something obvious that I’m just missing.

Error starting domain: internal error: process exited while connecting to monitor: 2018-04-25T13:40:21.597329Z qemu-system-x86_64: -object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/looking-glass,size=32M: unable to create backing store for hugepages: Permission denied

I am running Linux Mint 18.3 KDE


#650

I even tried doing chmod 777 /dev/shm/looking-glass just temporarily to see if it would work, and it still throws out the same error.


#651

Please see the FAQ page.

https://looking-glass.hostfission.com/node/28


#652

I have read through the FAQ about a dozen times by now and I still cant get this.

So, when I launch a VM it gets launched by the user libvirt-qemu So I made sure that when I launch the ivshmem-server that I am launching as that user using sudo -u libvirt-qemu ivshmem-server -p /tmp/ivshmem.pid -S /tmp/ivshmem_socket -l 32M -n 8.

Next, I made sure that;
/tmp/ivshmem_socket
/tmp/ivshmem.pid
/dev/shm/ivshmem
/dev/shm/looking-glass
are all owned by the user “libvirt-qemu” and the group “KVM” Yet every time I try to boot my VM i get;
Error starting domain: internal error: process exited while connecting to monitor: 2018-04-25T18:02:38.468826Z qemu-system-x86_64: -object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/looking-glass,size=32M: unable to create backing store for hugepages: Permission denied

I have also tried disabling apparmor

UPDATE: So i changed my win10.xml file to use the newer syntax instead of the alt.

<shmem name='looking-glass'>
  <model type='ivshmem-plain'/>
  <size unit='M'>32</size>
</shmem>

and I can now boot the VM without any errors, except there is no sign of the PCI standard RAM Controller in the Windows 10 device manager.

EDIT: Never mind, the VM booted because it didn’t save the changes to the XML file…that would explain why i couldn’t find the device.

UPDATE: I got the newer syntax to save correctly now and when I try to boot the VM I get.
Error starting domain: internal error: process exited while connecting to monitor: 2018-04-25T20:04:57.101611Z qemu-system-x86_64: -device ivshmem,size=32m,shm=looking-glass,id=shmem0,bus=pci.0,addr=0xc: could not open shared file


#653

I’m using hugepages for looking-glass and probably GuestOS (HostOS Ubuntu [email protected] kernel 4.16.3+gnif_patch).

parts of scripts

/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=" … hugepages=12672 transparent_hugepage=never …"

/etc/fstab
hugetlbfs /hugetlbfs hugetlbfs defaults 0 0

NUMA mode
cat /sys/devices/system/node/node*/meminfo | fgrep Huge
Node 0 AnonHugePages: 0 kB
Node 0 ShmemHugePages: 0 kB
Node 0 HugePages_Total: 6336
Node 0 HugePages_Free: 6336
Node 0 HugePages_Surp: 0
Node 1 AnonHugePages: 0 kB
Node 1 ShmemHugePages: 0 kB
Node 1 HugePages_Total: 6336
Node 1 HugePages_Free: 6336
Node 1 HugePages_Surp: 0

VM script (executed by root)
taskset -c 0,1,2,3,4,5,6,7 sudo qemu-system-x86_64
-enable-kvm
-m 12160
-mem-path /hugetlbfs
-M q35,accel=kvm
-smp 8,cores=8,threads=1,sockets=1

-object memory-backend-file,size=128M,mem-path=/hugetlbfs/looking-glass,share,id=ivshmem
-device ivshmem-plain,memdev=ivshmem \

LG script
taskset -c 16,17,18,19 ivshmem-server -p /tmp/ivshmem.pid -S /tmp/ivshmem_socket -l 128M -n 4 -m /hugetlbfs -M ivshmem
taskset -c 20,21,22,23 ./looking-glass-client -a -k -s -M -d -o opengl:vsync=0 -f /hugetlbfs/looking-glass

Mystery: High performance of LG (achieved UPS [email protected] in Lightmarks 2008) only first run GuestOS(GTX1080Ti) after reboot HostOS!


#654

I finally got it working and holy crap is it impressive!

Quick question though, what is the best way to get sound? I know that looking glass doesn’t handle audio “at all”, according to the FAQ.

What I am asking is, what would be a good way to get sound from the VM? I’m sure you all aren’t gaming in silence, so there must be some kind of “go to” solution.


#655

You can do a couple of things.

iirc you can use spice which handles the input and sound for the VM
You can pass through some kind of sound card to the VM
You could pass the sound over network though ive never even heard of anyone doing this and i suspect the lag might be fairly high


#656

Best way is a USB DAC by far. Not everyone has access to displays with speakers, so a USB DAC bridges the gap between the VM and sound.


#657

Seems like Hugepages increases performance, but it seems like you have to use a custom KVM script instead of virt-manager. If there were an easy way to set hugepages with virt-manager, that would be ideal.


#658

What is the best way to use Spice along with this for sound and input? Do I just have spice running minimized in the background? or is there something im missing?


#659

Yes, Looking Glass has its own spice client but i’ll only handle inputs so you’ll need another client running at the same time such as virt-manager which works fairly well. be warned though I’ve had some issues with this and sound being severely distorted at times but you might have better luck on your system.