Giter VIP home page Giter VIP logo

libvf.io's Introduction

LibVF.IO

LibVF.IO is a vendor neutral GPU multiplexing tool driven by YAML & VFIO.

Features

  1. Virtualization of Intel, AMD, & Nvidia GPUs.
  2. Simple declarative YAML API.
  3. Automated installation.

Documentation

Read the setup guide here: https://arccompute.com/blog/libvfio-commodity-gpu-multiplexing/

The following pages provide a basic introduction to LibVF.IO:

  1. Usage
  2. YAML API

Community

Join the LibVF.IO community here, we'd love to hear your suggestions or help you troubleshoot if you need help!

Discord: https://discord.gg/Rb9K9DYxKK

Related Projects & Tools

GPU Virtual Machine (GVM)

Looking Glass

Intel i915 GVT-g

Intel i915 SR-IOV

Nvidia OpenRM

vGPU-Unlock

AMD GPU-IOV Module

License

Copyright (C) 2021 2666680 Ontario Inc.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

libvf.io's People

Contributors

0qf avatar arthurrasmusson avatar dardrai avatar emanuelw avatar erin-allison avatar grandtheuk avatar h4n1virus avatar k-u-s avatar len-foss avatar mbuchel avatar ohpaco avatar royvanempel avatar rucadi avatar theonlyfoxy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libvf.io's Issues

SECOND VM NOT WORKING

hi, i cant open the second vm, always get the same error
qemu-system-x86_64: warning: Spice: reds.c:2714:reds_init_socket: binding socket to 127.0.0.1:5900 failed
qemu-system-x86_64: warning: Spice: reds.c:3571:do_spice_init: Failed to open SPICE sockets
the yaml files have diferent name for vm and diferent port but not working.
Captura de pantalla de 2022-01-01 00-48-39
Captura de pantalla de 2022-01-01 00-50-04

How is Intel DG1 supported?

Recently I got a DG1 graphics card which is the same model as this level1techs post. The post seems written by @arthurrasmusson claiming that DG1 is supported. I'm using this card on a Proxmox host, however the install-libvfio.sh script is not happy with it. The script tries to uninstall proxmox-ve and other Proxmox packages when installing its own dependencies, so unfortunately I'm not able to try this fantastic project.

According to an Intel community post and an Intel graphics virtulization support page, DG1 might have SR-IOV supoort, but lspci -v command didn't list the corresponding PCIe capability, and for the lspci -xxxx output, the extended PCIe capabilities part didn't seem to comply with it's hardware specifications (either Iris Xe or Iris Xe Max, Volume 2c: Command Reference: Registers). It makes me pretty confused.

So the question is, how does this project support DG1? Is it through SR-IOV & VF passthrough or mdev & GVT-g?

Edit: Add lspci -v output:

VGA compatible controller: Intel Corporation DG1 [Iris Xe Graphics] (rev 01) (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. Device 8000
        Flags: bus master, fast devsel, latency 0, IOMMU group 9
        Memory at d1000000 (64-bit, non-prefetchable) [size=16M]
        Memory at 3aff00000000 (64-bit, prefetchable) [size=4G]
        Expansion ROM at d2000000 [disabled] [size=2M]
        Capabilities: [40] Vendor Specific Information: Len=0c <?>
        Capabilities: [70] Express Endpoint, MSI 00
        Capabilities: [ac] MSI: Enable- Count=1/1 Maskable+ 64bit+
        Capabilities: [d0] Power Management version 3
        Capabilities: [100] Latency Tolerance Reporting
        Kernel modules: i915

PVE support?

Hi, I found this awesome project when looking around for a cheap gpu virtualization setup. It looks pretty promising and I am planning maybe give it a try later.

Currently the wiki uses Ubuntu as an example. It would be nice if we can use PVE as host, because I don't want to affect other vms if I did something stupid that crashed Ubuntu. Is there any plan for this on the roadmap?

/dev/shm/* device not created?

This is a fresh ubuntu 20.04 install that I've decided to install to try libvfio. I followed the instructions exactly but after executing arcd start /path/to/your/yaml/file.yaml --preinstall --save in section 5.3.2, I get an error about a non-existent /dev/shm device.

Here is the error:

owner@owner-desktop:~$ arcd create ~/Desktop/nvidia-mdev.yaml ~/Desktop/en_windows_10_enterprise_ltsc_2019_x64_dvd_5795bb03.iso 100
Formatting '/home/owner/.local/libvf.io/live/89fae1f2-48c5-49f8-a90e-014f799ff984', fmt=qcow2 size=107374182400 cluster_size=65536 lazy_refcounts=off refcount_bits=16
owner@owner-desktop:~$ /bin/sudo /bin/qemu-system-x86_64 -D /home/owner/.local/libvf.io/logs/qemu/89fae1f2-48c5-49f8-a90e-014f799ff984-session.txt -no-hpet -uuid 89fae1f2-48c5-49f8-a90e-014f799ff984 -machine pc-q35-4.2,accel=kvm,usb=off,vmport=off,dump-guest-core=off -cpu IvyBridge-IBRS,ss=on,vmx=on,pcid=on,hypervisor=on,arat=on,tsc-adjust=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaveopt=on,pdpe1gb=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,hv-vapic,hv-spinlocks=0x1fff,hv-vendor-id=1234567890ab,kvm=off -rtc clock=host,base=localtime -m 8192 -smp cores=4,threads=1,sockets=1 -hda /home/owner/.local/libvf.io/live/89fae1f2-48c5-49f8-a90e-014f799ff984 --enable-kvm -device vfio-pci,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/765d5476-84fc-4ef8-92e4-ba24d4ca8b22,display=off --soundhw all -device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2222-:22 -qmp unix:/tmp/sockets/89fae1f2-48c5-49f8-a90e-014f799ff984/main.sock,server,nowait -qmp unix:/tmp/sockets/89fae1f2-48c5-49f8-a90e-014f799ff984/master.sock,server,nowait -cdrom /home/owner/Desktop/en_windows_10_enterprise_ltsc_2019_x64_dvd_5795bb03.iso -set device.hostdev0.x-pci-device-id=6960
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48BH).vmx-apicv-register [bit 8]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48BH).vmx-apicv-vid [bit 9]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48DH).vmx-posted-intr [bit 7]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48BH).vmx-apicv-register [bit 8]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48BH).vmx-apicv-vid [bit 9]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48DH).vmx-posted-intr [bit 7]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48BH).vmx-apicv-register [bit 8]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48BH).vmx-apicv-vid [bit 9]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48DH).vmx-posted-intr [bit 7]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48BH).vmx-apicv-register [bit 8]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48BH).vmx-apicv-vid [bit 9]
qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48DH).vmx-posted-intr [bit 7]
qemu-system-x86_64: -device vfio-pci,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/765d5476-84fc-4ef8-92e4-ba24d4ca8b22,display=off: warning: vfio 765d5476-84fc-4ef8-92e4-ba24d4ca8b22: Could not enable error recovery for the device
[2021-10-17 12:22:49] - INFO: Connecting to the socket
qemu-system-x86_64: Slirp: Failed to send packet, ret: -1
[2021-10-17 12:39:09] - INFO: Cleaning up VM
[sudo] password for owner: 
sudo: unable to read password: Input/output error
[2021-10-17 12:39:09] - INFO: Deleted MDEV: hostdev0
[sudo] password for owner: 
sudo: unable to read password: Input/output error
[2021-10-17 12:39:09] - INFO: Cleaned up VM
[2021-10-17 12:39:09] - INFO: Installing to base kernel

owner@owner-desktop:~$ arcd start ~/Desktop/nvidia-mdev.yaml --preinstall --save
[sudo] password for owner: 
[2021-10-17 12:44:17] - INFO: Saving new config file.
owner@owner-desktop:~$ /bin/sudo /bin/qemu-system-x86_64 -D /home/owner/.local/libvf.io/logs/qemu/13c54650-6da6-4808-96e0-ec24b76bb977-session.txt -no-hpet -device ivshmem-plain,id=shmem0,memdev=ivshmem -object memory-backend-file,id=ivshmem,mem-path=/dev/shm/kvmfr-13c54650-6da6-4808-96e0-ec24b76bb977,size=128M,share=yes -uuid 13c54650-6da6-4808-96e0-ec24b76bb977 -machine pc-q35-4.2,accel=kvm,usb=off,vmport=off,dump-guest-core=off -cpu IvyBridge-IBRS,ss=on,vmx=on,pcid=on,hypervisor=on,arat=on,tsc-adjust=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaveopt=on,pdpe1gb=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,hv-vapic,hv-spinlocks=0x1fff,hv-vendor-id=1234567890ab,kvm=off -rtc clock=host,base=localtime -m 8192 -smp cores=4,threads=1,sockets=1 -hda /home/owner/.local/libvf.io/live/13c54650-6da6-4808-96e0-ec24b76bb977 --enable-kvm -device vfio-pci,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/0c9dd019-5dac-4e75-b8c1-45b6e0dfafcc,display=off --soundhw all -device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2222-:22 -qmp unix:/tmp/sockets/13c54650-6da6-4808-96e0-ec24b76bb977/main.sock,server,nowait -qmp unix:/tmp/sockets/13c54650-6da6-4808-96e0-ec24b76bb977/master.sock,server,nowait -cdrom /home/owner/.local/libvf.io/introspection-installations.rom -set device.hostdev0.x-pci-device-id=6960
qemu-system-x86_64: -cdrom /home/owner/.local/libvf.io/introspection-installations.rom: Could not open '/home/owner/.local/libvf.io/introspection-installations.rom': No such file or directory
/usr/bin/chgrp: cannot access '/dev/shm/kvmfr-13c54650-6da6-4808-96e0-ec24b76bb977': No such file or directory
[2021-10-17 12:44:20] - ERROR: Could not change socket information correctly cleaning up.
[2021-10-17 12:44:20] - INFO: Cleaning up VM
[2021-10-17 12:44:20] - INFO: Deleted MDEV: hostdev0
[2021-10-17 12:44:20] - INFO: Cleaned up VM
[2021-10-17 12:44:21] - INFO: Saving new config file.

And some additional log/debug information:

owner@owner-desktop:~/.local/libvf.io$ pwd
/home/owner/.local/libvf.io
owner@owner-desktop:~/.local/libvf.io$ find
.
./logs
./logs/qemu
./logs/qemu/89fae1f2-48c5-49f8-a90e-014f799ff984-session.txt
./logs/qemu/442888b9-2c50-49fd-8ee5-3750c35890fb-session.txt
./logs/qemu/e87cc8c9-f0e8-424a-8ed1-772a9d2ba8fa-session.txt
./logs/qemu/040ea120-9bc0-4da5-882f-07851967a68a-session.txt
./logs/qemu/f8556921-b5e7-40d1-a76b-a87615c45922-session.txt
./logs/qemu/13c54650-6da6-4808-96e0-ec24b76bb977-session.txt
./logs/qemu/6c63971c-d9ee-4d17-bbb8-0c83362441b4-session.txt
./logs/arcd
./logs/arcd/dba4d3c3-94bc-43db-a7c8-e1364d36aa6f.log
./logs/arcd/f8556921-b5e7-40d1-a76b-a87615c45922.log
./logs/arcd/442888b9-2c50-49fd-8ee5-3750c35890fb.log
./logs/arcd/6c63971c-d9ee-4d17-bbb8-0c83362441b4.log
./logs/arcd/13c54650-6da6-4808-96e0-ec24b76bb977.log
./logs/arcd/e87cc8c9-f0e8-424a-8ed1-772a9d2ba8fa.log
./logs/arcd/99e28c36-ad76-445d-84ee-a312c286882b.log
./logs/arcd/040ea120-9bc0-4da5-882f-07851967a68a.log
./logs/arcd/89fae1f2-48c5-49f8-a90e-014f799ff984.log
./logs/arcd/0b0488d1-0e03-4b1a-8401-c060de844ddf.log
./kernel
./kernel/windows.arc
./states
./lock
./live
owner@owner-desktop:~/.local/libvf.io/logs/arcd$ ls -lt
total 28
-rw-rw-r-- 1 owner owner 340 Oct 17 12:44 13c54650-6da6-4808-96e0-ec24b76bb977.log
-rw-rw-r-- 1 owner owner 253 Oct 17 12:39 89fae1f2-48c5-49f8-a90e-014f799ff984.log
-rw-rw-r-- 1 owner owner   0 Oct 17 12:21 0b0488d1-0e03-4b1a-8401-c060de844ddf.log
-rw-rw-r-- 1 owner owner   0 Oct 17 12:21 99e28c36-ad76-445d-84ee-a312c286882b.log
-rw-rw-r-- 1 owner owner 340 Oct 17 12:20 f8556921-b5e7-40d1-a76b-a87615c45922.log
-rw-rw-r-- 1 owner owner 340 Oct 17 12:14 442888b9-2c50-49fd-8ee5-3750c35890fb.log
-rw-rw-r-- 1 owner owner 340 Oct 17 12:11 040ea120-9bc0-4da5-882f-07851967a68a.log
-rw-rw-r-- 1 owner owner 340 Oct 17 12:08 6c63971c-d9ee-4d17-bbb8-0c83362441b4.log
-rw-rw-r-- 1 owner owner 253 Oct 17 12:04 e87cc8c9-f0e8-424a-8ed1-772a9d2ba8fa.log
-rw-rw-r-- 1 owner owner   0 Oct 17 01:41 dba4d3c3-94bc-43db-a7c8-e1364d36aa6f.log
owner@owner-desktop:~/.local/libvf.io/logs/arcd$ cat 13c54650-6da6-4808-96e0-ec24b76bb977.log 
[2021-10-17 12:44:17] - INFO: Saving new config file.
[2021-10-17 12:44:20] - ERROR: Could not change socket information correctly cleaning up.
[2021-10-17 12:44:20] - INFO: Cleaning up VM
[2021-10-17 12:44:20] - INFO: Deleted MDEV: hostdev0
[2021-10-17 12:44:20] - INFO: Cleaned up VM
[2021-10-17 12:44:21] - INFO: Saving new config file.
owner@owner-desktop:~/.local/libvf.io/logs/qemu$ ls -lt
total 0
-rw-r--r-- 1 root root 0 Oct 17 12:44 13c54650-6da6-4808-96e0-ec24b76bb977-session.txt
-rw-r--r-- 1 root root 0 Oct 17 12:22 89fae1f2-48c5-49f8-a90e-014f799ff984-session.txt
-rw-r--r-- 1 root root 0 Oct 17 12:20 f8556921-b5e7-40d1-a76b-a87615c45922-session.txt
-rw-r--r-- 1 root root 0 Oct 17 12:14 442888b9-2c50-49fd-8ee5-3750c35890fb-session.txt
-rw-r--r-- 1 root root 0 Oct 17 12:11 040ea120-9bc0-4da5-882f-07851967a68a-session.txt
-rw-r--r-- 1 root root 0 Oct 17 12:08 6c63971c-d9ee-4d17-bbb8-0c83362441b4-session.txt
-rw-r--r-- 1 root root 0 Oct 17 11:45 e87cc8c9-f0e8-424a-8ed1-772a9d2ba8fa-session.txt
owner@owner-desktop:~/.local/libvf.io/logs/qemu$ cat 13c54650-6da6-4808-96e0-ec24b76bb977-session.txt 
owner@owner-desktop:~/.local/libvf.io/logs/qemu$ 
owner@owner-desktop:/dev/shm$ pwd
/dev/shm
owner@owner-desktop:/dev/shm$ ls -al
total 0
drwxrwxrwt  2 root root   40 Oct 17 12:52 .
drwxr-xr-x 21 root root 4500 Oct 17 12:22 ..

Here is my yaml config:

%YAML 1.2
%TAG !n! tag:nimyaml.org,2016:
--- !n!custom:Config 
startintro: false
nographics: false
spice: false
introspect: "looking-glass"
shareddir: !!null ~
connectivity: 
  exposedPorts: 
    - 
      guest: 22
      host: 2222
container: 
  kernel: windows.arc
  state: []
  initialSize: 20
  iso: "/home/owner/.local/libvf.io/introspection-installations.rom"
cpus: 
  cores: 4
  sockets: 1
  threads: 1
  ramAlloc: 8192
gpus: 
  - 
    - 
      maxVRam: 2000
    - 
      minVRam: 1000
    - 
      gpuType: sysfsdev
    - 
      mdevType: ""
    - 
      parentPort: !!null ~
    - 
      devId: hostdev0
    - 
      suffix: Q
nics: []
root: /home/owner/.local/libvf.io
sudo: false
commands: 
  - 
    arg: "-set"
    values: ["device.hostdev0.x-pci-device-id=6960"]

Semi-relevant side-note: while this is a fresh install, I tried libvfio earlier on a non-fresh ubuntu install and I did get past this step. That is, the /dev/shm device did exist. However, after section 5.3.3 (i.e. I completed all the steps), the looking glass client would refuse to launch, so I figured I would do a second attempt with a fresh ubuntu install.

install-libvfio.sh hangs while at choosenim step

image

Installer hangs at this step. I've tried installing choosenim separately after the fact to see if it was an issue specifically with the scripts in this repo, and it still failed.

So it sounds like choosenim is a tad broken, but I've been asked to open an issue so we can explore alternatives. Choosenim doesn't seem to have much activity on their repo so I'm unsure if this an issue that will get solved quickly on their end.

Running Ubuntu 20.04 fresh install with just Steam, Discord, and Chromium loaded.

Add support for systemd-boot

Right now the script to install libvf.io doesn't support distos that use systemd-boot (like Pop!_OS).
Would it be possibile to add support for it?

Nvidia installer failed

Getting through the libvf.io install.sh script, but it is now failing at the nvidia driver build process on the NVIDIA-Linux-x86_64-460.73.01-grid-vgpu-kvm-v5-custom.run file.. Attached is the nvidia-installer log.

I am running Ubuntu 21.10 with kernel 5.13.0-20 and GPU: NVIDIA GeForce RTX 2080 SUPER Mobile / Max-Q

I also tried downgrading same issue is happening on kernels 5.12.0, 5.12.10, 5.12.19.

Note that I had to purge all the existing nvidia proprietary drivers that Ubuntu comes with, and also got the error in the nvidia run tool that X was running so I had to reboot into recovery mode to get to a text command line before I could get further in the nvidia run tool. Still getting unknown symbol errors though.

Ideas?

nvidia-installer.log

Hi, i can't understand what is wrong with this. Is gtx 1650 not supported? It is Turing architecture (GPU TU116).I have attached the output below!

root@TIGPC:/home/tiguser/Downloads# arcd create nvidia-mdev.yaml WIN1021h1.iso 80
bash: line 0: echo: write error: Input/output error
Formatting '/root/.local/libvf.io/live/3ce0ad37-f3bf-4559-98c9-1327b0f92de6', fmt=qcow2 size=85899345920 cluster_size=65536 lazy_refcounts=off refcount_bits=16
root@TIGPC:/home/tiguser/Downloads# /bin/qemu-system-x86_64 -D /root/.local/libvf.io/logs/qemu/3ce0ad37-f3bf-4559-98c9-1327b0f92de6-session.txt -no-hpet -uuid 3ce0ad37-f3bf-4559-98c9-1327b0f92de6 -machine pc-q35-4.2,accel=kvm,usb=off,vmport=off,dump-guest-core=off -cpu host,ss=on,vmx=on,pcid=on,hypervisor=on,arat=on,tsc-adjust=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaveopt=on,pdpe1gb=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,hv-vapic,hv-spinlocks=0x1fff,hv-vendor-id=1234567890ab,kvm=off,topoext=on -rtc clock=host,base=localtime -m 8192 -smp cores=4,threads=1,sockets=1 -hda /root/.local/libvf.io/live/3ce0ad37-f3bf-4559-98c9-1327b0f92de6 --enable-kvm --soundhw all -device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2222-:22 -qmp unix:/tmp/sockets/3ce0ad37-f3bf-4559-98c9-1327b0f92de6/main.sock,server,nowait -qmp unix:/tmp/sockets/3ce0ad37-f3bf-4559-98c9-1327b0f92de6/master.sock,server,nowait -cdrom WIN1021h1.iso -set device.hostdev0.x-pci-device-id=6960
qemu-system-x86_64: -set device.hostdev0.x-pci-device-id=6960: there is no device "hostdev0" defined
[2021-11-28 11:02:24] - INFO: Connecting to the socket
asyncfutures.nim(389) read
Error: unhandled exception: No such file or directory [OSError]

[Request] NixOS support

NixOS is a declarative Linux distribution with 100% reproducible builds.
Support for this distro would be highly appreciated

nvidia-vgpu-vfio start failed. status 0x0?

Hello there, firstly thank you for making this utility, however there is a slight problem when I tried to start the VM with NVIDIA vgpu (mx230 muxless GPU) it failed with status 0x0 with Input/Output Error. I can't seem to figure it out what is the cause of this issues, is this a hardware issues that can't be mediated or there's some things that i missed?

note: all the hardware specs(lshw), dmesg and run failure log, install log are written in the files below
failedRunLog.log
lshw.txt
installLog.log

How to copy files between host and guest?

Hi,

How can I copy files to and from the guest OS? I've tried copy paste, but that doesn't work.

I see shareddir in the yaml file, but I don't see any mention of it in the docs. I tried using "shareddir: ~/vm_shared" (the folder vm_shared does exist in my home folder by the way, I created it just for that purpose), but the VM refused to start when I did that.

How do I configure a shared directory?

Are there any other ways of sharing files between the guest and host? I saw something here, but not sure how to apply that to arcd.

Proxmox Support

I'm sure this has been requested in the past but is there any chance for proxmox support/ integration, with this project since what is provides is nothing short of phenomenal, i would be extremely helpful it would some how be able to work in conjunction with spice protocol to give that hardware acceleration in proxmox as well as vms.

Achieving an overall smoother experience.

I'm asking this since I see no way of being able to install or configure it in proxmox itself.

Thank you in advanced.

Question: LibVF.IO with existing windows

Is it possible to use LibVF.IO with looking glass to boot an already existing Windows install? I already have a windows system set up in a partition. I was just wondering if I could change the yaml file or pass in some special arguments to make looking glass open my preexisting windows install with the single GPU virtualized in both.

Thanks

Installing patched drivers fails on Fedora 37

I get these errors:

ERROR: Failed to run `/usr/sbin/dkms build -m nvidia -v 510.85.02 -k 6.0.10-300.fc37.x86_64`: Sign command:
         /lib/modules/6.0.10-300.fc37.x86_64/build/scripts/sign-file
         Signing key: /var/lib/dkms/mok.key
         Public certificate (MOK): /var/lib/dkms/mok.pub
                                                                                                                                             
         Building module:
         Cleaning build area...                                                                                                              
         'make' -j12 NV_EXCLUDE_BUILD_MODULES='' KERNEL_UNAME=6.0.10-300.fc37.x86_64 IGNORE_CC_MISMATCH='' modules.........(bad exit status:
         2)
         Error! Bad return status for module build on kernel: 6.0.10-300.fc37.x86_64 (x86_64)
         Consult /var/lib/dkms/nvidia/510.85.02/build/make.log for more information.
ERROR: Failed to install the kernel module through DKMS. No kernel module was installed; please try installing again without DKMS, or
         check the DKMS logs for more information. 
ERROR: Installation has failed.  Please see the file '/var/log/nvidia-installer.log' for details.  You may find suggestions on fixing      
         installation problems in the README available on the Linux driver download page at www.nvidia.com.

Contents of /var/lib/dkms/nvidia/510.85.02/build/make.log:

DKMS make.log for nvidia-510.85.02 for kernel 6.0.10-300.fc37.x86_64 (x86_64)
pią, 2 gru 2022, 10:57:20 CET
make[1]: Entering directory '/usr/src/kernels/6.0.10-300.fc37.x86_64'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
  You are using:           cc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
  SYMLINK /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-kernel.o
  SYMLINK /var/lib/dkms/nvidia/510.85.02/build/nvidia-modeset/nv-modeset-kernel.o
 CONFTEST: hash__remap_4k_pfn
 CONFTEST: set_pages_uc
 CONFTEST: list_is_first
 CONFTEST: set_memory_uc
 CONFTEST: set_memory_array_uc
 CONFTEST: set_pages_array_uc
 CONFTEST: acquire_console_sem
 CONFTEST: console_lock
 CONFTEST: ioremap_cache
 CONFTEST: ioremap_wc
 CONFTEST: acpi_walk_namespace
 CONFTEST: sg_alloc_table
 CONFTEST: pci_get_domain_bus_and_slot
 CONFTEST: get_num_physpages
 CONFTEST: efi_enabled
 CONFTEST: pde_data
 CONFTEST: PDE_DATA
 CONFTEST: proc_remove
 CONFTEST: pm_vt_switch_required
 CONFTEST: xen_ioemu_inject_msi
 CONFTEST: phys_to_dma
 CONFTEST: get_dma_ops
 CONFTEST: dma_attr_macros
 CONFTEST: dma_map_page_attrs
 CONFTEST: write_cr4
 CONFTEST: of_get_property
 CONFTEST: of_find_node_by_phandle
 CONFTEST: of_node_to_nid
 CONFTEST: pnv_pci_get_npu_dev
 CONFTEST: of_get_ibm_chip_id
 CONFTEST: node_end_pfn
 CONFTEST: pci_bus_address
 CONFTEST: pci_stop_and_remove_bus_device
 CONFTEST: pci_remove_bus_device
 CONFTEST: register_cpu_notifier
 CONFTEST: cpuhp_setup_state
 CONFTEST: dma_map_resource
 CONFTEST: backlight_device_register
 CONFTEST: get_backlight_device_by_name
 CONFTEST: timer_setup
 CONFTEST: pci_enable_msix_range
 CONFTEST: kernel_read_has_pointer_pos_arg
 CONFTEST: kernel_write
 CONFTEST: kthread_create_on_node
 CONFTEST: of_find_matching_node
 CONFTEST: dev_is_pci
 CONFTEST: dma_direct_map_resource
 CONFTEST: tegra_get_platform
 CONFTEST: tegra_bpmp_send_receive
 CONFTEST: flush_cache_all
 CONFTEST: vmf_insert_pfn
 CONFTEST: jiffies_to_timespec
 CONFTEST: ktime_get_raw_ts64
 CONFTEST: ktime_get_real_ts64
 CONFTEST: full_name_hash
 CONFTEST: hlist_for_each_entry
 CONFTEST: pci_enable_atomic_ops_to_root
 CONFTEST: vga_tryget
 CONFTEST: pgprot_decrypted
 CONFTEST: cc_mkdec
 CONFTEST: iterate_fd
 CONFTEST: seq_read_iter
 CONFTEST: sg_page_iter_page
 CONFTEST: unsafe_follow_pfn
 CONFTEST: drm_gem_object_get
 CONFTEST: drm_gem_object_put_unlocked
 CONFTEST: set_close_on_exec
 CONFTEST: add_memory_driver_managed
 CONFTEST: device_property_read_u64
 CONFTEST: devm_of_platform_populate
 CONFTEST: of_dma_configure
 CONFTEST: of_property_count_elems_of_size
 CONFTEST: of_property_read_variable_u8_array
 CONFTEST: i2c_new_client_device
 CONFTEST: i2c_unregister_device
 CONFTEST: of_get_named_gpio
 CONFTEST: devm_gpio_request_one
 CONFTEST: gpio_direction_input
 CONFTEST: gpio_direction_output
 CONFTEST: gpio_get_value
 CONFTEST: gpio_set_value
 CONFTEST: gpio_to_irq
 CONFTEST: icc_get
 CONFTEST: icc_put
 CONFTEST: icc_set_bw
 CONFTEST: dma_set_coherent_mask
 CONFTEST: acpi_bus_get_device
 CONFTEST: get_task_ioprio
 CONFTEST: address_space_init_once
 CONFTEST: kbasename
 CONFTEST: vzalloc
 CONFTEST: wait_on_bit_lock_argument_count
 CONFTEST: bitmap_clear
 CONFTEST: usleep_range
 CONFTEST: radix_tree_empty
 CONFTEST: radix_tree_replace_slot
 CONFTEST: pnv_npu2_init_context
 CONFTEST: cpumask_of_node
 CONFTEST: ioasid_get
 CONFTEST: migrate_vma_setup
 CONFTEST: vfio_register_notifier
 CONFTEST: mdev_parent_dev
 CONFTEST: mdev_dev
 CONFTEST: mdev_get_type_group_id
 CONFTEST: mdev_uuid
 CONFTEST: mdev_from_dev
 CONFTEST: mdev_set_iommu_device
 CONFTEST: pci_irq_vector_helpers
 CONFTEST: kvmalloc
 CONFTEST: drm_dev_unref
 CONFTEST: drm_reinit_primary_mode_group
 CONFTEST: get_user_pages_remote
 CONFTEST: get_user_pages
 CONFTEST: drm_gem_object_lookup
 CONFTEST: drm_atomic_state_ref_counting
 CONFTEST: drm_driver_has_gem_prime_res_obj
 CONFTEST: drm_atomic_helper_connector_dpms
 CONFTEST: drm_connector_funcs_have_mode_in_name
 CONFTEST: drm_framebuffer_get
 CONFTEST: drm_dev_put
 CONFTEST: drm_format_num_planes
 CONFTEST: drm_connector_for_each_possible_encoder
 CONFTEST: drm_rotation_available
 CONFTEST: drm_vma_offset_exact_lookup_locked
 CONFTEST: nvhost_dma_fence_unpack
 CONFTEST: is_export_symbol_gpl_of_node_to_nid
 CONFTEST: is_export_symbol_gpl_sme_active
 CONFTEST: is_export_symbol_present_swiotlb_map_sg_attrs
 CONFTEST: is_export_symbol_present_swiotlb_dma_ops
 CONFTEST: is_export_symbol_present___close_fd
 CONFTEST: is_export_symbol_present_close_fd
 CONFTEST: is_export_symbol_present_get_unused_fd
 CONFTEST: is_export_symbol_present_get_unused_fd_flags
 CONFTEST: is_export_symbol_present_nvhost_get_default_device
 CONFTEST: is_export_symbol_present_nvhost_syncpt_unit_interface_get_byte_offset
 CONFTEST: is_export_symbol_present_nvhost_syncpt_unit_interface_get_aperture
 CONFTEST: is_export_symbol_present_tegra_dce_register_ipc_client
 CONFTEST: is_export_symbol_present_tegra_dce_unregister_ipc_client
 CONFTEST: is_export_symbol_present_tegra_dce_client_ipc_send_recv
 CONFTEST: is_export_symbol_present_dram_clk_to_mc_clk
 CONFTEST: is_export_symbol_present_get_dram_num_channels
 CONFTEST: is_export_symbol_present_tegra_dram_types
 CONFTEST: is_export_symbol_present_kthread_create_on_node
 CONFTEST: file_operations
 CONFTEST: kuid_t
 CONFTEST: file_inode
 CONFTEST: dma_ops
 CONFTEST: swiotlb_dma_ops
 CONFTEST: noncoherent_swiotlb_dma_ops
 CONFTEST: vm_fault_has_address
 CONFTEST: backlight_properties_type
 CONFTEST: vm_insert_pfn_prot
 CONFTEST: vmf_insert_pfn_prot
 CONFTEST: vm_ops_fault_removed_vma_arg
 CONFTEST: vmbus_channel_has_ringbuffer_page
 CONFTEST: device_driver_of_match_table
 CONFTEST: device_of_node
 CONFTEST: node_states_n_memory
 CONFTEST: kmem_cache_has_kobj_remove_work
 CONFTEST: sysfs_slab_unlink
 CONFTEST: proc_ops
 CONFTEST: timespec64
 CONFTEST: vmalloc_has_pgprot_t_arg
 CONFTEST: acpi_fadt_low_power_s0
 CONFTEST: mm_has_mmap_lock
 CONFTEST: pci_channel_state
 CONFTEST: pci_dev_has_ats_enabled
 CONFTEST: mt_device_gre
 CONFTEST: remove_memory_has_nid_arg
 CONFTEST: address_space
 CONFTEST: backing_dev_info
 CONFTEST: mm_context_t
 CONFTEST: vm_fault_t
 CONFTEST: mmu_notifier_ops_invalidate_range
 CONFTEST: migrate_vma_added_flags
 CONFTEST: make_device_exclusive_range
 CONFTEST: mdev_parent
 CONFTEST: vfio_info_add_capability_has_cap_type_id_arg
 CONFTEST: vfio_device_gfx_plane_info
 CONFTEST: vfio_device_migration_has_start_pfn
 CONFTEST: mdev_parent_ops_has_open_device
 CONFTEST: drm_bus_present
 CONFTEST: drm_bus_has_bus_type
 CONFTEST: drm_bus_has_get_irq
 CONFTEST: drm_bus_has_get_name
 CONFTEST: drm_driver_has_device_list
 CONFTEST: drm_driver_has_legacy_dev_list
 CONFTEST: drm_driver_has_set_busid
 CONFTEST: drm_crtc_state_has_connectors_changed
 CONFTEST: drm_init_function_args
 CONFTEST: drm_helper_mode_fill_fb_struct
 CONFTEST: drm_master_drop_has_from_release_arg
 CONFTEST: drm_driver_unload_has_int_return_type
 CONFTEST: drm_atomic_helper_crtc_destroy_state_has_crtc_arg
 CONFTEST: drm_atomic_helper_plane_destroy_state_has_plane_arg
 CONFTEST: drm_mode_object_find_has_file_priv_arg
 CONFTEST: dma_buf_owner
 CONFTEST: drm_connector_list_iter
 CONFTEST: drm_atomic_helper_swap_state_has_stall_arg
 CONFTEST: drm_driver_prime_flag_present
 CONFTEST: drm_gem_object_has_resv
 CONFTEST: drm_crtc_state_has_async_flip
 CONFTEST: drm_crtc_state_has_pageflip_flags
 CONFTEST: drm_format_modifiers_present
 CONFTEST: drm_vma_node_is_allowed_has_tag_arg
 CONFTEST: drm_vma_offset_node_has_readonly
 CONFTEST: drm_display_mode_has_vrefresh
 CONFTEST: drm_driver_master_set_has_int_return_type
 CONFTEST: drm_driver_has_gem_free_object
 CONFTEST: drm_prime_pages_to_sg_has_drm_device_arg
 CONFTEST: drm_driver_has_gem_prime_callbacks
 CONFTEST: drm_crtc_atomic_check_has_atomic_state_arg
 CONFTEST: drm_gem_object_vmap_has_map_arg
 CONFTEST: drm_plane_atomic_check_has_atomic_state_arg
 CONFTEST: drm_device_has_pdev
 CONFTEST: drm_crtc_state_has_no_vblank
 CONFTEST: drm_mode_config_has_allow_fb_modifiers
 CONFTEST: dma_resv_add_fence
 CONFTEST: dma_resv_reserve_fences
 CONFTEST: reservation_object_reserve_shared_has_num_fences_arg
 CONFTEST: dom0_kernel_present
 CONFTEST: nvidia_vgpu_kvm_build
 CONFTEST: nvidia_grid_build
 CONFTEST: nvidia_grid_csp_build
 CONFTEST: pm_runtime_available
 CONFTEST: pci_class_multimedia_hd_audio
 CONFTEST: drm_available
 CONFTEST: drm_atomic_available
 CONFTEST: is_export_symbol_gpl_refcount_inc
 CONFTEST: is_export_symbol_gpl_refcount_dec_and_test
 CONFTEST: drm_alpha_blending_available
 CONFTEST: ib_peer_memory_symbols
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-pci.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-cray.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-dma.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-i2c.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-mmap.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-p2p.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-pat.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-procfs.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-procfs-utils.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-usermap.o
  CC [M]  /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-vm.o
In file included from ./include/linux/preempt.h:11,
                 from ./include/linux/spinlock.h:55,
                 from /var/lib/dkms/nvidia/510.85.02/build/common/inc/nv-lock.h:29,
                 from /var/lib/dkms/nvidia/510.85.02/build/common/inc/nv-linux.h:32,
                 from /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:27:
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c: In function 'nv_acpi_ddc_method':
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:751:43: error: 'struct acpi_device' has no member named 'children'
  751 |     list_for_each_safe(node, next, &device->children)
      |                                           ^~
./include/linux/list.h:643:21: note: in definition of macro 'list_for_each_safe'
  643 |         for (pos = (head)->next, n = pos->next; \
      |                     ^~~~
./include/linux/list.h:643:32: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  643 |         for (pos = (head)->next, n = pos->next; \
      |                                ^
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:751:5: note: in expansion of macro 'list_for_each_safe'
  751 |     list_for_each_safe(node, next, &device->children)
      |     ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:751:43: error: 'struct acpi_device' has no member named 'children'
  751 |     list_for_each_safe(node, next, &device->children)
      |                                           ^~
./include/linux/list.h:644:34: note: in definition of macro 'list_for_each_safe'
  644 |              !list_is_head(pos, (head)); \
      |                                  ^~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-pci.c: In function 'nv_pci_probe':
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-pci.c:591:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  591 |     extern int nv_vgpu_kvm_enable;
      |     ^~~~~~
In file included from ./include/linux/container_of.h:5,
                 from ./include/linux/list.h:5:
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:755:50: error: 'struct acpi_device' has no member named 'node'; did you mean 'fwnode'?
  755 |             list_entry(node, struct acpi_device, node);
      |                                                  ^~~~
./include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
   78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
      |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert'
   19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro '__same_type'
   19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro 'container_of'
  520 |         container_of(ptr, type, member)
      |         ^~~~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:755:13: note: in expansion of macro 'list_entry'
  755 |             list_entry(node, struct acpi_device, node);
      |             ^~~~~~~~~~
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
  295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
   78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
      |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert'
   19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro '__same_type'
   19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro 'container_of'
  520 |         container_of(ptr, type, member)
      |         ^~~~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:755:13: note: in expansion of macro 'list_entry'
  755 |             list_entry(node, struct acpi_device, node);
      |             ^~~~~~~~~~
In file included from /var/lib/dkms/nvidia/510.85.02/build/common/inc/nv.h:35,
                 from /var/lib/dkms/nvidia/510.85.02/build/common/inc/nv-linux.h:28:
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:755:50: error: 'struct acpi_device' has no member named 'node'; did you mean 'fwnode'?
  755 |             list_entry(node, struct acpi_device, node);
      |                                                  ^~~~
./include/linux/stddef.h:16:58: note: in definition of macro 'offsetof'
   16 | #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
      |                                                          ^~~~~~
./include/linux/list.h:520:9: note: in expansion of macro 'container_of'
  520 |         container_of(ptr, type, member)
      |         ^~~~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:755:13: note: in expansion of macro 'list_entry'
  755 |             list_entry(node, struct acpi_device, node);
      |             ^~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-pci.c: In function 'nv_pci_remove':
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-pci.c:747:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  747 |     extern int nv_vgpu_kvm_enable;
      |     ^~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c: In function 'nv_acpi_mux_method':
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:1176:43: error: 'struct acpi_device' has no member named 'children'
 1176 |     list_for_each_safe(node, next, &device->children)
      |                                           ^~
./include/linux/list.h:643:21: note: in definition of macro 'list_for_each_safe'
  643 |         for (pos = (head)->next, n = pos->next; \
      |                     ^~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-dma.c: In function 'nv_dma_use_map_resource':
./include/linux/list.h:643:32: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  643 |         for (pos = (head)->next, n = pos->next; \
      |                                ^
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:1176:5: note: in expansion of macro 'list_for_each_safe'
 1176 |     list_for_each_safe(node, next, &device->children)
      |     ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-dma.c:783:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  783 |     const struct dma_map_ops *ops = get_dma_ops(dma_dev->dev);
      |     ^~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:1176:43: error: 'struct acpi_device' has no member named 'children'
 1176 |     list_for_each_safe(node, next, &device->children)
      |                                           ^~
./include/linux/list.h:644:34: note: in definition of macro 'list_for_each_safe'
  644 |              !list_is_head(pos, (head)); \
      |                                  ^~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:1178:72: error: 'struct acpi_device' has no member named 'node'; did you mean 'fwnode'?
 1178 |         struct acpi_device *dev = list_entry(node, struct acpi_device, node);
      |                                                                        ^~~~
./include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
   78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
      |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert'
   19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro '__same_type'
   19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro 'container_of'
  520 |         container_of(ptr, type, member)
      |         ^~~~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:1178:35: note: in expansion of macro 'list_entry'
 1178 |         struct acpi_device *dev = list_entry(node, struct acpi_device, node);
      |                                   ^~~~~~~~~~
././include/linux/compiler_types.h:295:27: error: expression in static assertion is not an integer
  295 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
   78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
      |                                                        ^~~~
./include/linux/container_of.h:19:9: note: in expansion of macro 'static_assert'
   19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |         ^~~~~~~~~~~~~
./include/linux/container_of.h:19:23: note: in expansion of macro '__same_type'
   19 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |                       ^~~~~~~~~~~
./include/linux/list.h:520:9: note: in expansion of macro 'container_of'
  520 |         container_of(ptr, type, member)
      |         ^~~~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:1178:35: note: in expansion of macro 'list_entry'
 1178 |         struct acpi_device *dev = list_entry(node, struct acpi_device, node);
      |                                   ^~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-dma.c: At top level:
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-dma.c:991: warning: "IMPORT_SGT_STUBS_NEEDED" redefined
  991 | #define IMPORT_SGT_STUBS_NEEDED 0
      | 
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-dma.c:985: note: this is the location of the previous definition
  985 | #define IMPORT_SGT_STUBS_NEEDED 1
      | 
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:1178:72: error: 'struct acpi_device' has no member named 'node'; did you mean 'fwnode'?
 1178 |         struct acpi_device *dev = list_entry(node, struct acpi_device, node);
      |                                                                        ^~~~
./include/linux/stddef.h:16:58: note: in definition of macro 'offsetof'
   16 | #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
      |                                                          ^~~~~~
./include/linux/list.h:520:9: note: in expansion of macro 'container_of'
  520 |         container_of(ptr, type, member)
      |         ^~~~~~~~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.c:1178:35: note: in expansion of macro 'list_entry'
 1178 |         struct acpi_device *dev = list_entry(node, struct acpi_device, node);
      |                                   ^~~~~~~~~~
make[2]: *** [scripts/Makefile.build:249: /var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-acpi.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-mmap.c: In function 'nvidia_mmap_sysmem':
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-mmap.c:404:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  404 |         extern int nv_vgpu_kvm_enable;
      |         ^~~~~~
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-mmap.c: In function 'nv_encode_caching':
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-mmap.c:343:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
  343 |             if (NV_ALLOW_CACHING(memory_type))
      |                ^
/var/lib/dkms/nvidia/510.85.02/build/nvidia/nv-mmap.c:346:9: note: here
  346 |         default:
      |         ^~~~~~~
make[1]: *** [Makefile:1856: /var/lib/dkms/nvidia/510.85.02/build] Error 2
make[1]: Leaving directory '/usr/src/kernels/6.0.10-300.fc37.x86_64'
make: *** [Makefile:82: modules] Error 2

Docs re: remote introspection with parsec/etc.

This would be a nice addition to the docs, as I would bet many people looking to partition a GPU would also be looking to run a headless host with multiple clients each accessing a VM with a vGPU. Would parsec work as normal out of the box (I am personally unsure how vGPU interacts with nvenc, for example)? Any particular issues to address in setup?

Is Debian Supported?

Is Debian 11 (Bullseye) supported? If so, should we use "Ubuntu" or "Other" when installing?

I have some error in install script

Screenshot_20220519_184957
Operating System: Arch Linux
KDE Plasma Version: 5.24.5
KDE Frameworks Version: 5.94.0
Qt Version: 5.15.4
Kernel Version: 5.17.8-arch1-1 (64-bit)
Graphics Platform: X11
Processors: 16 × AMD Ryzen 7 3800X 8-Core Processor
Memory: 31.3 GiB of RAM
Graphics Processor: AMD Radeon RX 580 Series

VM Detection - Genshin Impact

Genshin Impact has identified that a Windows guest is running as a VM using libvf.io

Host system is Ubuntu 20.04.3, fresh install and base updates. Nvidia 2080 Super graphics card and AMD 3900X processor.

nvidia-mdev.yaml

%YAML 1.2
%TAG !n! tag:nimyaml.org,2016:
--- !n!custom:Config 
startintro: true
nographics: true
spice: true
introspect: "looking-glass"
shareddir: !!null ~
connectivity: 
  exposedPorts: 
    - 
      guest: 22
      host: 2222
container: 
  kernel: windows.arc
  state: []
  initialSize: 20
  iso: !!null ~
cpus: 
  cores: 4
  sockets: 1
  threads: 1
  ramAlloc: 8192
gpus: 
  - 
    - 
      maxVRam: 2000
    - 
      minVRam: 1000
    - 
      gpuType: sysfsdev
    - 
      mdevType: ""
    - 
      parentPort: !!null ~
    - 
      devId: hostdev0
    - 
      suffix: Q
nics: []
root: ~/.local/libvf.io
sudo: false
commands: 
  - 
    arg: "-set"
    values: ["device.hostdev0.x-pci-device-id=6960"]

Output of 'arcd start nvidia-mdev.yaml'

/bin/sudo /bin/qemu-system-x86_64 -D /home/kenzie/.local/libvf.io/logs/qemu/a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c-session.txt -no-hpet -nographic -vga none -serial none -parallel none -device qemu-xhci,p2=15,p3=15,id=usb -device virtio-serial-pci,id=virtio-serial0 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -device ivshmem-plain,id=shmem0,memdev=ivshmem_kvmfr -object memory-backend-file,id=ivshmem_kvmfr,mem-path=/dev/shm/kvmfr-a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c,size=128M,share=yes -device ivshmem-plain,id=shmem1,memdev=ivshmem_kvmsr -object memory-backend-file,id=ivshmem_kvmsr,mem-path=/dev/shm/kvmsr-a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c,size=2M,share=yes -uuid a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c -machine pc-q35-4.2,accel=kvm,usb=off,vmport=off,dump-guest-core=off -cpu host,ss=on,vmx=on,pcid=on,hypervisor=on,arat=on,tsc-adjust=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaveopt=on,pdpe1gb=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,hv-vapic,hv-spinlocks=0x1fff,hv-vendor-id=1234567890ab,kvm=off,topoext=on -rtc clock=host,base=localtime -m 8192 -smp cores=4,threads=1,sockets=1 -hda /home/kenzie/.local/libvf.io/kernel/windows.arc --enable-kvm -device vfio-pci,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/ad5d139a-5f43-432d-94c2-72314d506bc1,display=off -device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2222-:22 -qmp unix:/tmp/sockets/a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c/main.sock,server,nowait -qmp unix:/tmp/sockets/a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c/master.sock,server,nowait -set device.hostdev0.x-pci-device-id=6960
char device redirected to /dev/pts/1 (label charserial0)
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:EDX.ss [bit 27]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.07H:EDX.md-clear [bit 10]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000008H:EBX.ibrs [bit 14]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:EDX.ss [bit 27]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.07H:EDX.md-clear [bit 10]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000008H:EBX.ibrs [bit 14]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:EDX.ss [bit 27]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.07H:EDX.md-clear [bit 10]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000008H:EBX.ibrs [bit 14]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:EDX.ss [bit 27]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.07H:EDX.md-clear [bit 10]
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000008H:EBX.ibrs [bit 14]
qemu-system-x86_64: -device vfio-pci,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/ad5d139a-5f43-432d-94c2-72314d506bc1,display=off: warning: vfio ad5d139a-5f43-432d-94c2-72314d506bc1: Could not enable error recovery for the device
[2021-11-29 22:08:12] - INFO: Connecting to the socket
/usr/local/bin/looking-glass-client -f /dev/shm/kvmfr-a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c -a yes egl:scale 1 -m 58 input:rawMouse yes input:captureOnly yes spice:captureOnStart yes win:title=Looking Glass + LibVF.IO (CapsLock toggles input | Hold CapsLock for menu) UUID: a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c
/usr/local/bin/scream -m /dev/shm/kvmsr-a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c
[I]  14154843678              main.c:1064 | main                           | Looking Glass (B4+)
[I]  14154843697              main.c:1065 | main                           | Locking Method: Atomic
[W]  14154865815            option.c:301  | option_parse                   | Ignored invalid argument: yes
[W]  14154865828            option.c:329  | option_parse                   | Ignored invalid argument, missing value: egl:scale
[W]  14154865832            option.c:301  | option_parse                   | Ignored invalid argument: 1
[W]  14154865836            option.c:301  | option_parse                   | Ignored invalid argument: yes
[W]  14154865838            option.c:301  | option_parse                   | Ignored invalid argument: yes
[W]  14154865840            option.c:301  | option_parse                   | Ignored invalid argument: yes
[I]  14154865873           ivshmem.c:127  | ivshmemOpenDev                 | KVMFR Device     : /dev/shm/kvmfr-a96ccb76-36c5-4ef1-a469-c7ce9bf34b1c
[I]  14154899328               egl.c:274  | egl_initialize                 | Double buffering is off
[I]  14154899335              main.c:671  | tryRenderer                    | Using Renderer: EGL
[I]  14154900243               x11.c:303  | x11Init                        | X11 XInput 2.0 in use
[I]  14154903485               x11.c:925  | x11GetEGLDisplay               | Using eglGetPlatformDisplayEXT
[I]  14154917466               egl.c:634  | egl_render_startup             | Multisampling enabled, max samples: 4
[I]  14154925427               egl.c:685  | egl_render_startup             | Single buffer mode
[I]  14154955034               egl.c:701  | egl_render_startup             | EGL       : 1.5
[I]  14154955045               egl.c:702  | egl_render_startup             | Vendor    : NVIDIA Corporation
[I]  14154955048               egl.c:703  | egl_render_startup             | Renderer  : GeForce RTX 2080 SUPER/PCIe/SSE2
[I]  14154955050               egl.c:704  | egl_render_startup             | Version   : OpenGL ES 3.2 NVIDIA 460.73.01
[I]  14154955052               egl.c:705  | egl_render_startup             | EGL APIs  : OpenGL_ES OpenGL
[I]  14154955054               egl.c:706  | egl_render_startup             | Extensions: EGL_EXT_buffer_age EGL_EXT_client_sync EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_MESA_image_dma_buf_export EGL_EXT_output_base EGL_EXT_stream_acquire_mode EGL_EXT_sync_reuse EGL_IMG_context_priority EGL_KHR_config_attribs EGL_KHR_create_context_no_error EGL_KHR_context_flush_control EGL_KHR_create_context EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_partial_update EGL_KHR_swap_buffers_with_damage EGL_KHR_no_config_context EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_reusable_sync EGL_KHR_stream EGL_KHR_stream_attrib EGL_KHR_stream_consumer_gltexture EGL_KHR_stream_cross_process_fd EGL_KHR_stream_fifo EGL_KHR_stream_producer_eglsurface EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_NV_nvrm_fence_sync EGL_NV_post_sub_buffer EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage EGL_NV_stream_cross_display EGL_NV_stream_cross_object EGL_NV_stream_cross_process EGL_NV_stream_cross_system EGL_NV_stream_dma EGL_NV_stream_flush EGL_NV_stream_metadata EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix EGL_NV_stream_sync EGL_NV_stream_fifo_next EGL_NV_stream_fifo_synchronous EGL_NV_stream_consumer_gltexture_yuv EGL_NV_stream_attrib EGL_NV_stream_origin EGL_NV_system_time EGL_NV_output_drm_flip_event EGL_NV_triple_buffer EGL_WL_bind_wayland_display EGL_WL_wayland_eglstream
[W]  14154955063               egl.c:721  | egl_render_startup             | NVIDIA driver detected, ignoring broken DMA support
[I]  14155158034              main.c:897  | lg_run                         | ================================================================================
[I]  14155158049              main.c:898  | lg_run                         | The host application seems to not be running
[I]  14155158052              main.c:899  | lg_run                         | Waiting for the host application to start...
[I]  14180159767              main.c:954  | lg_run                         | Host ready, reported version: B4+
[I]  14180159783              main.c:955  | lg_run                         | Starting session
[I]  14180262364              main.c:498  | main_frameThread               | Format: FRAME_TYPE_BGRA 2560x1440 stride:2560 pitch:10240 rotation:0
[I]  14181819009              main.c:498  | main_frameThread               | Format: FRAME_TYPE_BGRA 2560x1440 stride:2560 pitch:10240 rotation:0
[I]  14182067999              main.c:498  | main_frameThread               | Format: FRAME_TYPE_BGRA 2560x1440 stride:2560 pitch:10240 rotation:0
[I]  14191385573              main.c:498  | main_frameThread               | Format: FRAME_TYPE_BGRA 2560x1440 stride:2560 pitch:10240 rotation:0
Switched format to sample rate 48000, sample size 32 and 2 channels.
[I]  14201153389              main.c:498  | main_frameThread               | Format: FRAME_TYPE_BGRA 2560x1440 stride:2560 pitch:10240 rotation:0
[I]  14202853735              main.c:498  | main_frameThread               | Format: FRAME_TYPE_BGRA 2560x1440 stride:2560 pitch:10240 rotation:0

From what I've been reading with regards to Genshin Impact specifically in a VM they do a simple VM check that is normally defeated by libvrt's feature policy='disable' name='hypervisor' setting. I am unsure how to validate that that is being done when calling Qemu directly like arcd is and I would have assumed this would be covered in the general hypervisor detection preventions as was mentioned by @arthurrasmusson on the r/homelab subreddit.

Unsure if this last bit is worth mentioning, but as this is something of a test for me (Genshin is the last hold-out keeping me on Windows), I am running Ubuntu off of a USB3.1 SSD. Getting some pretty harsh disk access issues but for the purpose of the test that's fine (provided the game actually launches).

looking glass B6 support

Hi, from what I saw in funcs-libvfio.sh, is downloading B4. As you know better than me, B6 is a major update for sound support, and performance, and no need to install IOMMU on the guest.
Would be great to see an update and updated documentation.

BTW: as a total noob I could not use LibVF.io, as for GVT-g the docu just refers to the intel-developer side.....bummer.
After several hours of try and error, I could get it running (with helper scrips from pavolelsig); and then I decided to write a noob tutorial for looking-glass: reddit. IMHO such step-by-step documentation is for an average user simply necessary - not to be misunderstood, LibVF.io is a great project!

`arcd create` works but not `arcd start`

Hi, I followed the new guide for Fedora.

After fixing #24 by @rogerskeie I was able to run arcd create with the default Nvidia file, create the VM, and install windows. The VM launched automatically.

However after quitting the VM as per the guide, arcd start <my_yaml> does not work; I get

[2021-12-14 21:57:38] - INFO: Executing: (exec: "echo", args: @["\'ccb6c2a6-9f0a-4b91-a952-93e21b7fe32f\'", ">", "/sys/class/mdev_bus/0000:17:00.0/mdev_supported_types/nvidia-256/create"])
[2021-12-14 21:57:38] - INFO: Executing: (exec: "/bin/qemu-system-x86_64", args: @["-D", "/home/august/.local/libvf.io/logs/qemu/2763ccfb-6758-4854-83f1-fd2c23afd08b-session.txt", "-no-hpet", "-nographic", "-vga", "none", "-serial", "none", "-parallel", "none", "-device", "qemu-xhci,p2=15,p3=15,id=usb", "-device", "virtio-serial-pci,id=virtio-serial0", "-chardev", "pty,id=charserial0", "-device", "isa-serial,chardev=charserial0,id=serial0", "-chardev", "spicevmc,id=charchannel0,name=vdagent", "-device", "virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0", "-spice", "port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on", "-chardev", "spicevmc,id=charredir0,name=usbredir", "-device", "usb-redir,chardev=charredir0,id=redir0", "-chardev", "spicevmc,id=charredir1,name=usbredir", "-device", "usb-redir,chardev=charredir1,id=redir1", "-device", "ivshmem-plain,id=shmem0,memdev=ivshmem_kvmfr", "-object", "memory-backend-file,id=ivshmem_kvmfr,mem-path=/dev/shm/kvmfr-2763ccfb-6758-4854-83f1-fd2c23afd08b,size=128M,share=yes", "-device", "ivshmem-plain,id=shmem1,memdev=ivshmem_kvmsr", "-object", "memory-backend-file,id=ivshmem_kvmsr,mem-path=/dev/shm/kvmsr-2763ccfb-6758-4854-83f1-fd2c23afd08b,size=2M,share=yes", "-uuid", "2763ccfb-6758-4854-83f1-fd2c23afd08b", "-machine", "pc-q35-4.2,accel=kvm,usb=off,vmport=off,dump-guest-core=off", "-cpu", "host,ss=on,vmx=on,pcid=on,-hypervisor,arat=on,tsc-adjust=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaveopt=on,pdpe1gb=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,hv-vapic,hv_time,hv-spinlocks=0x1fff,hv-vendor-id=null,kvm=off,topoext=on", "-rtc", "clock=host,base=localtime", "-m", "12288", "-smp", "cores=8,threads=1,sockets=1", "-hda", "/home/august/.local/libvf.io/kernel/windows.arc", "--enable-kvm", "-device", "vfio-pci,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/ccb6c2a6-9f0a-4b91-a952-93e21b7fe32f,display=off", "-device", "rtl8139,netdev=net0", "-netdev", "user,id=net0,hostfwd=tcp::2222-:22", "-qmp", "unix:/tmp/sockets/2763ccfb-6758-4854-83f1-fd2c23afd08b/main.sock,server,nowait", "-qmp", "unix:/tmp/sockets/2763ccfb-6758-4854-83f1-fd2c23afd08b/master.sock,server,nowait", "-set", "device.hostdev0.x-pci-device-id=6960"])
libvf.io-images $ qemu-system-x86_64: -spice port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on: warning: short-form boolean option 'disable-ticketing' deprecated
Please use disable-ticketing=on instead
char device redirected to /dev/pts/1 (label charserial0)
qemu-system-x86_64: -device vfio-pci,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/ccb6c2a6-9f0a-4b91-a952-93e21b7fe32f,display=off: vfio ccb6c2a6-9f0a-4b91-a952-93e21b7fe32f: error getting device from group 86: Input/output error
Verify all devices in group 86 are bound to vfio-<bus> or pci-stub and not already in use
[2021-12-14 21:57:41] - INFO: Executing: (exec: "/usr/bin/chgrp", args: @["kvm", "/tmp/sockets/2763ccfb-6758-4854-83f1-fd2c23afd08b/main.sock", "/tmp/sockets/2763ccfb-6758-4854-83f1-fd2c23afd08b/master.sock", "/dev/shm/kvmfr-2763ccfb-6758-4854-83f1-fd2c23afd08b", "/dev/shm/kvmsr-2763ccfb-6758-4854-83f1-fd2c23afd08b"])
[2021-12-14 21:57:41] - INFO: Executing: (exec: "/usr/bin/chmod", args: @["g+rwx", "/tmp/sockets/2763ccfb-6758-4854-83f1-fd2c23afd08b/main.sock", "/tmp/sockets/2763ccfb-6758-4854-83f1-fd2c23afd08b/master.sock", "/dev/shm/kvmfr-2763ccfb-6758-4854-83f1-fd2c23afd08b", "/dev/shm/kvmsr-2763ccfb-6758-4854-83f1-fd2c23afd08b"])
[2021-12-14 21:57:41] - INFO: Connecting to the socket
asyncfutures.nim(389)    read
Error: unhandled exception: Connection refused [OSError]
/usr/local/bin/looking-glass-client -f /dev/shm/kvmfr-2763ccfb-6758-4854-83f1-fd2c23afd08b -a yes egl:scale 1 -m 58 input:rawMouse yes input:captureOnly yes spice:captureOnStart yes win:title=Looking Glass + LibVF.IO (CapsLock toggles input | Hold CapsLock for menu) UUID: 2763ccfb-6758-4854-83f1-fd2c23afd08b
/usr/local/bin/scream -m /dev/shm/kvmsr-2763ccfb-6758-4854-83f1-fd2c23afd08b
[I]    297743424              main.c:1064 | main                           | Looking Glass (B4+)
[I]    297743456              main.c:1065 | main                           | Locking Method: Atomic
[W]    297752574            option.c:301  | option_parse                   | Ignored invalid argument: yes
[W]    297752588            option.c:329  | option_parse                   | Ignored invalid argument, missing value: egl:scale
[W]    297752589            option.c:301  | option_parse                   | Ignored invalid argument: 1
[W]    297752597            option.c:301  | option_parse                   | Ignored invalid argument: yes
[W]    297752599            option.c:301  | option_parse                   | Ignored invalid argument: yes
[W]    297752601            option.c:301  | option_parse                   | Ignored invalid argument: yes
[I]    297752693           ivshmem.c:127  | ivshmemOpenDev                 | KVMFR Device     : /dev/shm/kvmfr-2763ccfb-6758-4854-83f1-fd2c23afd08b
[E]    297753251              main.c:727  | lg_run                         | Failed to connect to spice server

I'm confused because the IOMMU group 86 is not the one my Nvidia graphics are on.

Is DisplayStreamCompression (DSC) supported?

In order to use higher resolutions and frame rates like 8k60 or 4k120, DSC must be enabled in the driver so that the link between the GPU and the monitor will compress the signal.

When you boot into Windows native, or use GPU passthrough, DSC is enabled and you can output 8k@60 Hz.

If you boot into linux with the nvidia driver, or use GPU passthrough, DSC is disabled, and you are limited to 8k@30Hz.

Does the use of Libvf.io allow DSC to work?

Alsa error after running "arcd create" command

Kubuntu 21.10, whenever I use the "arcd create" command I get this error:

qemu-system-x86_64: warning: '-soundhw gus' is deprecated, please use '-device gus' instead
ALSA lib pcm_dmix.c:1075:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
ALSA lib pcm_dmix.c:1075:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open `default':
alsa: Reason: No such file or directory
audio: Failed to create voice `gus'

Everything works fine if I disable audio by adding QEMU_AUDIO_DRV=none in /etc/environment

Is vgpu_unlock used ?

Hey i was curious if this tool relies on vgpu_unlock or is its own thing entirely ?
if so how is it different internally ?

thank you very much for the clarifications !

Fedora - Build failed for the package: libvfio (for arcd)

Hello,
When I use ./scripts/install-libvfio.sh script on my Fedora machine with Nvidia GPU, I get the following error during execution:

dracut: *** Creating initramfs image file '/boot/initramfs-6.5.7-200.fc38.x86_64.img' done ***
/home/mble/.nimble/bin/nimble
     Info:  Nimble data file "/home/mble/.nimble/nimbledata2.json" has been loaded.
   Warning: Package 'libvfio' has an incorrect structure. The top level of the package source directory should contain at most one module, named 'libvfio.nim', but a file named 'arcd.nim' was found. This will be an error in the future.
      Hint: If this is the primary source file in the package, rename it to 'libvfio.nim'. If it's a source file required by the main module, or if it is one of several modules exposed by 'libvfio', then move it into a 'libvfio/' subdirectory. If it's a test file or otherwise not required to build the the package 'libvfio.nim', prevent its installation by adding `skipFiles = @["arcd.nim"]` to the .nimble file. See https://github.com/nim-lang/nimble#libraries for more info.
 Attempting to execute hook installBefore in /home/mble/Downloads/LibVF.IO-master/libvfio.nimble
Removing existing file.
Removing file: arcd
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for yaml@any version
     Info:  Dependency on yaml@any version already satisfied
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for uuids@any version
     Info:  Dependency on uuids@any version already satisfied
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for isaac@>= 0.1.3
     Info:  Dependency on isaac@>= 0.1.3 already satisfied
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for psutil@any version
     Info:  Dependency on psutil@any version already satisfied
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for terminaltables@any version
     Info:  Dependency on terminaltables@any version already satisfied
  Verifying dependencies for [email protected]
 Installing [email protected]
   Building libvfio/arcd using c backend
  Executing /home/mble/.nimble/bin/nim c --colors:on --noNimblePath -d:release -d:NimblePkgVersion=1.0.5 --path:/home/mble/.nimble/pkgs2/isaac-0.1.3-05c3583a954715d84b0bf1be97f9a503249e9cdf --path:/home/mble/.nimble/pkgs2/yaml-2.0.0-5a7ef4aea31ac4d94f765ea0ce90046dff5a8a43 --path:/home/mble/.nimble/pkgs2/terminaltables-0.1.1-5fdf88d70cc1d904291204cd4f9e2adf992fb564 --path:/home/mble/.nimble/pkgs2/psutil-0.6.0-965ce8f561bbbd908402979a36bb3eac5cc50897 --path:/home/mble/.nimble/pkgs2/uuids-0.1.11-393f5fcefbc8ad3cf167e59760144208ff8f9f76 -o:/home/mble/Downloads/LibVF.IO-master/arcd /home/mble/Downloads/LibVF.IO-master/src/arcd.nim
Hint: used config file '/home/mble/.choosenim/toolchains/nim-2.0.0/config/nim.cfg' [Conf]
Hint: used config file '/home/mble/.choosenim/toolchains/nim-2.0.0/config/config.nims' [Conf]
..........................................................................................................................................................................................
/home/mble/Downloads/LibVF.IO-master/src/libvfio/types/environment.nim(13, 11) Warning: imported and not used: 'times' [UnusedImport]
/home/mble/Downloads/LibVF.IO-master/src/libvfio/types/environment.nim(11, 11) Warning: imported and not used: 'strformat' [UnusedImport]
/home/mble/Downloads/LibVF.IO-master/src/libvfio/types/environment.nim(12, 11) Warning: imported and not used: 'random' [UnusedImport]
/home/mble/Downloads/LibVF.IO-master/src/libvfio/types/config.nim(375, 7) Error: type mismatch
Expression: dump(cfg, fileStream)
  [1] cfg: Config
  [2] fileStream: FileStream

Expected one of (first mismatch at [position]):
[1] proc dump[K](dumper: Dumper; value: K): string
[1] proc dump[K](dumper: Dumper; value: K; target: Stream)

nimble.nim(229)          buildFromDir

    Error:  Build failed for the package: libvfio
     Info:  Nimble data file "/home/mble/.nimble/nimbledata2.json" has been saved.
rm: cannot remove './arcd': No such file or directory

Due to this error, I cannot use arcd command.

My configuration:

OS: Fedora Linux 38 (Workstation Edition) x86_64
Host: B550M Phantom Gaming 4
Kernel: 6.5.7-200.fc38.x86_64
Uptime: 25 mins
Packages: 1 (dpkg), 3190 (rpm), 85 (flatpak)
Shell: fish 3.6.1
Resolution: 2560x1440
DE: GNOME 44.5
WM: Mutter
WM Theme: Adwaita
Theme: io.elementary.stylesheet.bubblegum [GTK2/3]
Icons: Adwaita [GTK2/3]
Terminal: tmux
CPU: AMD Ryzen 9 5900X (24) @ 3.700GHz
GPU: NVIDIA GeForce RTX 2070
Memory: 4371MiB / 31998MiB

Full output of that script:

What linux distribution are you running?
Type '1' or 'Fedora'
Type '2' or 'Debian'
Type '3' or 'Ubuntu'
Type '4' or 'Arch'
Type '5' or 'Pop_OS'
Type '6' or 'OTHER'
Response: 1

Running LibVF.IO install script for Fedora distribution

[sudo] password for mble:
Last metadata expiration check: 0:56:38 ago on Mon 23 Oct 2023 03:17:21 PM CEST.
Dependencies resolved.
Nothing to do.
Complete!
Last metadata expiration check: 0:56:39 ago on Mon 23 Oct 2023 03:17:21 PM CEST.
Package lshw-B.02.19.2-11.fc38.x86_64 is already installed.
Package unzip-6.0-60.fc38.x86_64 is already installed.
No match for argument: nsis
Package dkms-3.0.12-1.fc38.noarch is already installed.
Package fontconfig-devel-2.14.2-1.fc38.x86_64 is already installed.
Package libX11-devel-1.8.7-1.fc38.x86_64 is already installed.
Package libXfixes-devel-6.0.0-5.fc38.x86_64 is already installed.
Package libXi-devel-1.8.1-1.fc38.x86_64 is already installed.
Package wayland-devel-1.22.0-1.fc38.x86_64 is already installed.
Package libXinerama-devel-1.1.5-2.fc38.x86_64 is already installed.
Package qemu-2:7.2.6-1.fc38.x86_64 is already installed.
Package patch-2.7.6-19.fc38.x86_64 is already installed.
Package kernel-devel-6.5.5-200.fc38.x86_64 is already installed.
Package kernel-devel-6.5.6-200.fc38.x86_64 is already installed.
Package kernel-devel-6.5.7-200.fc38.x86_64 is already installed.
Package openssl-1:3.0.9-2.fc38.x86_64 is already installed.
Error: Unable to find a match: nsis
Configuring shared memory device file permissions.
Updating kernel boot parameters.
Required boot parameters already in /etc/default/grub
Generating grub configuration file ...
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings ...
done
Blacklisting non-mediated device drivers.
dracut: Executing: /usr/bin/dracut --kver=6.5.5-200.fc38.x86_64 -fv
dracut: dracut module 'connman' will not be installed, because command 'connmand' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmanctl' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand-wait-online' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmanctl' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand-wait-online' could not be found!
dracut: *** Including module: systemd ***
dracut: *** Including module: systemd-initrd ***
dracut: *** Including module: systemd-sysusers ***
dracut: *** Including module: nss-softokn ***
dracut: *** Including module: dbus-broker ***
dracut: *** Including module: rngd ***
dracut: *** Including module: dbus ***
dracut: *** Including module: i18n ***
dracut: *** Including module: network-wicked ***
dracut: *** Including module: network ***
dracut: *** Including module: ifcfg ***
dracut: *** Including module: drm ***
dracut: *** Including module: plymouth ***
dracut: *** Including module: btrfs ***
dracut: *** Including module: crypt ***
dracut: *** Including module: dm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 60-persistent-storage-dm.rules
dracut: Skipping udev rule: 55-dm.rules
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: kernel-modules-extra ***
dracut: *** Including module: kernel-network-modules ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: terminfo ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: Skipping udev rule: 70-persistent-net.rules
dracut: *** Including module: biosdevname ***
dracut: *** Including module: dracut-systemd ***
dracut: *** Including module: usrmount ***
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including module: memstrack ***
dracut: *** Including module: shutdown ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies ***
dracut: *** Installing kernel module dependencies done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done ***
dracut: *** Hardlinking files ***
dracut: Mode:                     real
dracut: Method:                   sha256
dracut: Files:                    2187
dracut: Linked:                   81 files
dracut: Compared:                 0 xattrs
dracut: Compared:                 979 files
dracut: Saved:                    563.14 KiB
dracut: Duration:                 0.041866 seconds
dracut: *** Hardlinking files done ***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Constructing AuthenticAMD.bin ***
dracut: *** Store current command line parameters ***
dracut: *** Stripping files ***
dracut: *** Stripping files done ***
dracut: *** Creating image file '/boot/initramfs-6.5.5-200.fc38.x86_64.img' ***
dracut: Using auto-determined compression method 'pigz'
dracut: *** Creating initramfs image file '/boot/initramfs-6.5.5-200.fc38.x86_64.img' done ***
dracut: Executing: /usr/bin/dracut --kver=6.5.6-200.fc38.x86_64 -fv
dracut: dracut module 'connman' will not be installed, because command 'connmand' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmanctl' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand-wait-online' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmanctl' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand-wait-online' could not be found!
dracut: *** Including module: systemd ***
dracut: *** Including module: systemd-initrd ***
dracut: *** Including module: systemd-sysusers ***
dracut: *** Including module: nss-softokn ***
dracut: *** Including module: dbus-broker ***
dracut: *** Including module: rngd ***
dracut: *** Including module: dbus ***
dracut: *** Including module: i18n ***
dracut: *** Including module: network-wicked ***
dracut: *** Including module: network ***
dracut: *** Including module: ifcfg ***
dracut: *** Including module: drm ***
dracut: *** Including module: plymouth ***
dracut: *** Including module: btrfs ***
dracut: *** Including module: crypt ***
dracut: *** Including module: dm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 60-persistent-storage-dm.rules
dracut: Skipping udev rule: 55-dm.rules
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: kernel-modules-extra ***
dracut: *** Including module: kernel-network-modules ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: terminfo ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: Skipping udev rule: 70-persistent-net.rules
dracut: *** Including module: biosdevname ***
dracut: *** Including module: dracut-systemd ***
dracut: *** Including module: usrmount ***
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including module: memstrack ***
dracut: *** Including module: shutdown ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies ***
dracut: *** Installing kernel module dependencies done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done ***
dracut: *** Hardlinking files ***
dracut: Mode:                     real
dracut: Method:                   sha256
dracut: Files:                    2187
dracut: Linked:                   81 files
dracut: Compared:                 0 xattrs
dracut: Compared:                 978 files
dracut: Saved:                    563.14 KiB
dracut: Duration:                 0.042376 seconds
dracut: *** Hardlinking files done ***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Constructing AuthenticAMD.bin ***
dracut: *** Store current command line parameters ***
dracut: *** Stripping files ***
dracut: *** Stripping files done ***
dracut: *** Creating image file '/boot/initramfs-6.5.6-200.fc38.x86_64.img' ***
dracut: Using auto-determined compression method 'pigz'
dracut: *** Creating initramfs image file '/boot/initramfs-6.5.6-200.fc38.x86_64.img' done ***
dracut: Executing: /usr/bin/dracut --kver=6.5.7-200.fc38.x86_64 -fv
dracut: dracut module 'connman' will not be installed, because command 'connmand' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmanctl' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand-wait-online' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmanctl' could not be found!
dracut: dracut module 'connman' will not be installed, because command 'connmand-wait-online' could not be found!
dracut: *** Including module: systemd ***
dracut: *** Including module: systemd-initrd ***
dracut: *** Including module: systemd-sysusers ***
dracut: *** Including module: nss-softokn ***
dracut: *** Including module: dbus-broker ***
dracut: *** Including module: rngd ***
dracut: *** Including module: dbus ***
dracut: *** Including module: i18n ***
dracut: *** Including module: network-wicked ***
dracut: *** Including module: network ***
dracut: *** Including module: ifcfg ***
dracut: *** Including module: drm ***
dracut: *** Including module: plymouth ***
dracut: *** Including module: btrfs ***
dracut: *** Including module: crypt ***
dracut: *** Including module: dm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 60-persistent-storage-dm.rules
dracut: Skipping udev rule: 55-dm.rules
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: kernel-modules-extra ***
dracut: *** Including module: kernel-network-modules ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: terminfo ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: Skipping udev rule: 70-persistent-net.rules
dracut: *** Including module: biosdevname ***
dracut: *** Including module: dracut-systemd ***
dracut: *** Including module: usrmount ***
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including module: memstrack ***
dracut: *** Including module: shutdown ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies ***
dracut: *** Installing kernel module dependencies done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done ***
dracut: *** Hardlinking files ***
dracut: Mode:                     real
dracut: Method:                   sha256
dracut: Files:                    2187
dracut: Linked:                   81 files
dracut: Compared:                 0 xattrs
dracut: Compared:                 965 files
dracut: Saved:                    563.14 KiB
dracut: Duration:                 0.042165 seconds
dracut: *** Hardlinking files done ***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Constructing AuthenticAMD.bin ***
dracut: *** Store current command line parameters ***
dracut: *** Stripping files ***
dracut: *** Stripping files done ***
dracut: *** Creating image file '/boot/initramfs-6.5.7-200.fc38.x86_64.img' ***
dracut: Using auto-determined compression method 'pigz'
dracut: *** Creating initramfs image file '/boot/initramfs-6.5.7-200.fc38.x86_64.img' done ***
/home/mble/.nimble/bin/nimble
     Info:  Nimble data file "/home/mble/.nimble/nimbledata2.json" has been loaded.
   Warning: Package 'libvfio' has an incorrect structure. The top level of the package source directory should contain at most one module, named 'libvfio.nim', but a file named 'arcd.nim' was found. This will be an error in the future.
      Hint: If this is the primary source file in the package, rename it to 'libvfio.nim'. If it's a source file required by the main module, or if it is one of several modules exposed by 'libvfio', then move it into a 'libvfio/' subdirectory. If it's a test file or otherwise not required to build the the package 'libvfio.nim', prevent its installation by adding `skipFiles = @["arcd.nim"]` to the .nimble file. See https://github.com/nim-lang/nimble#libraries for more info.
 Attempting to execute hook installBefore in /home/mble/Downloads/LibVF.IO-master/libvfio.nimble
Removing existing file.
Removing file: arcd
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for yaml@any version
     Info:  Dependency on yaml@any version already satisfied
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for uuids@any version
     Info:  Dependency on uuids@any version already satisfied
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for isaac@>= 0.1.3
     Info:  Dependency on isaac@>= 0.1.3 already satisfied
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for psutil@any version
     Info:  Dependency on psutil@any version already satisfied
  Verifying dependencies for [email protected]
    Reading official package list
   Checking for terminaltables@any version
     Info:  Dependency on terminaltables@any version already satisfied
  Verifying dependencies for [email protected]
 Installing [email protected]
   Building libvfio/arcd using c backend
  Executing /home/mble/.nimble/bin/nim c --colors:on --noNimblePath -d:release -d:NimblePkgVersion=1.0.5 --path:/home/mble/.nimble/pkgs2/isaac-0.1.3-05c3583a954715d84b0bf1be97f9a503249e9cdf --path:/home/mble/.nimble/pkgs2/yaml-2.0.0-5a7ef4aea31ac4d94f765ea0ce90046dff5a8a43 --path:/home/mble/.nimble/pkgs2/terminaltables-0.1.1-5fdf88d70cc1d904291204cd4f9e2adf992fb564 --path:/home/mble/.nimble/pkgs2/psutil-0.6.0-965ce8f561bbbd908402979a36bb3eac5cc50897 --path:/home/mble/.nimble/pkgs2/uuids-0.1.11-393f5fcefbc8ad3cf167e59760144208ff8f9f76 -o:/home/mble/Downloads/LibVF.IO-master/arcd /home/mble/Downloads/LibVF.IO-master/src/arcd.nim
Hint: used config file '/home/mble/.choosenim/toolchains/nim-2.0.0/config/nim.cfg' [Conf]
Hint: used config file '/home/mble/.choosenim/toolchains/nim-2.0.0/config/config.nims' [Conf]
..........................................................................................................................................................................................
/home/mble/Downloads/LibVF.IO-master/src/libvfio/types/environment.nim(13, 11) Warning: imported and not used: 'times' [UnusedImport]
/home/mble/Downloads/LibVF.IO-master/src/libvfio/types/environment.nim(11, 11) Warning: imported and not used: 'strformat' [UnusedImport]
/home/mble/Downloads/LibVF.IO-master/src/libvfio/types/environment.nim(12, 11) Warning: imported and not used: 'random' [UnusedImport]
/home/mble/Downloads/LibVF.IO-master/src/libvfio/types/config.nim(375, 7) Error: type mismatch
Expression: dump(cfg, fileStream)
  [1] cfg: Config
  [2] fileStream: FileStream

Expected one of (first mismatch at [position]):
[1] proc dump[K](dumper: Dumper; value: K): string
[1] proc dump[K](dumper: Dumper; value: K; target: Stream)

nimble.nim(229)          buildFromDir

    Error:  Build failed for the package: libvfio
     Info:  Nimble data file "/home/mble/.nimble/nimbledata2.json" has been saved.
rm: cannot remove './arcd': No such file or directory
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  513k  100  513k    0     0   183k      0  0:00:02  0:00:02 --:--:--  183k
looking-glass-B4/
looking-glass-B4/AUTHORS
looking-glass-B4/CONTRIBUTORS
looking-glass-B4/LICENSE
looking-glass-B4/README.md
looking-glass-B4/client/
looking-glass-B4/client/CMakeLists.txt
looking-glass-B4/client/DEBUGGING.md
looking-glass-B4/client/cmake/
looking-glass-B4/client/cmake/FindGMP.cmake
looking-glass-B4/client/cmake/MakeObject.cmake
looking-glass-B4/client/displayservers/
looking-glass-B4/client/displayservers/CMakeLists.txt
looking-glass-B4/client/displayservers/SDL/
looking-glass-B4/client/displayservers/SDL/CMakeLists.txt
looking-glass-B4/client/displayservers/SDL/kb.h
looking-glass-B4/client/displayservers/SDL/sdl.c
looking-glass-B4/client/displayservers/Wayland/
looking-glass-B4/client/displayservers/Wayland/CMakeLists.txt
looking-glass-B4/client/displayservers/Wayland/clipboard.c
looking-glass-B4/client/displayservers/Wayland/cursor.c
looking-glass-B4/client/displayservers/Wayland/gl.c
looking-glass-B4/client/displayservers/Wayland/idle.c
looking-glass-B4/client/displayservers/Wayland/input.c
looking-glass-B4/client/displayservers/Wayland/output.c
looking-glass-B4/client/displayservers/Wayland/poll.c
looking-glass-B4/client/displayservers/Wayland/registry.c
looking-glass-B4/client/displayservers/Wayland/shell_libdecor.c
looking-glass-B4/client/displayservers/Wayland/shell_xdg.c
looking-glass-B4/client/displayservers/Wayland/state.c
looking-glass-B4/client/displayservers/Wayland/wayland.c
looking-glass-B4/client/displayservers/Wayland/wayland.h
looking-glass-B4/client/displayservers/Wayland/window.c
looking-glass-B4/client/displayservers/X11/
looking-glass-B4/client/displayservers/X11/CMakeLists.txt
looking-glass-B4/client/displayservers/X11/atoms.c
looking-glass-B4/client/displayservers/X11/atoms.h
looking-glass-B4/client/displayservers/X11/clipboard.c
looking-glass-B4/client/displayservers/X11/clipboard.h
looking-glass-B4/client/displayservers/X11/x11.c
looking-glass-B4/client/displayservers/X11/x11.h
looking-glass-B4/client/fonts/
looking-glass-B4/client/fonts/CMakeLists.txt
looking-glass-B4/client/fonts/freetype/
looking-glass-B4/client/fonts/freetype/CMakeLists.txt
looking-glass-B4/client/fonts/freetype/src/
looking-glass-B4/client/fonts/freetype/src/freetype.c
looking-glass-B4/client/include/
looking-glass-B4/client/include/app.h
looking-glass-B4/client/include/egl_dynprocs.h
looking-glass-B4/client/include/interface/
looking-glass-B4/client/include/interface/displayserver.h
looking-glass-B4/client/include/interface/font.h
looking-glass-B4/client/include/interface/renderer.h
looking-glass-B4/client/include/ll.h
looking-glass-B4/client/include/util.h
looking-glass-B4/client/renderers/
looking-glass-B4/client/renderers/CMakeLists.txt
looking-glass-B4/client/renderers/EGL/
looking-glass-B4/client/renderers/EGL/CMakeLists.txt
looking-glass-B4/client/renderers/EGL/alert.c
looking-glass-B4/client/renderers/EGL/alert.h
looking-glass-B4/client/renderers/EGL/cursor.c
looking-glass-B4/client/renderers/EGL/cursor.h
looking-glass-B4/client/renderers/EGL/desktop.c
looking-glass-B4/client/renderers/EGL/desktop.h
looking-glass-B4/client/renderers/EGL/draw.c
looking-glass-B4/client/renderers/EGL/draw.h
looking-glass-B4/client/renderers/EGL/egl.c
looking-glass-B4/client/renderers/EGL/egldebug.c
looking-glass-B4/client/renderers/EGL/egldebug.h
looking-glass-B4/client/renderers/EGL/fps.c
looking-glass-B4/client/renderers/EGL/fps.h
looking-glass-B4/client/renderers/EGL/help.c
looking-glass-B4/client/renderers/EGL/help.h
looking-glass-B4/client/renderers/EGL/model.c
looking-glass-B4/client/renderers/EGL/model.h
looking-glass-B4/client/renderers/EGL/shader.c
looking-glass-B4/client/renderers/EGL/shader.h
looking-glass-B4/client/renderers/EGL/shader/
looking-glass-B4/client/renderers/EGL/shader/alert.frag
looking-glass-B4/client/renderers/EGL/shader/alert.vert
looking-glass-B4/client/renderers/EGL/shader/alert_bg.frag
looking-glass-B4/client/renderers/EGL/shader/cursor.vert
looking-glass-B4/client/renderers/EGL/shader/cursor_mono.frag
looking-glass-B4/client/renderers/EGL/shader/cursor_rgb.frag
looking-glass-B4/client/renderers/EGL/shader/desktop.vert
looking-glass-B4/client/renderers/EGL/shader/desktop_rgb.frag
looking-glass-B4/client/renderers/EGL/shader/fps.frag
looking-glass-B4/client/renderers/EGL/shader/fps.vert
looking-glass-B4/client/renderers/EGL/shader/fps_bg.frag
looking-glass-B4/client/renderers/EGL/shader/help.frag
looking-glass-B4/client/renderers/EGL/shader/help.vert
looking-glass-B4/client/renderers/EGL/shader/help_bg.frag
looking-glass-B4/client/renderers/EGL/shader/splash_bg.frag
looking-glass-B4/client/renderers/EGL/shader/splash_bg.vert
looking-glass-B4/client/renderers/EGL/shader/splash_logo.frag
looking-glass-B4/client/renderers/EGL/shader/splash_logo.vert
looking-glass-B4/client/renderers/EGL/splash.c
looking-glass-B4/client/renderers/EGL/splash.h
looking-glass-B4/client/renderers/EGL/texture.c
looking-glass-B4/client/renderers/EGL/texture.h
looking-glass-B4/client/renderers/OpenGL/
looking-glass-B4/client/renderers/OpenGL/CMakeLists.txt
looking-glass-B4/client/renderers/OpenGL/opengl.c
looking-glass-B4/client/src/
looking-glass-B4/client/src/app.c
looking-glass-B4/client/src/clipboard.c
looking-glass-B4/client/src/clipboard.h
looking-glass-B4/client/src/config.c
looking-glass-B4/client/src/config.h
looking-glass-B4/client/src/core.c
looking-glass-B4/client/src/core.h
looking-glass-B4/client/src/egl_dynprocs.c
looking-glass-B4/client/src/kb.c
looking-glass-B4/client/src/kb.h
looking-glass-B4/client/src/keybind.c
looking-glass-B4/client/src/keybind.h
looking-glass-B4/client/src/lg-renderer.c
looking-glass-B4/client/src/ll.c
looking-glass-B4/client/src/main.c
looking-glass-B4/client/src/main.h
looking-glass-B4/client/src/util.c
looking-glass-B4/common/
looking-glass-B4/common/CMakeLists.txt
looking-glass-B4/common/cmake/
looking-glass-B4/common/cmake/FindBFD.cmake
looking-glass-B4/common/include/
looking-glass-B4/common/include/common/
looking-glass-B4/common/include/common/KVMFR.h
looking-glass-B4/common/include/common/countedbuffer.h
looking-glass-B4/common/include/common/crash.h
looking-glass-B4/common/include/common/debug.h
looking-glass-B4/common/include/common/dpi.h
looking-glass-B4/common/include/common/event.h
looking-glass-B4/common/include/common/framebuffer.h
looking-glass-B4/common/include/common/ivshmem.h
looking-glass-B4/common/include/common/locking.h
looking-glass-B4/common/include/common/option.h
looking-glass-B4/common/include/common/runningavg.h
looking-glass-B4/common/include/common/stringlist.h
looking-glass-B4/common/include/common/stringutils.h
looking-glass-B4/common/include/common/sysinfo.h
looking-glass-B4/common/include/common/thread.h
looking-glass-B4/common/include/common/time.h
looking-glass-B4/common/include/common/types.h
looking-glass-B4/common/include/common/version.h
looking-glass-B4/common/include/common/windebug.h
looking-glass-B4/common/src/
looking-glass-B4/common/src/KVMFR.c
looking-glass-B4/common/src/countedbuffer.c
looking-glass-B4/common/src/framebuffer.c
looking-glass-B4/common/src/option.c
looking-glass-B4/common/src/platform/
looking-glass-B4/common/src/platform/CMakeLists.txt
looking-glass-B4/common/src/platform/linux/
looking-glass-B4/common/src/platform/linux/CMakeLists.txt
looking-glass-B4/common/src/platform/linux/bfd.inc.h
looking-glass-B4/common/src/platform/linux/crash.c
looking-glass-B4/common/src/platform/linux/debug.c
looking-glass-B4/common/src/platform/linux/event.c
looking-glass-B4/common/src/platform/linux/ivshmem.c
looking-glass-B4/common/src/platform/linux/sysinfo.c
looking-glass-B4/common/src/platform/linux/thread.c
looking-glass-B4/common/src/platform/linux/time.c
looking-glass-B4/common/src/platform/windows/
looking-glass-B4/common/src/platform/windows/CMakeLists.txt
looking-glass-B4/common/src/platform/windows/crash.c
looking-glass-B4/common/src/platform/windows/debug.c
looking-glass-B4/common/src/platform/windows/dpi.c
looking-glass-B4/common/src/platform/windows/event.c
looking-glass-B4/common/src/platform/windows/ivshmem.c
looking-glass-B4/common/src/platform/windows/sysinfo.c
looking-glass-B4/common/src/platform/windows/thread.c
looking-glass-B4/common/src/platform/windows/time.c
looking-glass-B4/common/src/platform/windows/windebug.c
looking-glass-B4/common/src/runningavg.c
looking-glass-B4/common/src/stringlist.c
looking-glass-B4/common/src/stringutils.c
looking-glass-B4/contrib/
looking-glass-B4/contrib/redhat/
looking-glass-B4/contrib/redhat/qemu-ivshmem-sock.pp
looking-glass-B4/doc/
looking-glass-B4/doc/Makefile
looking-glass-B4/doc/build.rst
looking-glass-B4/doc/conf.py
looking-glass-B4/doc/credits.rst
looking-glass-B4/doc/faq.rst
looking-glass-B4/doc/images/
looking-glass-B4/doc/images/Looking-Glass-OBS-Source-Add.png
looking-glass-B4/doc/images/Looking-Glass-OBS-config.png
looking-glass-B4/doc/index.rst
looking-glass-B4/doc/install.rst
looking-glass-B4/doc/make.bat
looking-glass-B4/doc/module.rst
looking-glass-B4/doc/obs.rst
looking-glass-B4/doc/tech_faq.rst
looking-glass-B4/doc/troubleshooting.rst
looking-glass-B4/host/
looking-glass-B4/host/CMakeLists.txt
looking-glass-B4/host/cmake/
looking-glass-B4/host/cmake/NVFBC.cmake
looking-glass-B4/host/cmake/PostCapture.cmake
looking-glass-B4/host/cmake/PreCapture.cmake
looking-glass-B4/host/include/
looking-glass-B4/host/include/interface/
looking-glass-B4/host/include/interface/capture.h
looking-glass-B4/host/include/interface/platform.h
looking-glass-B4/host/platform/
looking-glass-B4/host/platform/CMakeLists.txt
looking-glass-B4/host/platform/Linux/
looking-glass-B4/host/platform/Linux/CMakeLists.txt
looking-glass-B4/host/platform/Linux/capture/
looking-glass-B4/host/platform/Linux/capture/CMakeLists.txt
looking-glass-B4/host/platform/Linux/capture/XCB/
looking-glass-B4/host/platform/Linux/capture/XCB/CMakeLists.txt
looking-glass-B4/host/platform/Linux/capture/XCB/src/
looking-glass-B4/host/platform/Linux/capture/XCB/src/xcb.c
looking-glass-B4/host/platform/Linux/src/
looking-glass-B4/host/platform/Linux/src/platform.c
looking-glass-B4/host/platform/Windows/
looking-glass-B4/host/platform/Windows/CMakeLists.txt
looking-glass-B4/host/platform/Windows/app.manifest
looking-glass-B4/host/platform/Windows/capture/
looking-glass-B4/host/platform/Windows/capture/CMakeLists.txt
looking-glass-B4/host/platform/Windows/capture/DXGI/
looking-glass-B4/host/platform/Windows/capture/DXGI/CMakeLists.txt
looking-glass-B4/host/platform/Windows/capture/DXGI/dll/
looking-glass-B4/host/platform/Windows/capture/DXGI/dll/libd3d11.def
looking-glass-B4/host/platform/Windows/capture/DXGI/src/
looking-glass-B4/host/platform/Windows/capture/DXGI/src/dxgi.c
looking-glass-B4/host/platform/Windows/capture/DXGI/src/dxgi_extra.h
looking-glass-B4/host/platform/Windows/capture/NVFBC/
looking-glass-B4/host/platform/Windows/capture/NVFBC/CMakeLists.txt
looking-glass-B4/host/platform/Windows/capture/NVFBC/src/
looking-glass-B4/host/platform/Windows/capture/NVFBC/src/nvfbc.c
looking-glass-B4/host/platform/Windows/capture/NVFBC/src/wrapper.cpp
looking-glass-B4/host/platform/Windows/capture/NVFBC/src/wrapper.h
looking-glass-B4/host/platform/Windows/include/
looking-glass-B4/host/platform/Windows/include/windows/
looking-glass-B4/host/platform/Windows/include/windows/delay.h
looking-glass-B4/host/platform/Windows/include/windows/force_compose.h
looking-glass-B4/host/platform/Windows/include/windows/mousehook.h
looking-glass-B4/host/platform/Windows/installer.nsi
looking-glass-B4/host/platform/Windows/resource.rc
looking-glass-B4/host/platform/Windows/src/
looking-glass-B4/host/platform/Windows/src/delay.c
looking-glass-B4/host/platform/Windows/src/force_compose.c
looking-glass-B4/host/platform/Windows/src/mousehook.c
looking-glass-B4/host/platform/Windows/src/platform.c
looking-glass-B4/host/platform/Windows/src/platform.h
looking-glass-B4/host/platform/Windows/src/service.c
looking-glass-B4/host/platform/Windows/src/service.h
looking-glass-B4/host/src/
looking-glass-B4/host/src/app.c
looking-glass-B4/host/toolchain-mingw64.cmake
looking-glass-B4/module/
looking-glass-B4/module/Makefile
looking-glass-B4/module/dkms.conf
looking-glass-B4/module/kvmfr.c
looking-glass-B4/module/kvmfr.h
looking-glass-B4/module/test.c
looking-glass-B4/module/test.expected
looking-glass-B4/obs/
looking-glass-B4/obs/CMakeLists.txt
looking-glass-B4/obs/lg.c
looking-glass-B4/obs/main.c
looking-glass-B4/profile/
looking-glass-B4/profile/README.md
looking-glass-B4/profile/client/
looking-glass-B4/profile/client/CMakeLists.txt
looking-glass-B4/profile/client/src/
looking-glass-B4/profile/client/src/main.c
looking-glass-B4/refresh-copyright
looking-glass-B4/repos/
looking-glass-B4/repos/LGMP/
looking-glass-B4/repos/PureSpice/
looking-glass-B4/resources/
looking-glass-B4/resources/icon-128x128.png
looking-glass-B4/resources/icon.ico
looking-glass-B4/resources/lg-logo.ai
looking-glass-B4/resources/lg-logo.png
looking-glass-B4/resources/lg-logo.svg
looking-glass-B4/vendor/
looking-glass-B4/vendor/getopt/
looking-glass-B4/vendor/getopt/README.txt
looking-glass-B4/vendor/getopt/getopt.c
looking-glass-B4/vendor/getopt/getopt.h
looking-glass-B4/vendor/ivshmem/
looking-glass-B4/vendor/ivshmem/ivshmem.h
looking-glass-B4/version.cmake
looking-glass-B4/VERSION
looking-glass-B4/repos/
looking-glass-B4/repos/PureSpice/
looking-glass-B4/repos/PureSpice/src/
looking-glass-B4/repos/PureSpice/src/rsa.c
looking-glass-B4/repos/PureSpice/src/queue.c
looking-glass-B4/repos/PureSpice/src/queue.h
looking-glass-B4/repos/PureSpice/src/rsa.h
looking-glass-B4/repos/PureSpice/src/spice.c
looking-glass-B4/repos/PureSpice/src/locking.h
looking-glass-B4/repos/PureSpice/src/messages.h
looking-glass-B4/repos/PureSpice/CMakeLists.txt
looking-glass-B4/repos/PureSpice/README.md
looking-glass-B4/repos/PureSpice/LICENSE
looking-glass-B4/repos/PureSpice/include/
looking-glass-B4/repos/PureSpice/include/spice/
looking-glass-B4/repos/PureSpice/include/spice/spice.h
looking-glass-B4/repos/LGMP/
looking-glass-B4/repos/LGMP/lgmp/
looking-glass-B4/repos/LGMP/lgmp/src/
looking-glass-B4/repos/LGMP/lgmp/src/status.c
looking-glass-B4/repos/LGMP/lgmp/src/headers.h
looking-glass-B4/repos/LGMP/lgmp/src/client.c
looking-glass-B4/repos/LGMP/lgmp/src/host.c
looking-glass-B4/repos/LGMP/lgmp/src/lgmp.h
looking-glass-B4/repos/LGMP/lgmp/CMakeLists.txt
looking-glass-B4/repos/LGMP/lgmp/include/
looking-glass-B4/repos/LGMP/lgmp/include/lgmp/
looking-glass-B4/repos/LGMP/lgmp/include/lgmp/host.h
looking-glass-B4/repos/LGMP/lgmp/include/lgmp/status.h
looking-glass-B4/repos/LGMP/lgmp/include/lgmp/client.h
looking-glass-B4/repos/LGMP/lgmp/include/lgmp/lgmp.h
looking-glass-B4/repos/LGMP/README.md
looking-glass-B4/repos/LGMP/LICENSE
/home/mble/Downloads/LibVF.IO-master/scripts/funcs-libvfio.sh: line 359: cmake: command not found
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target 'install'.  Stop.
/home/mble/Downloads/LibVF.IO-master/scripts/funcs-libvfio.sh: line 364: cmake: command not found
make: *** No targets specified and no makefile found.  Stop.
/home/mble/Downloads/LibVF.IO-master/scripts/funcs-libvfio.sh: line 366: cd: platform/Windows: No such file or directory
/home/mble/Downloads/LibVF.IO-master/scripts/funcs-libvfio.sh: line 367: makensis: command not found
fatal: destination path 'scream' already exists and is not an empty directory.
mkdir: cannot create directory ‘build’: File exists
/home/mble/Downloads/LibVF.IO-master/scripts/funcs-libvfio.sh: line 381: cmake: command not found
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target 'install'.  Stop.
--2023-10-23 16:14:45--  https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/upstream-virtio/virtio-win10-prewhql-0.1-161.zip
Resolving fedorapeople.org (fedorapeople.org)... 152.19.134.199, 2600:2701:4000:5211:dead:beef:a7:9474
Connecting to fedorapeople.org (fedorapeople.org)|152.19.134.199|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 96236448 (92M) [application/zip]
Saving to: ‘virtio-win10-prewhql-0.1-161.zip.1’

virtio-win10-prewhql-0.1-161.zip.1                                                          100%[========================================================================================================================================================================================================================================>]  91.78M   822KB/s    in 5m 50s

2023-10-23 16:20:36 (269 KB/s) - ‘virtio-win10-prewhql-0.1-161.zip.1’ saved [96236448/96236448]

--2023-10-23 16:20:36--  https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win-guest-tools.exe
Resolving fedorapeople.org (fedorapeople.org)... 152.19.134.199, 2600:2701:4000:5211:dead:beef:a7:9474
Connecting to fedorapeople.org (fedorapeople.org)|152.19.134.199|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-guest-tools.exe [following]
--2023-10-23 16:20:38--  https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-guest-tools.exe
Reusing existing connection to fedorapeople.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 33304552 (32M) [application/octet-stream]
Saving to: ‘virtio-win-guest-tools.exe’

virtio-win-guest-tools.exe                                                                  100%[========================================================================================================================================================================================================================================>]  31.76M   353KB/s    in 88s

2023-10-23 16:22:06 (369 KB/s) - ‘virtio-win-guest-tools.exe’ saved [33304552/33304552]

--2023-10-23 16:22:06--  https://github.com/duncanthrax/scream/releases/download/3.8/Scream3.8.zip
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/38454658/db421081-0c54-4df8-9e71-0c32a17a2465?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231023%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231023T142215Z&X-Amz-Expires=300&X-Amz-Signature=ad5d7bbccf75aa1e4170fc4a0f07b34663db423b87e7f809fdbc8602a9dc8bf9&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=38454658&response-content-disposition=attachment%3B%20filename%3DScream3.8.zip&response-content-type=application%2Foctet-stream [following]
--2023-10-23 16:22:07--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/38454658/db421081-0c54-4df8-9e71-0c32a17a2465?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231023%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231023T142215Z&X-Amz-Expires=300&X-Amz-Signature=ad5d7bbccf75aa1e4170fc4a0f07b34663db423b87e7f809fdbc8602a9dc8bf9&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=38454658&response-content-disposition=attachment%3B%20filename%3DScream3.8.zip&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.109.133, 185.199.108.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 614476 (600K) [application/octet-stream]
Saving to: ‘Scream3.8.zip’

Scream3.8.zip                                                                               100%[========================================================================================================================================================================================================================================>] 600.07K   691KB/s    in 0.9s

2023-10-23 16:22:09 (691 KB/s) - ‘Scream3.8.zip’ saved [614476/614476]

cp: cannot stat '/home/mble/Downloads/LibVF.IO-master/optional/guest/*': No such file or directory
cp: cannot stat '/home/mble/.ssh/id_rsa.pub': No such file or directory
--2023-10-23 16:22:09--  https://looking-glass.io/artifact/B4/host
Resolving looking-glass.io (looking-glass.io)... 172.67.132.180, 104.21.5.8, 2606:4700:3034::ac43:84b4, ...
Connecting to looking-glass.io (looking-glass.io)|172.67.132.180|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 346775 (339K) [application/octet-stream]
Saving to: ‘looking-glass-host.zip’

looking-glass-host.zip                                                                      100%[========================================================================================================================================================================================================================================>] 338.65K   470KB/s    in 0.7s

2023-10-23 16:22:11 (470 KB/s) - ‘looking-glass-host.zip’ saved [346775/346775]

Archive:  looking-glass-host.zip
  inflating: build.log
  inflating: looking-glass-host-setup.exe
--2023-10-23 16:22:11--  https://go.microsoft.com/fwlink/?linkid=2120254
Resolving go.microsoft.com (go.microsoft.com)... 23.200.162.90, 2a02:26f0:d200:39d::2c1a, 2a02:26f0:d200:39a::2c1a
Connecting to go.microsoft.com (go.microsoft.com)|23.200.162.90|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://download.microsoft.com/download/8/6/c/86c218f3-4349-4aa5-beba-d05e48bbc286/adk/adksetup.exe [following]
--2023-10-23 16:22:12--  https://download.microsoft.com/download/8/6/c/86c218f3-4349-4aa5-beba-d05e48bbc286/adk/adksetup.exe
Resolving download.microsoft.com (download.microsoft.com)... 104.91.48.252, 2a02:26f0:d200:8a2::317f, 2a02:26f0:d200:896::317f
Connecting to download.microsoft.com (download.microsoft.com)|104.91.48.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1934336 (1.8M) [application/octet-stream]
Saving to: ‘adksetup.exe’

adksetup.exe                                                                                100%[========================================================================================================================================================================================================================================>]   1.84M   865KB/s    in 2.2s

2023-10-23 16:22:14 (865 KB/s) - ‘adksetup.exe’ saved [1934336/1934336]

Warning: creating filesystem that does not conform to ISO-9660.
I: -input-charset not specified, using utf-8 (detected in locale settings)
  4.98% done, estimate finish Mon Oct 23 16:22:14 2023
  9.93% done, estimate finish Mon Oct 23 16:22:14 2023
 14.90% done, estimate finish Mon Oct 23 16:22:14 2023
 19.86% done, estimate finish Mon Oct 23 16:22:14 2023
 24.82% done, estimate finish Mon Oct 23 16:22:14 2023
 29.79% done, estimate finish Mon Oct 23 16:22:14 2023
 34.74% done, estimate finish Mon Oct 23 16:22:14 2023
 39.71% done, estimate finish Mon Oct 23 16:22:14 2023
 44.67% done, estimate finish Mon Oct 23 16:22:14 2023
 49.64% done, estimate finish Mon Oct 23 16:22:14 2023
 54.60% done, estimate finish Mon Oct 23 16:22:14 2023
 59.56% done, estimate finish Mon Oct 23 16:22:14 2023
 64.53% done, estimate finish Mon Oct 23 16:22:14 2023
 69.48% done, estimate finish Mon Oct 23 16:22:14 2023
 74.45% done, estimate finish Mon Oct 23 16:22:14 2023
 79.41% done, estimate finish Mon Oct 23 16:22:14 2023
 84.38% done, estimate finish Mon Oct 23 16:22:14 2023
 89.33% done, estimate finish Mon Oct 23 16:22:14 2023
 94.30% done, estimate finish Mon Oct 23 16:22:14 2023
 99.26% done, estimate finish Mon Oct 23 16:22:15 2023
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 229376
Path table size(bytes): 1646
Max brk space used 92000
100751 extents written (196 MB)
/home/mble/Downloads/LibVF.IO-master/scripts/funcs-libvfio.sh: line 454: arcd: command not found
[sudo] password for mble:
sudo: timed out reading password
sudo: a password is required
[sudo] password for mble:
gfx_vendor NVIDIA detected.
Installing Nvidia.
MAJOR: 6
MINOR: 5
Checking for optional drivers.
/home/mble/Downloads/LibVF.IO-master/scripts/funcs-libvfio.sh: line 461: [: too many arguments
Optional drivers found.
optional driver version:  535
Installing GVM.
Would you like to install GPU Virtual Machine (GVM) user components?
(y/n)?y
Cloning into 'GVM-user'...
remote: Enumerating objects: 972, done.
remote: Counting objects: 100% (972/972), done.
remote: Compressing objects: 100% (486/486), done.
remote: Total 972 (delta 461), reused 945 (delta 436), pack-reused 0
Receiving objects: 100% (972/972), 1.89 MiB | 1.03 MiB/s, done.
Resolving deltas: 100% (461/461), done.
[CC] compiling src/lib/gpu/nvidia/device.c
[CC] compiling src/lib/gpu/nvidia/manager.c
[CC] compiling src/lib/gpu/nvidia/resman/api.c
[CC] compiling src/lib/gvm/nvidia/manager.c
[CC] compiling src/lib/utils/configs.c
[CC] compiling src/lib/utils/device.c
[CC] compiling extern/src/cargs.c
[CC] compiling extern/src/toml.c
Made GVM User Suite (lib) version: 0.1.0.0
Made all executables
make[1]: Entering directory '/home/mble/Downloads/LibVF.IO-master/GVM-user'
[CXX] compiling src/exe/gvm-cli.cpp
[LD] Linking gvm-cli
[CXX] compiling src/exe/gvm-mgr.cpp
[LD] Linking gvm-mgr
make[1]: Leaving directory '/home/mble/Downloads/LibVF.IO-master/GVM-user'
Made GVM User Suite (lib) version: 0.1.0.0
[CXX] compiling tests/device.cpp
[LD] Linking test-device
[CXX] compiling tests/nvidia-api.cpp
[LD] Linking test-nvidia-api
[CXX] compiling tests/nvidia-manager.cpp
[LD] Linking test-nvidia-manager
Made all tests
Graphics vendor:  NVIDIA
Running vendor specific setup for Nvidia.
Disabling proprietary blobs.
Failed to disable unit: Unit file nvidia-vgpud.service does not exist.
Failed to stop nvidia-vgpud.service: Unit nvidia-vgpud.service not loaded.
SKU:  TU106
Installing  TU106  Turing architecture configuration in GVM.
You can make configuration changes to GVM in /etc/gvm/
Creating mdev-post systemd service.
Install of LibVF.IO has been finalized!
Reboot now to enroll MOK.

Issues following guide - can't start VM

Hi, I'm testing this out (love the project!) and I'm having issues following the guide's steps after installation.

I can create my initial VM using arcd create /home/bozz/libvfio/vm/nvidia-mdev.yaml /home/bozz/libvfio/iso/Win10_21H1_English_x64.iso 400. After Windows is installed, I shut down the VM (I've tried both shutting it down directly from inside and via arcd stop $UUID). Then I run arcd start /home/bozz/libvfio/vm/nvidia-mdev.yaml --preinstall --save, but nothing happens.

bozz@Snek:~/libvfio$ arcd ps
+--------------------------------------+-------+-------------+--------+---------+--------------------------------+--------+-----------+
| UUID                                 | PID   | Kernel      | States | GPU/NET | Ports                          | S/C/T  | RAM Alloc |
+--------------------------------------+-------+-------------+--------+---------+--------------------------------+--------+-----------+
| 2b698a0b-e72a-46b0-be17-3c96ae01e6fa | 14160 | windows.arc |        | 0/0     | @[(guest: 22, host: 2222)](+0) | 1/12/1 | 49152 MiB |
| 598df73f-f97c-44ba-b198-df69efa25008 | 13380 |             |        | 0/0     | @[(guest: 22, host: 2222)](+0) | 1/12/1 | 49152 MiB |
---------------------------------------+-------+-------------+--------+---------+--------------------------------+--------+------------

I poked around ~/.local/libvf.io/ and noticed the following:

  • The kernel file for 2b698a0b-e72a-46b0-be17-3c96ae01e6fa is in ./live/, though I'd assume it would be in ./kernel/ after stopping the VM.
  • There's not much going on in the logs... the QEMU logs were empty and the ARCD logs didn't have useful information.
  • The lock file for the apparently failed VMs are still there even though the VM didn't run.
  • I checked on mdevctl and I noticed each new execution defined a new device instead of re-using the one from the base implementation. I assume that's not correct, since mdevctl seems to only be able to allocate one device.
  • Running the QEMU command directly failed with a no such file or directory for the new VM's live kernel file.

Looks to me like copying the kernel files is not quite working, but I don't want to jump to conclusions since I'm not very familiar with the project.

I was able to get the --preinstall --save step to work by grabbing the QEMU command from the console and replacing the UUIDs with the original VM and the vGPU, but it doesn't seem right, since it seems the idea would be to copy the kernel (which seems it's not happening) and re-create a vGPU (which might also not be working, since the original one wasn't destroyed and mdevctl reports 0 available GPUs of any type).

I'm still wrapping my head around QEMU, MDEV and your code so I'm not sure what to look for here, so I'd really appreciate the help. I'm more than happy to provide you with more details and try stuff as well.

BTW, any way I can enable additional logging/debugging on arcd? I didn't see an option for it while looking around in the code.

3070 Ti available on developer branch?

I have a 3070 Ti (Nvidia) on my pc and I want to set up LibVF.IO for a collage project but I know it's not supported, YET. I see that they are in development for making 30** work but I don't know if that means I can download the devel branch and it would "work". Is that technically what I can do or do I have to wait (because I need to get it working for the school protect but I only have so much money left in my funding for my capstone)?

EDIT: I would like to add I'm using fedora 37

minor script detail

sudo su root -c "echo 'f /dev/shm/kvmfr-* 0660 user kvm -' >> /etc/tmpfiles.d/10-looking-glass.conf"

This part of the script is incorrect, the term user is meant to be replaced by the actual user name. Checked this from arch wiki from which I presume this function is inspired from. Maybe add a script to query the user name and add this to the command before running.

Questions about intel SRV-IO / intel XE graphics

Hello,

I'm really interested in LibVF.IO. I have read all the documentation, and before i dive in, i have a few questions if you don't mind.

I'm running Debian Bookworm on a nuc 12th gen, with a 12t gen alder lake iris XE igpu.
this GPU is listed on https://open-iov.org/index.php/GPU_Support as being supported by LibVF.IO

when i read further in the docs i stumble upon this part:

Intel i915 Driver

Instructions on the installation of Intel's bleeding edge virtualization drivers can be found here for use with 6th to 9th generation silicon (GVT-g).

SR-IOV APIs on 11th & 12th generation Intel Xe graphics has not yet been documented in the i915 driver API making support more difficult. Source code for i915 SR-IOV is available here. If you would like to engage with Intel's GPU driver developers you can join the Intel-GFX mailing list here.

This makes me doubt. Is there anything i should take into consideration using LibVF.IO with a 12th gen iris XE?
or, would this mean that it's partially supported or something? :)

Also,

at this moment, i'm using gpu passthrough to docker containers for hardware transcoding.
for that, i passthrough /dev/dri:/dev/dri to a few containers.

Will this still work, would i be using LibVF.IO ? or do i lose this ability?

and one last question:

do i get 'real' virtual graphical cards?
Do i need to provide 'hacks' inside the guest VM's in order to make this operate?
i see i need to install a vm with arcd /path/to/yaml/ path/to/iso 100

can't i just pass a GPU through to a KVM VM ? or would that not work ?

Debian bookwrom support

Tried following setup guide on clean installation of Debian 12 Bookworm RC 1 and did not go as planned. I manage to start VM but display driver seams to not work.

First think I needed to change was to remove qemu package from apt install cause its no longer available in newer sources but since its dummy package I do not think it causes any problems (but its needs to be done other wise installation of other packages also fails)

Then first step went as expected after restart got small res screen. Starting again got prompts as mentioned in guide (plus telemetry prompt from choosonim) but after restarting display was still in small res (and could not be changed). Creating vm works but do not shows nvidia graphic device in windows Device Manager.

Are there any additional requirements from host to make it work?
If you think it can help I can re run those steps to get full logs from installation.

Hardware:
Intel i9-9900K
Nvidia Gefroce RTX 2080

So I'm receiving this error, i'm using the archinstaller

nvidia-installer log file '/var/log/nvidia-installer.log'
creation time: Fri Dec 3 13:54:42 2021
installer version: 460.73.01

PATH: /home/me/.nimble/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

nvidia-installer command line:
./nvidia-installer
--module-signing-secret-key=/home/me/.ssh/module-private.key
--module-signing-public-key=/home/me/.ssh/module-public.key
-q

Unable to load: nvidia-installer ncurses v6 user interface

Unable to load: nvidia-installer ncurses user interface

Using: nvidia-installer ncurses v6 user interface (widechar)
-> Detected 6 CPUs online; setting concurrency level to 6.
ERROR: An NVIDIA kernel module 'nvidia-drm' appears to already be loaded in your kernel. This may be because it is in use (for example, by an X server, a CUDA program, or the NVIDIA Persistence Daemon), but this may also happen if your >

Creating a new VM Fails - Ubuntu 20.04.3

Hi. I'm trying to install install a Windows 10 VM using libvf.io and I'm following the instructions from here. This is the inxi output of the machine . I was successfully able to complete till Step 5.2, but when I try to create a new VM as in 5.3.1 with the arcd create command, it does nothing.

Here is what I see in the ~/.local/libvf.io/logs/arcd logs.

[2021-10-29 15:56:13] - INFO: NOTE: If we ask for a password it is your sudo password,
[2021-10-29 15:56:13] - INFO:       we currently assume you use sudo and not doas or somthing
[2021-10-29 15:56:13] - INFO:       else.
[2021-10-29 15:56:18] - INFO: Executing: cd /home/whatever
[2021-10-29 15:56:13] - INFO: NOTE: If we ask for a password it is your sudo password,
[2021-10-29 15:56:13] - INFO:       we currently assume you use sudo and not doas or somthing
[2021-10-29 15:56:13] - INFO:       else.
[2021-10-29 15:56:18] - INFO: Executing: cd /home/whatever
[2021-10-29 15:56:18] - INFO: Executing: /bin/qemu-system-x86_64 -D /home/whatever/.local/libvf.io/logs/qemu/f8d2df1d-aa5d-4607-875e-201405e0583e-session.txt -no-hpet -uuid f8d2df1d-aa5d-4607-875e-201405e0583e -machine pc-q35-4.2,accel=kvm,usb=off,vmport=off,dump-guest-core=off -cpu host,ss=on,vmx=on,pcid=on,hypervisor=on,arat=on,tsc-adjust=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaveopt=on,pdpe1gb=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,hv-vapic,hv-spinlocks=0x1fff,hv-vendor-id=1234567890ab,kvm=off,topoext=on -rtc clock=host,base=localtime -m 8192 -smp cores=4,threads=1,sockets=1 -hda /home/whatever/.local/libvf.io/live/f8d2df1d-aa5d-4607-875e-201405e0583e --enable-kvm -device vfio-pci,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/6bf0d5eb-6e94-4612-a781-1b8c23a6e539,display=off -device rtl8139,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2222-:22 -qmp unix:/tmp/sockets/f8d2df1d-aa5d-4607-875e-201405e0583e/main.sock,server,nowait -qmp unix:/tmp/sockets/f8d2df1d-aa5d-4607-875e-201405e0583e/master.sock,server,nowait -cdrom Win10_21H1_English_x64.iso '-set' device.hostdev0.x-pci-device-id=6960 &
[2021-10-29 16:00:31] - INFO: sudo: unable to read password: Input/output error
[2021-10-29 16:00:31] - INFO: 
[2021-10-29 16:00:31] - INFO: 
[2021-10-29 16:00:32] - INFO: 
[2021-10-29 16:00:32] - INFO: 
[2021-10-29 16:00:32] - INFO: 
[2021-10-29 16:00:33] - INFO: 
[2021-10-29 16:00:33] - INFO: 
[2021-10-29 16:00:33] - INFO:

and the blank infos continue for ever. Not sure what the issue is. The yaml file is nothing special again, with just edits to tweak vRam settings for the VM. Can someone please help me on resolving this issue?

Can't get LibVF to pick up after reboot

I'm using fedora 37 and when I install LibVF I reboot and then the script does NOT pickup where I left off. It starts the process all over again. I have no clue what I'm doing wrong and I've tried fixing it for days. Can anyone help? I'm puting a pastbin of the output below.

https://pastebin.com/BaeC1jUv

Any help is nice so thank you in advance.

Include summary about what is supported and how well right from the README.

One of the first questions people will wonder is if it will work with their hardware/software configuration.

Having been bitten by AMD promising GPU IOV being widely supported, i'd probably rate the current support for that as "sad" or very sad !

At the moment this whole thing is a bit of a dark art, and next time I choose HW, I'd like it to be some that works with LibVF.IO, it would be great if I could easily get right from the project page to a place showing current support.

(And once this all kicks off, there is the very very dim hope we can shame AMD into some action themselves).

What API does it support in windows Virtual machine?

just take GPU-Z for example
if I passthrough RTX 2060 to a windows virtual machine
gpu-z will show that it supports
image
all the features are available

if I use LibVF.IO
will the features all be supported in windows VM ?
many games need direcx12, pytorch need CUDA, and some other applications need OpenCL, OpenGL and so on.
I have used Vmware Workstation in linux, and the windows guest only supports direcx11, other API support is also very bad.
(I will not pay even a cent to Nvidia grid license

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.