[SOLVED] - NUC10 GPU Passthrough (PVE 6.3)

chrisj2020

Member
Jul 8, 2020
18
6
8
46
Hi folks,

I've one last niggle with my proxmox setup, and I'm hoping someone here can guide me to a solution. I have a cluster of 3 x NUC10 boxes, these are Frost Canyon CPUs with Intel UHD Graphics. I want to pass the Intel GPU down to one of my LXC containers. Proxmox is running the latest version, and the NUCs are up to date in terms of firmware.

From what I have read, Proxmox 6.3 includes Buster based Debian packages, which now supports these newer Intel GPUs. I've run the following on each NUC host:

Code:
apt-get install i965-va-driver
apt-get install vainfo

The result I get back is:
Code:
root@nuc10i7-pve03:/# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
vaInitialize failed with error code 1 (operation failed),exit
root@nuc10i7-pve03:/#

I know I've posted about this before, but this is my last remaining challenge in this current build. The kernel version looks to support this newer chipset, I can't get the necessary drivers loaded.

Can anyone help me?
 
From what I have read, Proxmox 6.3 includes Buster based Debian packages, which now supports these newer Intel GPUs. I've run the following on each NUC host:
Proxmox VE uses an Ubuntu Kernel.

If you don't intent to run graphic intense applications, then you don't need a GPU to run X11.
 
Hi @Alwin. I do intend to run graphics intensive applications (LXC). I need to process H.265 video streams which can be offloaded to the Intel GPU. I'm not running an X11 desktop, but I do need to be able to offload some processes to the GPU.

I'm running Proxmox VE 6.3-3. Both this link https://pve.proxmox.com/wiki/Downloads#Proxmox_Virtual_Environment_6.3_.28ISO_Image.29 and the output of cat on /etc/os-release indicate a Debian based kernel?
[Update] - I think I understand this better now, PVE is a Debian distro, but uses an Ubuntu kernel. That just leaves the ask for help around GPU drivers.
 
Last edited:
I have a NUC8i5BEH that I Passthrough the Intel GPU (for Quicksync access only) to an 20.04 Ubuntu VM using meditated device (GVT-g). I don’t recall that I had to add any specific drivers to the Ubuntu VM to get it working so you might want to try that route?
 
  • Like
Reactions: chrisj2020
ok - it looks like the NUC10 GPU is not supported by "vainfo". I had stopped work at this point, believing that meant it meant nothing else was going to work. @n1nj4888 - following your point, I pushed on anyway (using the steps below), and to my surprise - I'm getting GPU pass through! So it looks like the problem is with the vainfo application, and not necessarily GPU/driver support within PVE 6.3-3. So, for others this is what I've done (taken from here)

1. On PVE Host:
Code:
apt-get install i965-va-driver
ls -l /dev/dri

2. This gave me an output of the below:
Code:
total 0
drwxr-xr-x 2 root root         80 Jan  8 12:20 by-path
crw-rw---- 1 root video  226,   0 Jan  8 12:20 card0
crw-rw---- 1 root render 226, 128 Jan  8 12:20 renderD128

3. I'm interested in the card0 and renderD128 device. You need to note down the numbers after video (220,0 and 226,128 in my case). My LXC has an ID of 203. So to map the GPU to the LXC I append the lines below to /etc/pve/lxc/203.conf on the PVE host:
Code:
lxc.cgroup.devices.allow = c 226:0 rwm
lxc.cgroup.devices.allow = c 226:128 rwm
lxc.autodev: 1
lxc.hook.autodev:/var/lib/lxc/203/mount_hook.sh

4. On the last line is a mapping script. I need to create it and make it executable. So I execute the following on the PVE host touch /var/lib/lxc/203/mount_hook.sh, and chmod +x /var/lib/lxc/203/mount_hook.sh. Into that file I add the following:

Code:
mkdir -p ${LXC_ROOTFS_MOUNT}/dev/dri
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128

5. I start up my LXC and find I have access to the GPU!
 
Hi i have attempted the passthrough on my nuc10i5 usinv vfio.
Now my proxmox doesn't boot anymore and is stuck on /dev/mapper/pve-root: clean.

Using the recovery mode it is stuck on vfio-pci XXXX vgaarb:changed VGA decodes: oldecodes=io+mem,decodes=io+mem:owns=io+mem
I am not a Proxmox expert but i cannot access to gui and to terminal, any suggestion on how to solve my issue?

Thank you!
 

Attachments

  • PHOTO-2021-03-19-23-54-25.jpg
    PHOTO-2021-03-19-23-54-25.jpg
    403.7 KB · Views: 50
  • PHOTO-2021-03-19-22-26-48.jpg
    PHOTO-2021-03-19-22-26-48.jpg
    129.8 KB · Views: 50
Hi folks,

I've one last niggle with my proxmox setup, and I'm hoping someone here can guide me to a solution. I have a cluster of 3 x NUC10 boxes, these are Frost Canyon CPUs with Intel UHD Graphics. I want to pass the Intel GPU down to one of my LXC containers. Proxmox is running the latest version, and the NUCs are up to date in terms of firmware.

From what I have read, Proxmox 6.3 includes Buster based Debian packages, which now supports these newer Intel GPUs. I've run the following on each NUC host:

Code:
apt-get install i965-va-driver
apt-get install vainfo

The result I get back is:
Code:
root@nuc10i7-pve03:/# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
vaInitialize failed with error code 1 (operation failed),exit
root@nuc10i7-pve03:/#

I know I've posted about this before, but this is my last remaining challenge in this current build. The kernel version looks to support this newer chipset, I can't get the necessary drivers loaded.

Can anyone help me?
hi,

How do u solved this?
I got this as well:
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed

My cpu is 1135G7 (iris xe), run plex in lxc proxmox 7 and want to hw accelerate.
 
I followed the steps I outlined in Post#5 of this thread. I believe the error shown when you run "vainfo" from proxmox host is an error that means vainfo cannot work with quicksync CPUs. Proxmox is still able to pass the quicksync capabilities to your LXC or VM. I have followed those steps on all my proxmox nodes, and I'm seeing hardware offloading for my 4K camera streams, as well as plex internal service.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!