XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Set passthrough GPU as a primary graphics card for a VM

    Scheduled Pinned Locked Moved Compute
    17 Posts 5 Posters 887 Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K Offline
      kubuntu-newbie @miltador
      last edited by

      @miltador

      I was able to get it working with kubuntu from 22.04 through 25.10, running X11 plasma session just by passing through PCI and running "nvidia-xconfig --enable-all-gpus --separate-x-screens to create xorg.conf" in the VM.

      It used to work with Wayland as well on XCP-ng 8.2 and kubuntu 22.04 without any modifications to the VM (just had to create xorg.conf so SDDM would use correct display)

      now Wayland tries to use 1234:1111 (that's how virtual GPU is showing up in the VM when vga=on ) or "Cirrus" 1013:00b8 (when vga is disabled), I'm still trying to figure out how to tell Wayland to use nvidia

      I'm using Nvidia A4000, no iGPU

      1 Reply Last reply Reply Quote 0
      • A Offline
        acebmxer
        last edited by

        I was able to get nvidia rtx 4070 passed through to a windows VM and Ubuntu server. Need to make sure you passing all the devices associated with the GPU, specifically the Audio controller on the GPU.

        These were on AMD systems.

        K 1 Reply Last reply Reply Quote 0
        • M Offline
          miltador
          last edited by

          Good to see some successes here, no luck for me with Intel N100 iGPU though 😕
          Both Linux and Windows.

          1 Reply Last reply Reply Quote 0
          • K Offline
            kubuntu-newbie @acebmxer
            last edited by

            @acebmxer in my case it appears to be a Wayland issue, using the wrong card. I was hoping that I could disable virtual gpu all together

            curious though that disabling virtual GPU just changes the device id in the vm from 1234:1111 to "cirrus" - that seems to be a bug in XCP-ng

            A 1 Reply Last reply Reply Quote 0
            • A Offline
              acebmxer @kubuntu-newbie
              last edited by

              @kubuntu-newbie

              Yeah i didnt do anything with disabling the vgpu. Just a standard Win 11 or ubuntu VM and attached the nivdia gpu.

              1 Reply Last reply Reply Quote 0
              • olivierlambertO Offline
                olivierlambert Vates 🪐 Co-Founder CEO
                last edited by

                IIRC, Intel iGPU is very different than a discrete GPU from a system perspective, that might explain your problem.

                K 2 Replies Last reply Reply Quote 0
                • K Offline
                  kubuntu-newbie @olivierlambert
                  last edited by

                  @olivierlambert
                  it is still not clear to me how changing vga: std to vga: cirrus in platform parameter of a vm constitute turning off vga (this is what happens when you turn off vga in Xen Orchestra)

                  manually setting vga to off in platform produces the same result as vga: cirrus, VM still sees "VGA compatible controller [0300]: Cirrus Logic GD 5446 [1013:00b8]"

                  is there a way to completely turn off creating this virtual VGA in the VM?

                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    kubuntu-newbie @olivierlambert
                    last edited by

                    @olivierlambert

                    and removing key vga from platform all together has the same result as switching to cirrus, there is still a virtual vga Cirrus Logic in the VM

                    1 Reply Last reply Reply Quote 0
                    • olivierlambertO Offline
                      olivierlambert Vates 🪐 Co-Founder CEO
                      last edited by

                      Because it's the default you cannot bypass. @Team-XAPI-Network could confirm

                      K 1 Reply Last reply Reply Quote 0
                      • K Offline
                        kubuntu-newbie @olivierlambert
                        last edited by

                        @olivierlambert

                        thank you! I did a little digging, but I could be looking at the wrong place, according to:

                        https://github.com/xcp-ng/qemu-dp/blob/master/qemu-options.hx

                        there is an option vga: none

                        DEF("vga", HAS_ARG, QEMU_OPTION_vga,
                        "-vga [std|cirrus|vmware|qxl|xenfb|tcx|cg3|virtio|none]\n"
                        " select video card type\n", QEMU_ARCH_ALL)
                        SRST
                        -vga type
                        ...
                        none
                        Disable VGA card.

                        I tried setting this manually via "xe vm-param-set platform:vga=none " and I still get Cirrus PCI device created in the VM

                        Is there something else that needs to be done to have no virtual VGA in the VM at all?

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post