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

    Intel iGPU passthough

    Scheduled Pinned Locked Moved Hardware
    45 Posts 13 Posters 20.1k Views 14 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.
    • 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
                      • T Offline
                        the_spice
                        last edited by

                        I am in the same situation as @vhaelan.
                        same as in same iGPU (alderlake) passed-through, same output for those latest commands, same OS (Fedora CoreOS on latest Xcp-Ng stable).
                        Tried current avenues suggested in this thread with no progress.

                        It seems vhaelan has settled with CoreOS under Proxmox (which works!). He also mentioned it works in Debian under XCP-ng, though I haven't tested that myself.

                        I would appreciate additional suggestions for troubleshooting to take this further, in case anyone has any other ideas.

                        1 Reply Last reply Reply Quote 0

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        • First post
                          Last post