Cannot get HW Acceleration to pass through to a Debian VM

stinkyCheeze

Member
Dec 21, 2021
7
0
6
54
I am running proxmox 8.1 on a HP Z840 with a Nvidia RTX 3070 grapics card and I'm trying to pass through the iGPU to a LXC container. The problem that I'm having is that I cannot see the iGPU on the proxmox host itself. I can only see the Nvidia card but not the Intel iGPU.

Code:
# lspci |grep -i vga
07:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070] (rev a1)
#

It appears like something is wrong because I cannot even find the driver:

Code:
# ls -al /dev/dr*
ls: cannot access '/dev/dr*': No such file or directory
#

modprobe doesn't list it either:
Code:
# modprobe i915
#

Does the fact that I installed the Nvidia card disable the iGPU? I've read through a bunch of other threads where people seem to be expriencing this same issue but have not been able to find a working solution.

Here is what I have in /etc/default/grub
Code:
# 
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7"
GRUB_CMDLINE_LINUX=""

# If your computer has multiple operating systems installed, then you
# probably want to run os-prober. However, if your computer is a host
# for guest OSes installed via LVM or raw disk devices, running
# os-prober can cause damage to those guest OSes as it mounts
# filesystems to look for things.
#GRUB_DISABLE_OS_PROBER=false

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

I have spent over 3 days troubleshooting this but I'm still not sure what else I can check. Is there anyone here that might be able to help?
 
Check your motherboard BIOS, which can determine whether the integrated graphics is disabled when a discrete GPU is detected. Also make sure to connect a (working) display to one of the outputs of the integrated graphics (some BIOS disables is when no display is found and a discrete GPU is present). It's not something you can fix in Proxmox but maybe HP can offer support?
 
I tried booting into the BIOS but did not find anything related to controlling discrete GPU detection. I also looked it up the manual but could not find anything there either. As for plugging in a monitor to the iGPU output, I don't have that option. The only place I can plug in a monitor would be to the HDMI port on my RTX 3070.
 

Attachments

  • IMG_3167.jpeg
    IMG_3167.jpeg
    742.7 KB · Views: 3
I tried booting into the BIOS but did not find anything related to controlling discrete GPU detection. I also looked it up the manual but could not find anything there either. As for plugging in a monitor to the iGPU output, I don't have that option. The only place I can plug in a monitor would be to the HDMI port on my RTX 3070.
I only suggested generic things that work on most motherboards and which can be a common cause of the integrated graphics being disabled.
How would you do this if you were running Windows? This cannot be fixed by Proxmox or Linux but maybe other users of HP systems on the internet (or their support) can help?
 
Hi,

I am running proxmox 8.1 on a HP Z840 with a Nvidia RTX 3070 grapics card
From a quick search on the internet, these usually (or only?) have some E5-263x Xeon's, which simply do not have any integrated graphics aka. iGPU, since these are server-segment CPUs.

You can list your exact CPU(s) model using lscpu - look up if it actually has any iGPU, but probably not.
 
  • Like
Reactions: leesteken
Maybe that's it! I have Intel Xeon E5-2697 V4 Chip. Could it be that this cpu does not have the grapics acceleration?

Code:
# cat /proc/cpuinfo |grep 'model name'
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
model name      : Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz
...<snip>


Code:
00:00.0 Host bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DMI2 (rev 01)
00:01.0 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 1 (rev 01)
00:01.1 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 1 (rev 01)
00:02.0 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 2 (rev 01)
00:02.1 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 2 (rev 01)
00:02.2 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 2 (rev 01)
00:02.3 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 2 (rev 01)
00:03.0 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 3 (rev 01)
00:05.0 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Map/VTd_Misc/System Management (rev 01)
00:05.1 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D IIO Hot Plug (rev 01)
00:05.2 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D IIO RAS/Control Status/Global Errors (rev 01)
00:05.4 PIC: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D I/O APIC (rev 01)
00:11.0 Unassigned class [ff00]: Intel Corporation C610/X99 series chipset SPSR (rev 05)
00:11.4 RAID bus controller: Intel Corporation C610/X99 series chipset sSATA Controller [RAID mode] (rev 05)
00:14.0 USB controller: Intel Corporation C610/X99 series chipset USB xHCI Host Controller (rev 05)
00:16.0 Communication controller: Intel Corporation C610/X99 series chipset MEI Controller #1 (rev 05)
00:16.3 Serial controller: Intel Corporation C610/X99 series chipset KT Controller (rev 05)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-LM (rev 05)
00:1a.0 USB controller: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation C610/X99 series chipset HD Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation C610/X99 series chipset PCI Express Root Port #1 (rev d5)
00:1c.3 PCI bridge: Intel Corporation C610/X99 series chipset PCI Express Root Port #4 (rev d5)
00:1c.4 PCI bridge: Intel Corporation C610/X99 series chipset PCI Express Root Port #5 (rev d5)
00:1d.0 USB controller: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation C610/X99 series chipset LPC Controller (rev 05)
00:1f.2 RAID bus controller: Intel Corporation C600/X79 series chipset SATA RAID Controller (rev 05)
00:1f.3 SMBus: Intel Corporation C610/X99 series chipset SMBus Controller (rev 05)
01:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS2308 PCI-Express Fusion-MPT SAS-2 (rev 05)
03:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
04:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
05:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
06:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
07:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070] (rev a1)
07:00.1 Audio device: NVIDIA Corporation GA104 High Definition Audio Controller (rev a1)
08:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
7f:08.0 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 0 (rev 01)
7f:08.2 Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 0 (rev 01)
7f:08.3 System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 0 (rev 01)
...<snip>

I snipped the output because it would not fit, but you can see that it's a Xeon E5-2697 v4.
 
One thing I did notice is that after I disabled my RTX 3070 pass through like this:

Code:
# cat /etc/modprobe.d/pve-blacklist.conf
# This file contains a list of modules which are not supported by Proxmox VE

# nvidiafb see bugreport https://bugzilla.proxmox.com/show_bug.cgi?id=701
#blacklist nvidiafb
#blacklist nouveau

and this:

Code:
# cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt nox2apic"
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

I can now see the the driver here:

Code:
# ls -al /dev/dr*
crw------- 1 root root 234, 0 Jan 20 11:30 /dev/drm_dp_aux0
crw------- 1 root root 234, 1 Jan 20 11:30 /dev/drm_dp_aux1
crw------- 1 root root 234, 2 Jan 20 11:30 /dev/drm_dp_aux2

/dev/dri:
total 0
drwxr-xr-x  3 root root        100 Jan 20 11:30 .
drwxr-xr-x 19 root root       5880 Jan 20 11:30 ..
drwxr-xr-x  2 root root         80 Jan 20 11:30 by-path
crw-rw----  1 root video  226,   0 Jan 20 11:30 card0
crw-rw----  1 root render 226, 128 Jan 20 11:30 renderD128
 
I think. you're right. I just assumed that my processor had Intel HD Graphics but it appear that I have it. I guess I have to upgrade my processor if I want the iGPU.

Thanks for all the help!
 

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!