This is totaly new. No thx
My goal is now buy a new gpu (2080ti)
Install ubuntu 20/10
Install kvm
Configure a VM with gpu pathtrough
Spoof it as RTX6000 or 8000 <--- this point is very importand for me.
I find a cool video there everything explained how to install it on ubuntu.
https://youtu.be/ID3dlVHDl0c
Only thing is can't find videos for spoofing gpus.
You can use the VFIO PCI spoof arguments that I posted earlier. It works flawlessly.
Perfect thxxxx
Last questen is there any "error 43" problems with amd radeon cards?
PS Status : Sold my 2 GTX1070 now looking for 2080ti on Ebay 🤪
"but they will disable some features if you are not using Radeon FirePro"
what are these?
PS: My 2080ti (MSI Trio) is on the way to me
"but they will disable some features if you are not using Radeon FirePro"
what are these?
PS: My 2080ti (MSI Trio) is on the way to me
What I am saying is that Nvidia disables GeForce driver on VM, but AMD does not. Instead, AMD disables a couple features according to the forums, but the GPU should still work. That only happens if you are using AMD gaming GPU without setting your KVM model to "host." If you are spoofing the GPU, you should be fine either way.
"but they will disable some features if you are not using Radeon FirePro"
what are these?
PS: My 2080ti (MSI Trio) is on the way to me
What I am saying is that Nvidia disables GeForce driver on VM, but AMD does not. Instead, AMD disables a couple features according to the forums, but the GPU should still work. That only happens if you are using AMD gaming GPU without setting your KVM model to "host." If you are spoofing the GPU, you should be fine either way.
Understand, same way spoof it as "FirePro" with vbios.... and some vfio configs
"but they will disable some features if you are not using Radeon FirePro"
what are these?
PS: My 2080ti (MSI Trio) is on the way to me
What I am saying is that Nvidia disables GeForce driver on VM, but AMD does not. Instead, AMD disables a couple features according to the forums, but the GPU should still work. That only happens if you are using AMD gaming GPU without setting your KVM model to "host." If you are spoofing the GPU, you should be fine either way.
Understand, same way spoof it as "FirePro" with vbios.... and some vfio configs
Actually, if all you want to do is spoof PCI ID, you dont need to flash vBIOS. Solidworks only checks for PCI ID, and no program or driver really cares about the vbios. All I had to do was spoof PCI ID and windows automatically loaded quadro driver and i got advanced functionality in solidworks.
I am interested in the solution of kvm and vgpu. Can anyone guide us which file should be patched?
I am working on nvidia-vgpu. It uses flexlm embedded and binary file (****64) format....so it should be doable
" args: -device 'vfio-pci,host=02:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,multifunction=on,romfile=NVP4000,x-pci-vendor-id=0x10de,x-pci-device-id=0x1BB1,x-pci-sub-vendor-id=0x10de,x-pci-sub-device-id=0x11A3' "
This is in a different format how can i konvert it to XML like?
Hi Krutav,
Now i am ready for KVM. i bought new hardware. But i have now 16 cores (Ryzen 3950x)
but only 1 GPU :/ and no money to buy a second GPU.
Is it possible to run fedora like yours with single GPU and run a vm with GPU passthrough Simultaneously?
EDIT: I find a solution for my single gpu problem... Everything is running. Ubuntu as OS and share its own GPU (yes passthrough) with his vm on Qemu. Look here https://youtu.be/eTX10QlFJ6c and next step. GPU SPOOFING
I am interested in the solution of kvm and vgpu. Can anyone guide us which file should be patched?
I am working on nvidia-vgpu. It uses flexlm embedded and binary file (****64) format....so it should be doable
Your PM box is full so I cant send you PM.
Have you worked on flexlm before?
I actually have all the vGPU drivers for standard Linux, ESXI, Xen, and Red Hat. (460 driver 1/19/2021) I am willing to share it with anyone here who is willing to find a solution to vGPU on consumer GPU. Note that spoofing PCI ID is not enough. You need to modify the way that nvidia driver determines if the GPU is capable of vGPU or not by tooling around with Linux. I recommend using RHEL which is free now.
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: notice: vmiop_env_log: (0x0): Received start call from nvidia-vgpu-vfio module: mdev uuid 38512783-4893-47f7-9179-b0594167e86b GPU PCI id 00:01:00.0 config params vgpu_type_id=50
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: notice: vmiop_env_log: (0x0): pluginconfig: vgpu_type_id=50
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: notice: vmiop_env_log: Successfully updated env symbols!
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: NVOS status 0x56
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: Assertion Failed at 0x42af43bf:293
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: 11 frames returned by backtrace
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: /lib/x86_64-linux-gnu/libnvidia-vgpu.so(_nv005021vgpu+0x18) [0x7f0c42b393c8]
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: /lib/x86_64-linux-gnu/libnvidia-vgpu.so(+0xa3e3b) [0x7f0c42aefe3b]
...
I actually have all the vGPU drivers for standard Linux, ESXI, Xen, and Red Hat. (460 driver 1/19/2021) I am willing to share it with anyone here who is willing to find a solution to vGPU on consumer GPU. Note that spoofing PCI ID is not enough. You need to modify the way that nvidia driver determines if the GPU is capable of vGPU or not by tooling around with Linux. I recommend using RHEL which is free now.
I gave that a shot a short while ago, the plan was to intercept all ioctl calls and "fix" the returned data to indicate vGPU support, but I didn't get far. The nvidia-vgpud service seem to only care abut the PCI device ID and changing that was pretty straight forward after some reverse engineering. The nvidia-vgpu-mgr service on the other hand gave me trouble. It seems that simply altering the values returned by the kernel module is not enough to get it working. I am assuming that the nvidia-vgpu-mgr expects some other side effect to take place in the kernel or GPU, but the kernel bails early due to the GPU being unsupported. In order to keep digging into this I will have to setup a kernel debugger which requires hardware that I do not have at the moment.
I have published the code here: https://github.com/DualCoder/vgpu_unlock if anyone wants to have a look.
Currently it crashes with a failed assertion:Code: [Select]Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: notice: vmiop_env_log: (0x0): Received start call from nvidia-vgpu-vfio module: mdev uuid 38512783-4893-47f7-9179-b0594167e86b GPU PCI id 00:01:00.0 config params vgpu_type_id=50
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: notice: vmiop_env_log: (0x0): pluginconfig: vgpu_type_id=50
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: notice: vmiop_env_log: Successfully updated env symbols!
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: NVOS status 0x56
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: Assertion Failed at 0x42af43bf:293
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: 11 frames returned by backtrace
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: /lib/x86_64-linux-gnu/libnvidia-vgpu.so(_nv005021vgpu+0x18) [0x7f0c42b393c8]
Jan 20 19:21:51 Debian-dom0 nvidia-vgpu-mgr[1429]: error: vmiop_log: /lib/x86_64-linux-gnu/libnvidia-vgpu.so(+0xa3e3b) [0x7f0c42aefe3b]
...
I should be able to continue my efforts in about a week or so. The fact that a couple of other users seemed to be able to do this fairly easily with userspace patches makes me think that I am taking the most complicated approach possible, but I don't really know any other way to approach a problem like this.
Welcome back Krutav,
today arrives my 2nd GPU and i can fire up .
I hope at evening i don with:
- Install proxmox
- create a vm with Windows 10 64bit
- working GPU passthrough (Nvidia@RTX2080ti)
- Spoof it as Quadro 4000 with RTX4000.rom (patched.vbios)
When everything goes well i write a point for point
every step tutorials for newbies. If not i hope you are tonight (gmt+1)
here and login@my-system ;-)
Best regards
Edit
11:15am GPU arrived
6:40pm: proxmox installed with externally usb@lan adapter my lan adapter (Realtek-r8125) didnt
work with px 6.3.1 failure from proxmox "network not found" i have no idea how i
install driver on proxmox no 'make' executable istalled thatswhy no ./autorun possible.
8:39pm: Ubuntu vm working passthrough.
9:40pm: Windows10 vm (24core24GBram2080ti) with full working passthrough (see picture)
00:55AM: GPU SPOOF as RTX4000 done (check picture)
BUT Solidworks dont open Antialiasing menu.
I am testing something i installed it bevor install quadro drivers on it maybe this is the fold. I am reinstalling it
I dont come to goal it identifys as /PCIe/SSE2 instead as "Nvidia RTX 4000" check picture
I dont come to goal it identifys as /PCIe/SSE2 instead as "Nvidia RTX 4000" check picture
So PCIE SSE2 is part of the SSE instruction set which these graphics cards rely on. If you have played Minecraft before, you will notice that it will say PCIE SSE2 next to the graphics card name because that is the instructions that the system needs to have in order to run the graphics card. This means that you can use the graphics card with CPUs made newer than 2001 that have the feature. So I don't quite see this as much of an issue, but it may be worth looking into.
(Attachment Link)I dont come to goal it identifys as /PCIe/SSE2 instead as "Nvidia RTX 4000" check picture
So PCIE SSE2 is part of the SSE instruction set which these graphics cards rely on. If you have played Minecraft before, you will notice that it will say PCIE SSE2 next to the graphics card name because that is the instructions that the system needs to have in order to run the graphics card. This means that you can use the graphics card with CPUs made newer than 2001 that have the feature. So I don't quite see this as much of an issue, but it may be worth looking into.
okey understand... i think solidworks take the info from registry... but i cant change the id windows.
tonight i run the nvidia quadro software i dont now how but i know now how i can gpu passthrough on my system.
have so much problems with iommu and vfio driver like this https://superuser.com/questions/1510581/vga-and-audio-assigned-to-vfio-but-not-usb-and-serial-controller-of-rtx-2080
"So what I recommend doing then is trying to find the correct registry values that determine if SOLIDWORKS can use AntiAliasing or not. If you cannot find it, I will continue the search for the solution!"
thats it. Hack the registry...
It never quite crossed me that so many people have issues with IOMMU PCIE passthrough. Since I use workstation/business grade used systems from few years ago, i haven't had a single issue with anything. All the graphics cards and everything passes through without a problem.
02d:00.2 USB controller [0c03]: NVIDIA Corporation Device [10de:1ad7] (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:3721]
Kernel driver in use: xhci_hcd
#!/bin/sh
PCI_HID="0000:2d:00.2"
echo -n "$PCI_HID" > /sys/bus/pci/drivers/xhci_hcd/unbind
echo -n "$PCI_HID" > /sys/bus/pci/drivers/vfio-pci/bind
PCI_HID="0000:2d:00.3"
echo -n "$PCI_HID" > /sys/bus/pci/drivers/nvidia-gpu/unbind
echo -n "$PCI_HID" > /sys/bus/pci/drivers/vfio-pci/bind
In which folder do I have to put it so that it starts automatically with the system?Some of the features like Quadro View Desktop Management is something that can only be used if the GPU is sure that it is a quadro
ECC as well, which is something missing on consumer cards but can cause applications like vGPU to not start if not configured, so that's another thing that needs to be worked on. I am thinking about using dynamic EEPROM that can change the vBIOS on command but that would likely crash the system so that one is off the list.
I also had no problems until I switched the USB port to the vm. The kernel-modul (xhci_hcd) catched the usb controller from rtx2080ti
In which folder do I have to put it so that it starts automatically with the system?
Yes it does but i find a method to start it and activate the window manager (you take it soon as pn that is maybe our unique change to hack it).
When you activate the window manager everthing looks different in the nvidia system manager.
No idea what you talking about
Do this in GRUB. When you bind the Nvidia USB controller to the PCI-Stub at boot, xhci-module will never load and the host wouldn't know it is there. I'll try to post a sample GRUB configuration later to show you how this can be done. But you likely will not need any script since this kind of thing mostly works out of the box.
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="quiet, amd_iommu=on, vfio-pci.ids=10de:1e07,10de:10f7,10de:1ad6,10de:1ad7"
GRUB_CMDLINE_LINUX=""
Do this in GRUB. When you bind the Nvidia USB controller to the PCI-Stub at boot, xhci-module will never load and the host wouldn't know it is there. I'll try to post a sample GRUB configuration later to show you how this can be done. But you likely will not need any script since this kind of thing mostly works out of the box.
How were you able to get this working? I haven't found any instructions for this yet on the internet so it would be really cool seeing how you pulled it off!
You can activate the Quadro Destop Manager with a Remote Deskop connection right click on desktop and open RTX Desktop Manager --> activate
in older quadro driver its called nView...
nope is not working. this is a bug in the kernel, in newer kernels is not a problem but this case (proxmox >>5.4 kernel<<) yes. Many people hava this problem. I have no idea how can i update the kernel.
One more thing... very intresing is when you use an older quadro driver Solidworks rendere say i have an "unknown board/PCIe/SSE2"
bevor it says (with newer quadro driver) "/PCIe/SSE2"
I have no idea why it says this, but at the same time, I don't necessarily see it as a problem. I would make sure that you first get all the GPU components passed through first, which includes usb, audio, gpu, I2C, etc. That way we can rule this out
nano crontab -e
@reboot /home/unbind.sh
STRG+O for save the file
STRG+X quit the document
nano /home/unbind.sh
#!/bin/sh
PCI_HID="0000:2d:00.2"
echo -n "$PCI_HID" > /sys/bus/pci/drivers/xhci_hcd/unbind
echo -n "$PCI_HID" > /sys/bus/pci/drivers/vfio-pci/bind
PCI_HID="0000:2d:00.3"
echo -n "$PCI_HID" > /sys/bus/pci/drivers/nvidia-gpu/unbind
echo -n "$PCI_HID" > /sys/bus/pci/drivers/vfio-pci/bind
chmod -x /home/unbind.sh
reboot
you can check it with lspci -v
scroll up and find the devices that may to unbind the driver....I turn it into a P4000 quadro without seeing any of this SSE2 stuff.
Computer\HKEY_CURRENT_USER\SOFTWARE\SolidWorks\SOLIDWORKS 2020\Performance\Graphics\Hardware\Current