Looking Glass/QEMU/Libvirt error: permission denied

Hi,
I’m trying to setup looking glass on my system; I’ve followed the guide IVSHMEM with the KVMFR module (Recommended) — Looking Glass B7-rc1-30-d060e375 documentation , everything seems correct byt I always get the error:

qemu-system-x86_64: can’t open backing store /dev/kvmfr0 for guest RAM: Permission denied

My user is “andrea”, here is what the permissions look like:
crw-rw---- 1 andrea andrea 238, 0 5 feb 13.51 /dev/kvmfr0

I also tried to change the permissions to 666, andrea:kvm, libvirt-quemu:kvm but always with the same resuld: permission denied.

Any hint? Let me know if you need more infos or the various configuration files.

Bye
Andrea

1 Like

Apparmor?

Can you elaborate on that? The documentation talks about Apparmor only if running libvirt<5.10.0 libvirt/QEMU Installation — Looking Glass B7-rc1 documentation , which is not my case:

andrea@atlante:~$ apt show libvirt0
Package: libvirt0
Version: 10.10.0-3

Bye
Andrea

1 Like

https://looking-glass.io/wiki/Troubleshooting#Debian.28Ubuntu.29

this should keep apparmor enabled yet allow libvirt to do ivshmem

EDIT: it seems to work now, but I can’t run the client: when I launch it i get:

$ ./looking-glass-client 
[I]   1482090610              main.c:1785 | main                           | Looking Glass (B6)
[I]   1482090645              main.c:1786 | main                           | Locking Method: Atomic
[I]   1482091053           cpuinfo.c:37   | lgDebugCPU                     | CPU Model: AMD Ryzen 7 5800X 8-Core Processor
[I]   1482091067           cpuinfo.c:38   | lgDebugCPU                     | CPU: 12 sockets, 12 cores, 12 threads

Invalid value provided to the option: app:shmFile

 Error: Invalid path to the ivshmem file specified

Valid values are:


$ ./looking-glass-client -f kvmfr0
[I]   1538634262              main.c:1785 | main                           | Looking Glass (B6)
[I]   1538634286              main.c:1786 | main                           | Locking Method: Atomic
[I]   1538634508           cpuinfo.c:37   | lgDebugCPU                     | CPU Model: AMD Ryzen 7 5800X 8-Core Processor
[I]   1538634517           cpuinfo.c:38   | lgDebugCPU                     | CPU: 12 sockets, 12 cores, 12 threads
[I]   1538660674              main.c:1162 | lg_run                         | Using font: /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
[I]   1538660921           ivshmem.c:128  | ivshmemOpenDev                 | KVMFR Device     : kvmfr0
[E]   1538660928           ivshmem.c:149  | ivshmemOpenDev                 | Failed to stat: kvmfr0
[E]   1538660932           ivshmem.c:150  | ivshmemOpenDev                 | No such file or directory
[E]   1538660934              main.c:1230 | lg_run                         | Failed to map memory

So, I guess I hhave to compile kvmfr also on the client - I though I had to build it only on the libvirt/qemu host system, but apparently I was wrong.
However the build of the kernel module on the guest/client fails with this error: Cannot build kvmfr module on Arch Linux. · Issue #1134 · gnif/LookingGlass · GitHub which seem to be solved only in the git repository… which means I have to build the module, the client and cross-compile the host, which is a bit too much for me. I hope next RC will work.

Bye
Andrea

What distribution are you using? If your distribution uses SELinux you need to give permissions and that is not mentioned in the Looking Glass documentation. You can check this with the following command …

sestatus

I think you may be getting confused by the host/client naming of looking glass, assuming you are going for the usual ‘pass the guest’s image to the host’ configuration. (Even then, I don’t think there is a situation where you’d need the kvmfr driver anywhere other than the VM host).
The looking glass client (the application displaying the guest’s image) should run on the host system. There, you already appear to have the kvmfr device set up.
The looking glass host (the application recording the guest’s desktop) should run on the guest system.

If I infer correctly that your guest is Linux, be aware that the looking glass host for Linux is in a ‘somewhat functional but on your own risk’ kind of state according to the documentation, i.e., pain is likely to be ahead.

1 Like

Hi, in fact I was getting confused by the terminology, as I wrote in the edited message: where looking-glass uses the terms “host” with a different meaning from kvm/qemu.
My use case is that I run a Linux and a Windows guest, and I want to access the Windows screen from the Linux VM; problem is that the looking glass module does not build in the versions where a prebuilt windows host is provided, so if I want to use it I would need to cross build also the windows host.
Right now I don’t have the time for that, I’ll leave it for the future, or for the next beta to be released.