修改/etc/default/grub
,找到GRUB_CMDLINE_LINUX_DEFAULT
,按CPU类型
分别修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
然后修改/etc/modules
,一个一行:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
然后屏蔽驱动
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
避免 43 问题
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
为什么是可选呢?因为部分机器执行此操作后可能无法输出到外接显示器,如出现问题请尝试撤回这一步。
首先,查看显卡的ID。我这里有三张显卡,ID在前面:
root@pve:~# lspci -v | grep VGA 02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos XT [Radeon HD 7470/8470 / R5 235/310 OEM] (prog-if 00 [VGA controller]) 04:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1) (prog-if 00 [VGA controller]) 09:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30) (prog-if 00 [VGA controller])
以N卡为例,ID为02:00:0,继续执行:
root@pve:~# lspci -n -s 02:00 02:00.0 0300: 1002:6778 02:00.1 0403: 1002:aa98
会得到显卡和显卡内置音频的另一个ID,我这里是1002:6778和1002
。 接下来把这两个ID加入VFIO(记得ID改成自己的!):echo "options vfio-pci ids=1002:6778,1002:aa98 disable_vga=1"> /etc/modprobe.d/vfio.conf
如出现无法输出到外接显示器可以试试以下,如还无法使用请清空vfio.conf。
echo "options vfio-pci ids=1002:6778,1002:aa98"> /etc/modprobe.d/vfio.conf
然后应用更改:
update-grub update-initramfs -k -a all
重启PVE主机。
类型为 q35
,需为efi
。添加显卡添加第一个后面是.0
的就行。
本文作者:mereith
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!