GPU-Passthrough mit mdev/nvidia-dkms schlägt fehl

nexusband

Member
Jan 27, 2020
14
0
6
35
Moin,

bin gerade etwas ratlos, hatte mich an diese Anleitung gehalten: https://wvthoog.nl/proxmox-7-vgpu-v2/#Mdevctl
Das hatte soweit auch ganz gut funktioniert, bis die mdev zuordnungen (scheinbar) nicht mehr gepasst haben.
Bash:
kvm: -device vfio-pci,sysfsdev=/sys/bus/mdev/devices/d63d8840-b4b7-11ec-ac67-0f6318ffaaaa: vfio /sys/bus/mdev/devices/d63d8840-b4b7-11ec-ac67-0f6318ffaaaa: no such host device: No such file or directory
Ich konnte im Interface entsprechend das mdev auswählen, dort stand auch bei Verfügbarkeit eine "1" - der Fehler blieb.

Hatte dann versucht neue UUIDs festzulegen und den Schritt aus der Anleitung noch mal durch zu gehen - hat aber nur weiter zum gleichen Fehler geführt.

Dann hab ich den Treiber deinstalliert, neu gestartet und während dessen ist wohl ein Update auf Kernel 5.15.53-3 passiert.

Nach dem Neustart hab ich nun versucht den Treiber erneut zu installieren, allerdings schlägt das jetzt fehl.

Bash:
Error! Bad return status for module build on kernel: 5.15.35-1-pve (x86_64)
Consult /var/lib/dkms/nvidia/510.47.03/build/make.log for more information.
dpkg: error processing package nvidia-vgpu-ubuntu-510 (--configure):
 installed nvidia-vgpu-ubuntu-510 package post-installation script subprocess returned error exit status 10

Bash:
/var/lib/dkms/nvidia/510.47.03/build/nvidia/nv-mmap.c: In function ‘nv_encode_caching’:
/var/lib/dkms/nvidia/510.47.03/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.47.03/build/nvidia/nv-mmap.c:346:9: note: here
  346 |         default:
      |         ^~~~~~~
/var/lib/dkms/nvidia/510.47.03/build/nvidia/nv-dma.c:986: warning: "IMPORT_SGT_STUBS_NEEDED" redefined
  986 | #define IMPORT_SGT_STUBS_NEEDED 0
      |
/var/lib/dkms/nvidia/510.47.03/build/nvidia/nv-dma.c:980: note: this is the location of the previous definition
  980 | #define IMPORT_SGT_STUBS_NEEDED 1
      |
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/nvidia-vgpu-vfio.c:207:6: error: ‘struct mdev_parent_ops’ has no member named ‘open’
  207 |     .open             = nv_vgpu_vfio_open,
      |      ^~~~
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/nvidia-vgpu-vfio.c:207:25: error: initialization of ‘long int (*)(struct mdev_device *, unsigned int,  long unsigned int)’ from incompatible pointer type ‘int (*)(struct mdev_device *)’ [-Werror=incompatible-pointer-types]
  207 |     .open             = nv_vgpu_vfio_open,
      |                         ^~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/nvidia-vgpu-vfio.c:207:25: note: (near initialization for ‘vgpu_fops.ioctl’)
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/nvidia-vgpu-vfio.c:208:6: error: ‘struct mdev_parent_ops’ has no member named ‘release’
  208 |     .release          = nv_vgpu_vfio_close,
      |      ^~~~~~~
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/nvidia-vgpu-vfio.c:208:25: error: initialization of ‘int (*)(struct mdev_device *, struct vm_area_struct *)’ from incompatible pointer type ‘void (*)(struct mdev_device *)’ [-Werror=incompatible-pointer-types]
  208 |     .release          = nv_vgpu_vfio_close,
      |                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/nvidia-vgpu-vfio.c:208:25: note: (near initialization for ‘vgpu_fops.mmap’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:285: /var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/nvidia-vgpu-vfio.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/vgpu-devices.c: In function ‘nv_vfio_vgpu_get_attach_device’:
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/vgpu-devices.c:729:1: warning: the frame size of 1040 bytes is larger than 1024 bytes [-Wframe-larger-than=]
  729 | }
      | ^
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/vgpu-devices.c: In function ‘nv_vgpu_dev_ioctl’:
/var/lib/dkms/nvidia/510.47.03/build/nvidia-vgpu-vfio/vgpu-devices.c:356:1: warning: the frame size of 1120 bytes is larger than 1024 bytes [-Wframe-larger-than=]
  356 | }
      | ^
make[1]: *** [Makefile:1875: /var/lib/dkms/nvidia/510.47.03/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.35-1-pve'

Ich bin gerade etwas Ratlos, wie ich hier weiter vorgehen kann.

Hat jemand zufällig einen Tipp für mich? Oder sogar eine Lösung?

Grüße...

Edit:
Bin nun etwas weiter gekommen. Habe diese Anleitung genutzt: https://gitlab.com/polloloco/vgpu-5.15

Das hat tatsächlich auch wieder soweit geklappt, dass die mdevs angezeigt werden (für alle bei denen
Bash:
cd /sys/class/mdev_bus
leer ist bzw. die Meldung "no such file or directory" bekommen,
Bash:
/usr/lib/nvidia/sriov-manage -e *DEVICEID*
nicht vergessen!)

Nun ist es aber so, dass ich beim Startversuch der Maschine wieder am Anfang bin und diese Meldung präsentiert bekomme:
Bash:
kvm: -device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:c1:00.6/00000000-0000-0000-0000-000000000102,id=hostpci0,bus=ich9-pcie-port-1,addr=0x0: vfio 00000000-0000-0000-0000-000000000102: failed to setup container for group 60: Failed to set iommu for container: Invalid argument

https://forum.proxmox.com/threads/gpu-passthrough-operation-not-permitted-error.87522/
SyntaxError hat leider seine Lösung nicht mit in den Thread geschrieben (oder ich finde sie nicht), jedenfalls sind die unsafe interrupts schon gesetzt.

Bin also weiterhin ratlos und für hilfe dankbar...
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!