moetayuko / intel-gpu-i915-backports

out-of-tree i915 kernel module for PVE and DSM
Other
140 stars 30 forks source link

想请教一下这个驱动在 PVE 8.1 如何安装和设置实现支持 SR-IOV ? #17

Closed gzbenson closed 8 months ago

gzbenson commented 8 months ago

是直接运行 apt install ./intel-i915-dkms_1.24.1.10.240110.1.nodrm+i1-1_all.deb , 它就会安装好所有依赖和驱动 , 然后在 /etc/kernel/cmdline 加上 intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 然后 proxmox-boot-tool refresh , 重启就可以了吗?

gzbenson commented 8 months ago

root@pve:~# dmesg | grep i915 [ 0.000000] Command line: initrd=\EFI\proxmox\6.5.13-1-pve\initrd.img-6.5.13-1-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 [ 0.071301] Kernel command line: initrd=\EFI\proxmox\6.5.13-1-pve\initrd.img-6.5.13-1-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 [ 13.299421] i915: unknown parameter 'max_vfs' ignored [ 13.300223] i915 0000:00:02.0: [drm] VT-d active for gfx access [ 13.300525] i915 0000:00:02.0: vgaarb: deactivate vga console [ 13.300562] i915 0000:00:02.0: [drm] Using Transparent Hugepages [ 13.301139] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 13.301679] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915]) [ 13.308407] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1) [ 13.311495] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.13.1 [ 13.311501] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3 [ 13.313986] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads [ 13.314298] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled [ 13.314301] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled [ 13.314593] i915 0000:00:02.0: [drm] GT0: GUC: RC enabled [ 13.315051] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915]) [ 13.315209] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized [ 13.371605] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0 [ 13.372799] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915]) [ 13.402475] fbcon: i915drmfb (fb0) is primary device [ 13.542059] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device root@pve:~# dmesg | grep SR-IOV root@pve:~#

一顿操作,貌似没有成功 ,是驱动没有安装成功吗?

gzbenson commented 8 months ago

root@pve:~# dmesg | grep i915 [ 0.000000] Command line: initrd=\EFI\proxmox\6.5.13-1-pve\initrd.img-6.5.13-1-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 [ 0.071252] Kernel command line: initrd=\EFI\proxmox\6.5.13-1-pve\initrd.img-6.5.13-1-pve root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 [ 13.009279] i915_compat: module verification failed: signature and/or required key missing - tainting kernel [ 13.290622] i915 0000:00:02.0: Running in SR-IOV PF mode [ 13.291086] i915 0000:00:02.0: [drm] VT-d active for gfx access [ 13.291362] i915 0000:00:02.0: vgaarb: deactivate vga console [ 13.291393] i915 0000:00:02.0: [drm] Using Transparent Hugepages [ 13.291979] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 13.292514] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915]) [ 13.298951] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1) [ 13.302209] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.13.1 [ 13.302217] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3 [ 13.305097] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads [ 13.305407] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled [ 13.305410] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled [ 13.305725] i915 0000:00:02.0: [drm] GT0: GUC: RC enabled [ 13.371518] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0 [ 13.372811] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915]) [ 13.372968] i915 display info: display version: 12 [ 13.372969] i915 display info: cursor_needs_physical: no [ 13.372970] i915 display info: has_cdclk_crawl: no [ 13.372970] i915 display info: has_cdclk_squash: no [ 13.372971] i915 display info: has_ddi: yes [ 13.372971] i915 display info: has_dp_mst: yes [ 13.372972] i915 display info: has_dsb: yes [ 13.372972] i915 display info: has_fpga_dbg: yes [ 13.372972] i915 display info: has_gmch: no [ 13.372973] i915 display info: has_hotplug: yes [ 13.372973] i915 display info: has_hti: yes [ 13.372974] i915 display info: has_ipc: yes [ 13.372974] i915 display info: has_overlay: no [ 13.372975] i915 display info: has_psr: yes [ 13.372975] i915 display info: has_psr_hw_tracking: no [ 13.372975] i915 display info: overlay_needs_physical: no [ 13.372976] i915 display info: supports_tv: no [ 13.372976] i915 display info: has_hdcp: yes [ 13.372977] i915 display info: has_dmc: yes [ 13.372977] i915 display info: has_dsc: yes [ 13.372994] i915 0000:00:02.0: 7 VFs could be associated with this PF [ 13.403177] fbcon: i915drmfb (fb0) is primary device [ 13.542041] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device

我这个好像卡在 “[ 13.009279] i915_compat: module verification failed: signature and/or required key missing - tainting kernel” 是不是 dkms 驱动没有 MOK sign啊, 但是我的 PVE 8.1 EFI boot 不是 Secure Boot 啊

moetayuko commented 8 months ago

我这个好像卡在 “[ 13.009279] i915_compat: module verification failed: signature and/or required key missing - tainting kernel” 是不是 dkms 驱动没有 MOK sign啊, 但是我的 PVE 8.1 EFI boot 不是 Secure Boot 啊

这个不是报错,可以忽略

设置方式参考 https://pve.proxmox.com/wiki/PCI(e)_Passthrough 机型 q35,BIOS OVMF

gzbenson commented 8 months ago

我这个好像卡在 “[ 13.009279] i915_compat: module verification failed: signature and/or required key missing - tainting kernel” 是不是 dkms 驱动没有 MOK sign啊, 但是我的 PVE 8.1 EFI boot 不是 Secure Boot 啊

这个不是报错,可以忽略

设置方式参考 https://pve.proxmox.com/wiki/PCI(e)_Passthrough 机型 q35,BIOS OVMF

root@pve:/etc/modprobe.d# lspci -k | grep -A 3 "VGA" 00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c) DeviceName: Onboard - Video Kernel driver in use: i915 Kernel modules: i915

我现在这个驱动是正确的吗? 我 lspci ,看不到 00:02.0 后面的 02.xxxx

root@pve:/etc/modprobe.d# lspci 00:00.0 Host bridge: Intel Corporation Device 4630 (rev 05) 00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c) 00:06.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 (rev 05) 00:0a.0 Signal processing controller: Intel Corporation Platform Monitoring Technology (rev 01) 00:14.0 USB controller: Intel Corporation Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller (rev 11) 00:14.2 RAM memory: Intel Corporation Alder Lake-S PCH Shared SRAM (rev 11) 00:15.0 Serial bus controller: Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #0 (rev 11) 00:16.0 Communication controller: Intel Corporation Alder Lake-S PCH HECI Controller #1 (rev 11) 00:17.0 SATA controller: Intel Corporation Alder Lake-S PCH SATA Controller [AHCI Mode] (rev 11) 00:1a.0 PCI bridge: Intel Corporation Alder Lake-S PCH PCI Express Root Port #25 (rev 11) 00:1c.0 PCI bridge: Intel Corporation Alder Lake-S PCH PCI Express Root Port #1 (rev 11) 00:1d.0 PCI bridge: Intel Corporation Device 7ab7 (rev 11) 00:1f.0 ISA bridge: Intel Corporation Device 7a86 (rev 11) 00:1f.3 Audio device: Intel Corporation Alder Lake-S HD Audio Controller (rev 11) 00:1f.4 SMBus: Intel Corporation Alder Lake-S PCH SMBus Controller (rev 11) 00:1f.5 Serial bus controller: Intel Corporation Alder Lake-S PCH SPI Controller (rev 11) 01:00.0 Non-Volatile memory controller: Solidigm P44 Pro NVMe SSD [Hollywood Beach] 02:00.0 Non-Volatile memory controller: Solidigm P44 Pro NVMe SSD [Hollywood Beach] 03:00.0 SATA controller: ASMedia Technology Inc. ASM1166 Serial ATA Controller (rev 02) 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)

gzbenson commented 8 months ago

root@pve:/etc/modprobe.d# dmesg | grep -e DMAR -e IOMMU -e AMD-Vi [ 0.010779] ACPI: DMAR 0x0000000036388000 000088 (v02 INTEL EDK2 00000002 01000013) [ 0.010811] ACPI: Reserving DMAR table memory at [mem 0x36388000-0x36388087] [ 0.071337] DMAR: IOMMU enabled [ 0.164500] DMAR: Host address width 39 [ 0.164502] DMAR: DRHD base: 0x000000fed90000 flags: 0x0 [ 0.164506] DMAR: dmar0: reg_base_addr fed90000 ver 4:0 cap 1c0000c40660462 ecap 29a00f0505e [ 0.164509] DMAR: DRHD base: 0x000000fed91000 flags: 0x1 [ 0.164513] DMAR: dmar1: reg_base_addr fed91000 ver 5:0 cap d2008c40660462 ecap f050da [ 0.164515] DMAR: RMRR base: 0x00000040000000 end: 0x000000807fffff [ 0.164517] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1 [ 0.164519] DMAR-IR: HPET id 0 under DRHD base 0xfed91000 [ 0.164520] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping. [ 0.166029] DMAR-IR: Enabled IRQ remapping in x2apic mode [ 0.301212] pci 0000:00:02.0: DMAR: Skip IOMMU disabling for graphics [ 0.354898] DMAR: No ATSR found [ 0.354898] DMAR: No SATC found [ 0.354899] DMAR: IOMMU feature fl1gp_support inconsistent [ 0.354900] DMAR: IOMMU feature pgsel_inv inconsistent [ 0.354901] DMAR: IOMMU feature nwfs inconsistent [ 0.354902] DMAR: IOMMU feature dit inconsistent [ 0.354903] DMAR: IOMMU feature sc_support inconsistent [ 0.354904] DMAR: IOMMU feature dev_iotlb_support inconsistent [ 0.354905] DMAR: dmar0: Using Queued invalidation [ 0.354908] DMAR: dmar1: Using Queued invalidation [ 0.355168] DMAR: Intel(R) Virtualization Technology for Directed I/O

我的环境是 铭瑄 B660m , 12100 cpu

moetayuko commented 8 months ago

看起来似乎都是对的,但 VF 没有加载

gzbenson commented 8 months ago

看起来似乎都是对的,但 VF 没有加载

嗯,所以不确认是不是因为 dkms 需要 mok sign的问题, 但是我已经用的全新安装的 proxmox 8.1.2 iso , 用的 zfs raidz1 双 nvme 盘做的系统 , 所以是没有开 secure boot 的, 按道理没有开 secure boot ,不需要sign啊, 还是没有 secure boot ,不能很好加载这个驱动

我之前试 https://github.com/strongtz/i915-sriov-dkms 这个驱动是能正常 sr-iov 给几台 win11 vm 的

moetayuko commented 8 months ago

看起来似乎都是对的,但 VF 没有加载

嗯,所以不确认是不是因为 dkms 需要 mok sign的问题, 但是我已经用的全新安装的 proxmox 8.1.2 iso , 用的 zfs raidz1 双 nvme 盘做的系统 , 所以是没有开 secure boot 的, 按道理没有开 secure boot ,不需要sign啊, 还是没有 secure boot ,不能很好加载这个驱动

不需要,我自己也有这个警告

gzbenson commented 8 months ago

看起来似乎都是对的,但 VF 没有加载

嗯,所以不确认是不是因为 dkms 需要 mok sign的问题, 但是我已经用的全新安装的 proxmox 8.1.2 iso , 用的 zfs raidz1 双 nvme 盘做的系统 , 所以是没有开 secure boot 的, 按道理没有开 secure boot ,不需要sign啊, 还是没有 secure boot ,不能很好加载这个驱动

不需要,我自己也有这个警告

我的 PVE 8.1.4 更新到内核 6.5.13 ,是不是需要用 6.5.11 ? 还是我的主板 BIOS 有什么设置影响了 VF 的加载呢 ?

moetayuko commented 8 months ago

我的 PVE 8.1.4 更新到内核 6.5.13 ,是不是需要用 6.5.11 ?

都可以

还是我的主板 BIOS 有什么设置影响了 VF 的加载呢 ?

这就不清楚了

gzbenson commented 8 months ago

全新再安装了一次, 已经解决