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

    Intel iGPU passthough

    Scheduled Pinned Locked Moved Hardware
    44 Posts 12 Posters 17.9k Views 13 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.
    • C Offline
      CJ
      last edited by

      @bullerwins @xerxist @flakpyro

      What are you using for display output on the host since you're passing the iGPU to the VM?

      F X 2 Replies Last reply Reply Quote 0
      • F Offline
        flakpyro @CJ
        last edited by

        @CJ Im running server grade hardware that has remote lights out management with iKVM support. Otherwise yeah you would lose access to the display output.

        1 Reply Last reply Reply Quote 0
        • X Offline
          xerxist @CJ
          last edited by

          @CJ

          No output just need the Intel quick sync.

          C 1 Reply Last reply Reply Quote 0
          • C Offline
            CJ @xerxist
            last edited by

            @xerxist Yes, QS for the VM but there are times when having a local display of the console comes in handy. That's why I haven't done mine.

            1 Reply Last reply Reply Quote 0
            • MefosheezM Offline
              Mefosheez @bullerwins
              last edited by

              This post is deleted!
              1 Reply Last reply Reply Quote 0
              • MefosheezM Offline
                Mefosheez @bullerwins
                last edited by

                @bullerwins said in Intel iGPU passthough:

                @olivierlambert I tried but getting this error when turning on the VM

                INTERNAL_ERROR(xenopsd internal error: (Failure
                "Error from xenguesthelper: Populate on Demand and PCI Passthrough are mutually exclusive"))

                Not sure what it means

                EDIT: after googleing it seems that static and dynamic memory has to be the same:
                9aa61d84-dd71-4f32-9590-8cff8c365a1a-image.png

                @bullerwins thanks for this. I had to restore a VM from a backup and while it was down changed the dynamic value. This certainly saved me some time. I was positive it had to do with remapping the UID on the VM or something on the host side of it. anyways, thanks.

                1 Reply Last reply Reply Quote 0
                • gskgerG gskger referenced this topic on
                • S Offline
                  scawtydont
                  last edited by

                  I followed this post and it worked for me.
                  One thing to note in my testing, if I had a monitor / HDMI dummy plug hooked up the transcoding worked reliably.
                  When I unplugged it I found activity would be present on the iGPU but the video in plex would play/pause constantly then eventually stop.

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

                    @scawtydont Thanks for keeping us posted. Dummy plug is still a thing it seems 😄

                    1 Reply Last reply Reply Quote 0
                    • V Offline
                      vhaelan
                      last edited by vhaelan

                      I'm also trying to pass through my Intel iGPU to a VM, but running into issues. It does work on Debian, however not on Fedora Server which I'd like to use. I have tried changing to BIOS mode, even plugged in a dummy HDMI plug, but nothing helped. SELinux is disabled on Fedora to rule out any issues related to that. I even tried using XCP-NG Center which was suggested in an older post, but that didn't help either: https://xcp-ng.org/forum/topic/6211/intel-gpu-passthrough-question/3

                      I also posted this on the Fedora forum with further details: https://discussion.fedoraproject.org/t/intel-igpu-in-containers/176029

                      Are there any other things I could try to investigate this further?

                      O 1 Reply Last reply Reply Quote 0
                      • O Offline
                        ovicz @vhaelan
                        last edited by

                        @vhaelan Hello. What's the output of rpm -qa | grep intel-gpu-firmware ?

                        V 1 Reply Last reply Reply Quote 0
                        • V Offline
                          vhaelan @ovicz
                          last edited by

                          @ovicz said in Intel iGPU passthough:

                          rpm -qa | grep intel-gpu-firmware

                          Hello @ovicz, I see the following: intel-gpu-firmware-20251021-1.fc43.noarch

                          O 1 Reply Last reply Reply Quote 0
                          • O Offline
                            ovicz @vhaelan
                            last edited by ovicz

                            @vhaelan Is the intel graphics module loaded ?

                            lsmod | grep i915
                            i915 5373952 24
                            drm_buddy 32768 2 xe,i915
                            ttm 135168 3 drm_ttm_helper,xe,i915
                            i2c_algo_bit 20480 2 xe,i915
                            drm_display_helper 331776 2 xe,i915
                            cec 106496 3 drm_display_helper,xe,i915
                            video 81920 2 xe,i91

                            sudo dmesg | grep i915
                            [ 5.855595] i915 0000:00:08.0: [drm] Found alderlake_p/alderlake_n (device ID 46d1) integrated display version 13.00 stepping D0
                            [ 5.858477] i915 0000:00:08.0: [drm] VT-d active for gfx access
                            [ 5.858739] i915 0000:00:08.0: [drm] Using Transparent Hugepages
                            [ 5.859307] i915 0000:00:08.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x4556
                            [ 5.859312] i915 0000:00:08.0: [drm] Failed to find VBIOS tables (VBT)
                            [ 5.860012] i915 0000:00:08.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=io+mem
                            [ 5.878556] i915 0000:00:08.0: [drm] Finished loading DMC firmware i915/adlp_dmc.bin (v2.20)
                            [ 7.806109] i915 0000:00:08.0: [drm] [ENCODER:204:DDI A/PHY A] failed to retrieve link info, disabling eDP
                            [ 7.843768] i915 0000:00:08.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.49.4
                            [ 7.843776] i915 0000:00:08.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
                            [ 7.849282] i915 0000:00:08.0: [drm] GT0: HuC: authenticated for all workloads
                            [ 7.850868] i915 0000:00:08.0: [drm] GT0: GUC: submission enabled
                            [ 7.850874] i915 0000:00:08.0: [drm] GT0: GUC: SLPC enabled
                            [ 7.851225] i915 0000:00:08.0: [drm] GT0: GUC: RC enabled
                            [ 7.852797] i915 0000:00:08.0: [drm] Protected Xe Path (PXP) protected content support initialized
                            [ 7.854314] i915 0000:00:08.0: [drm] Registered 3 planes with drm panic
                            [ 7.854318] [drm] Initialized i915 1.6.0 for 0000:00:08.0 on minor 1

                            Also see in /etc/default/grub if there is NOMODESET in GRUB_CMDLINE_LINUX line.

                            That's from my Fedora 43 vm with passthrough enabled.

                            V 1 Reply Last reply Reply Quote 0
                            • V Offline
                              vhaelan @ovicz
                              last edited by

                              @ovicz Yes, it's loaded

                              lsmod | grep i915
                              i915                 5373952  0
                              i2c_algo_bit           20480  2 xe,i915
                              drm_buddy              32768  2 xe,i915
                              video                  81920  2 xe,i915
                              ttm                   135168  3 drm_ttm_helper,xe,i915
                              drm_display_helper    331776  2 xe,i915
                              cec                   106496  3 drm_display_helper,xe,i915
                              

                              dmesg starts the same as your output, the only difference is that I have GuC disabled.

                              dmesg | grep i915
                              [    1.609000] i915 0000:00:08.0: [drm] Found alderlake_s (device ID 4690) integrated display version 12.00 stepping C0
                              [    1.609986] i915 0000:00:08.0: [drm] VT-d active for gfx access
                              [    1.610073] i915 0000:00:08.0: [drm] Using Transparent Hugepages
                              [    1.611342] i915 0000:00:08.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0x4556
                              [    1.611345] i915 0000:00:08.0: [drm] Failed to find VBIOS tables (VBT)
                              [    1.612136] i915 0000:00:08.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=io+mem
                              [    1.614455] i915 0000:00:08.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1)
                              [    3.583673] i915 0000:00:08.0: [drm] [ENCODER:261:DDI A/PHY A] failed to retrieve link info, disabling eDP
                              [    3.605422] i915 0000:00:08.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.49.4
                              [    3.605426] i915 0000:00:08.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
                              [    3.615402] i915 0000:00:08.0: [drm] GT0: HuC: authenticated for all workloads
                              [    3.615410] i915 0000:00:08.0: [drm] GT0: GUC: submission disabled
                              [    3.615414] i915 0000:00:08.0: [drm] GT0: GUC: SLPC disabled
                              [    3.616508] i915 0000:00:08.0: [drm] Protected Xe Path (PXP) protected content support initialized
                              [    3.617330] i915 0000:00:08.0: [drm] Registered 4 planes with drm panic
                              [    3.617354] [drm] Initialized i915 1.6.0 for 0000:00:08.0 on minor 1
                              [    3.627390] i915 0000:00:08.0: [drm] Cannot find any crtc or sizes
                              [    3.637349] i915 0000:00:08.0: [drm] Cannot find any crtc or sizes
                              [    3.657358] i915 0000:00:08.0: [drm] Cannot find any crtc or sizes
                              

                              Having edited /etc/modprobe.d/i915.conf by adding options i915 enable_guc=3 enable_huc=1 fixed the GuC part as well, however I still have the same issue. Cannot find any crtc or sizes is the only part which is not in your output.

                              /etc/default/grub is clean, I don't have NOMODESET:

                              cat /etc/default/grub
                              GRUB_TIMEOUT=5
                              GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
                              GRUB_DEFAULT=saved
                              GRUB_DISABLE_SUBMENU=true
                              GRUB_TERMINAL_OUTPUT="console"
                              GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/root rhgb quiet"
                              GRUB_DISABLE_RECOVERY="true"
                              
                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post