No /dev/fb0 on host

patrickli

New Member
Oct 24, 2022
10
0
1
I am trying to configure iGPU passthrough to a lxc container, which requires exposing `/dev/fb0` and `/dev/dri/*` to the container. The `/dev/dri/*` exists and can be seen by the CT.

However there is no `/dev/fb0` on the host. I have no clue if there is anything I missed. Some relevant information as below:

* The host is an Intel N5105 with 4x i226 device.
* It now runs kernel 6.1.2, but the fb0 wasn't there when it was running 6.0.9 either.
* GRUB_CMDLINE_LINUX_DEFAULT="quiet initcall_blacklist=sysfb_init intel_iommu=on iommu=pt"

Code:
root@pve:~# cat /etc/modprobe.d/i915.conf
options i915 enable_guc=3
root@pve:~# uname -a
Linux pve 6.1.2-1-pve #1 SMP PREEMPT_DYNAMIC PVE 6.1.2-1 (2023-01-10T00:00Z) x86_64 GNU/Linux
root@pve:~# dmesg |grep -e DMAR -e IOMMU -e i915
[    0.016716] ACPI: DMAR 0x00000000787C6000 000088 (v02 INTEL  EDK2     00000002      01000013)
[    0.016758] ACPI: Reserving DMAR table memory at [mem 0x787c6000-0x787c6087]
[    0.052212] DMAR: IOMMU enabled
[    0.127740] DMAR: Host address width 39
[    0.127741] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.127749] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 49e2ff0505e
[    0.127752] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.127758] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.127760] DMAR: RMRR base: 0x0000007b800000 end: 0x0000007fbfffff
[    0.127764] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.127766] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.127767] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.129562] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.315135] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics
[    0.392606] DMAR: No ATSR found
[    0.392607] DMAR: No SATC found
[    0.392609] DMAR: IOMMU feature fl1gp_support inconsistent
[    0.392610] DMAR: IOMMU feature pgsel_inv inconsistent
[    0.392611] DMAR: IOMMU feature nwfs inconsistent
[    0.392612] DMAR: IOMMU feature pds inconsistent
[    0.392612] DMAR: IOMMU feature eafs inconsistent
[    0.392613] DMAR: IOMMU feature prs inconsistent
[    0.392614] DMAR: IOMMU feature nest inconsistent
[    0.392614] DMAR: IOMMU feature mts inconsistent
[    0.392615] DMAR: IOMMU feature sc_support inconsistent
[    0.392616] DMAR: IOMMU feature dev_iotlb_support inconsistent
[    0.392617] DMAR: dmar0: Using Queued invalidation
[    0.392620] DMAR: dmar1: Using Queued invalidation
[    0.393246] DMAR: Intel(R) Virtualization Technology for Directed I/O
[    4.971805] i915 0000:00:02.0: [drm] VT-d active for gfx access
[    4.971812] i915 0000:00:02.0: vgaarb: deactivate vga console
[    4.971889] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[    4.981704] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    4.983107] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
[    5.652483] i915 0000:00:02.0: [drm] failed to retrieve link info, disabling eDP
[    5.808177] i915 0000:00:02.0: [drm] GuC firmware i915/ehl_guc_70.1.1.bin version 70.1.1
[    5.808185] i915 0000:00:02.0: [drm] HuC firmware i915/ehl_huc_9.0.0.bin version 9.0.0
[    5.825432] i915 0000:00:02.0: [drm] HuC authenticated
[    5.826173] i915 0000:00:02.0: [drm] GuC submission enabled
[    5.826175] i915 0000:00:02.0: [drm] GuC SLPC disabled
[    5.828927] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[    5.831555] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    6.499485] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[    7.179555] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[    7.910482] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes

Any help is much appreciated.
 
Last edited:
Hi, I don't know too much about GPU passthrough, but I think the initcall_blacklist=sysfb_init parameter is the reason you're not seeing /dev/fb0 on your host. If I understand correctly, disabling the framebuffer on the host is necessary if you want to passthrough your GPU to a VM, to prevent the host from using the GPU itself. But as you're trying to passthrough to a container, I think you don't want to disable the framebuffer on the host. Here is a post by someone who managed to set up GPU passthrough to a container, maybe that helps?
 

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!