最近要在PVE上测试Nanos Unikernel的Nvidia显卡集成,需要事先在PVE启用显卡直通功能,网上关于PVE显卡直通的文章零零散散,于是用本文记录直通过程。
测试环境
PVE 8.2.2
CPU Intel 12490F
显卡 Nvidia 4060
步骤
- 启用VT-d
在开始之前务必在BIOS中开启Intel VT-d,这一步骤需要显卡和主板支持,不同BIOS的开启方法不同,网上搜索相关教程即可。
Tips:撰写本文之前,由于盲目自信,认为以前自己装Hackintosh开启过VT-d,导致尝试了几次都没有成功,后来去BIOS看了一眼,才发现VT-d没有启用。 - 修改内核启动参数
编辑/etc/default/grub
文件,修改GRUB_CMDLINE_LINUX_DEFAULT
参数# before GRUB_CMDLINE_LINUX_DEFAULT="quiet" # after GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
- 添加内核模块
编辑/etc/modules
添加以下内容vfio vfio_iommu_type1 vfio_pci vfio_virqfd
- 屏蔽驱动
编辑/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
- 查看显卡的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)
- 绑定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
- 更新内核
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
- 重启系统
- 检查是否成功绑定
看到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设备
选择原始设备
,设备选择对应的Nvidia显卡,勾选所有功能
启动虚拟机,安装Nvidia显卡驱动,使用nvidia-smi
检查一下,有正常输出即为成功。
没有回复内容