侧边栏壁纸
博主头像
一揽芳华 博主等级

行动起来,活在当下

  • 累计撰写 265 篇文章
  • 累计创建 24 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

PVE8.2配置显卡直通(4070)

芳华是个男孩!
2024-12-25 / 0 评论 / 0 点赞 / 17 阅读 / 0 字
广告 广告

PVE8.2配置显卡直通

本次测试显卡型号:4070 super,以下文章来自CSDN,经实验测试4070 super可实现虚拟机直通。

1、配置开启IOMMU支持 vim /etc/default/grub(每个参考的都不一样,这个需要注意,)

#Intel处理器:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf video=efifb:off"

#AMD处理器:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt initcall_blacklist=sysfb_init initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf video=efifb:off"
  • intel_iommu 和 amd_iommu=on 为开启IOMMU

  • video=vesafb:off video=efifb:off 不加载 vesafb 是 veas设备 的 fb ,efifb 是指 uefi设备 的 fb ,在 PVE 7.3 之后版本用(测试了关闭的情况下有可能报错)

  • initcall_blacklist=sysfb_init 替代(来源于PVE 7.3 优化和显卡直通)

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 initcall_blacklist=sysfb_init initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction pci=nommconf"
GRUB_CMDLINE_LINUX=""
##这个是个人本地的设置

2、更新 GRUB proxmox-boot-tool refresh 执行更新(不使用 update-grub 原因是,它提示的,个人觉得都可以使用,我用的是update-grub);

update-grub #重启内核服务
reboot      #重启设备

3、验证iommu是否生效dmesg | grep -e IOMMU

root@tlzx:~# dmesg | grep -e IOMMU
[    0.000000] Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA
[    0.324109] DMAR: IOMMU enabled
[    0.909875] DMAR-IR: IOAPIC id 12 under DRHD base  0xfbffc000 IOMMU 2
[    0.909877] DMAR-IR: IOAPIC id 11 under DRHD base  0xb33fc000 IOMMU 1
[    0.909879] DMAR-IR: IOAPIC id 10 under DRHD base  0x94bfc000 IOMMU 0
[    0.909881] DMAR-IR: IOAPIC id 8 under DRHD base  0x947fc000 IOMMU 3
[    0.909882] DMAR-IR: IOAPIC id 9 under DRHD base  0x947fc000 IOMMU 3
[    1.665623] DMAR: IOMMU feature coherent inconsistent
[    1.665624] DMAR: IOMMU feature coherent inconsistent

4、添加所需的系统模块(驱动)

##参照
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules
update-initramfs -u -k all ##更加内核
## 查看个人的
root@tlzx:~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
root@tlzx:~# 

5、添加模块(驱动)黑名单 N卡(我的是4090 D)

echo "blacklist nvidia" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist nvidiafb" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/pve-blacklist.conf
echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf

6、查看显卡并把显卡添加到配置文件(有些不需要,但是为避免有问题也添加了)

root@tlzx:/etc/modprobe.d# lspci -nn | grep NV
17:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO [144d:a80a]
65:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD102 [GeForce RTX 4090 D] [10de:2685] (rev a1)
65:00.1 Audio device [0403]: NVIDIA Corporation AD102 High Definition Audio Controller [10de:22ba] (rev a1)
b3:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD102 [GeForce RTX 4090] [10de:2684] (rev a1)
b3:00.1 Audio device [0403]: NVIDIA Corporation AD102 High Definition Audio Controller [10de:22ba] (rev a1)
root@tlzx:/etc/modprobe.d#  lspci -n -s 65:00.0   ##这个对应的是4090 D的
65:00.0 0300: 10de:2685 (rev a1)
root@tlzx:/etc/modprobe.d#

设置完成的目录文件cd /etc/modprobe.d目录下

root@tlzx:/etc/modprobe.d# ls ##查看当前目录文件
kvm.conf  pve-blacklist.conf  vfio.conf
root@tlzx:/etc/modprobe.d# cat kvm.conf 
options kvm ignore_msrs=1
root@tlzx:/etc/modprobe.d# cat 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 nvidia
blacklist nouveau
root@tlzx:/etc/modprobe.d# cat vfio.conf 
options vfio-pci ids=10de:2685
options vfio-pci ids=10de:2684
root@tlzx:/etc/modprobe.d# 

配置完成记得重启内核和设备:

update-initramfs -u
reboot

转载: 原文链接

0
广告 广告

评论区