PVE8.2显卡直通-编程技术交流论坛-糯五游戏网

PVE8.2显卡直通

最近要在PVE上测试Nanos Unikernel的Nvidia显卡集成,需要事先在PVE启用显卡直通功能,网上关于PVE显卡直通的文章零零散散,于是用本文记录直通过程。

测试环境

PVE 8.2.2
CPU Intel 12490F
显卡 Nvidia 4060

步骤

  1. 启用VT-d
    在开始之前务必在BIOS中开启Intel VT-d,这一步骤需要显卡和主板支持,不同BIOS的开启方法不同,网上搜索相关教程即可。
    Tips:撰写本文之前,由于盲目自信,认为以前自己装Hackintosh开启过VT-d,导致尝试了几次都没有成功,后来去BIOS看了一眼,才发现VT-d没有启用。
  2. 修改内核启动参数
    编辑/etc/default/grub文件,修改GRUB_CMDLINE_LINUX_DEFAULT参数

    # before
    GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    # after
    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
  3. 添加内核模块
    编辑/etc/modules添加以下内容

    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
  4. 屏蔽驱动
    编辑/etc/modprobe.d/pve-blacklist.conf,添加相关内容#

    # Nvidia
    blacklist nvidiafb
    blacklist nouveau
    blacklist nvidia
    # AMD
    blacklist amdgpu
    blacklist radeon
    # Intel UHD
    blacklist snd_hda_codec_hdmi
    blacklist snd_hda_intel
    blacklist snd_hda_codec
    blacklist snd_hda_core
  5. 查看显卡的PCI ID
    这里一共出现两个设备,一个是视频输出,另一个是音频输出,都需要进行绑定

    root@pve:~# lspci -nnk | grep -i nvidia
    01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107 [GeForce RTX 4060] [10de:2882] (rev a1)
         Kernel modules: nvidiafb, nouveau
    01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:22be] (rev a1)
  6. 绑定vfio-pci
    编辑/etc/modprobe.d/vfio.conf,将上一步骤获取的PCI ID填入

    softdep nouveau pre: vfio-pci
    softdep snd_hda_intel pre: vfio-pci
    options vfio-pci ids=10de:2882,10de:22be
  7. 更新内核
    root@pve:~# update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-6.8.4-2-pve
    Running hook script 'zz-proxmox-boot'..
    Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
    No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.
    root@pve:~# update-grub
    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-6.8.4-2-pve
    Found initrd image: /boot/initrd.img-6.8.4-2-pve
    Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
    Adding boot menu entry for UEFI Firmware Settings ...
    done
  8. 重启系统
  9. 检查是否成功绑定
    看到Kernel driver in use: vfio-pci字样即为直通成功
root@pve:~# lspci -nnk
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107 [GeForce RTX 4060] [10de:2882] (rev a1)
    Subsystem: Shenzhen Colorful Yugong Technology and Development Co. AD107 [GeForce RTX 4060] [7377:1541]
    Kernel driver in use: vfio-pci
    Kernel modules: nvidiafb, nouveau
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:22be] (rev a1)
    Subsystem: Shenzhen Colorful Yugong Technology and Development Co. Device [7377:1541]
    Kernel driver in use: vfio-pci
    Kernel modules: snd_hda_intel

虚拟机添加直通设备

前往PVE控制台,在硬件选项卡中,添加PCI设备

图片[1]-PVE8.2显卡直通-编程技术交流论坛-糯五游戏网

选择原始设备,设备选择对应的Nvidia显卡,勾选所有功能

图片[2]-PVE8.2显卡直通-编程技术交流论坛-糯五游戏网

启动虚拟机,安装Nvidia显卡驱动,使用nvidia-smi检查一下,有正常输出即为成功。

请登录后发表评论

    没有回复内容