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

    Intel iGPU passthough

    Scheduled Pinned Locked Moved Hardware
    44 Posts 12 Posters 17.3k 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 @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