坑太多,简单概括注意事项:vt-d
、iommu
、UEFI
、pc-q35-3.1
、vfio
。
参数设置
修改/etc/default/grub
,找到GRUB_CMDLINE_LINUX_DEFAULT
,按CPU类型分别修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
比如,我是Intel的
然后修改/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



像这样然后,
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
VFIO(可选)
为什么是可选呢?因为部分机器执行此操作后可能无法输出到外接显示器,如出现问题请尝试撤回这一步。
首先,查看显卡的ID。我这里有三张显卡,ID在前面:
[email protected]:~# 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为020,继续执行:
[email protected]:~# lspci -n -s 02:00
02:00.0 0300: 1002:6778
02:00.1 0403: 1002:aa98
会得到显卡和显卡内置音频的另一个ID,我这里是1002:6778和1002:aa98。 接下来把这两个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
重启PVE主机。
创建虚拟机
启动类型要设置为OVMF(UEFI) ,需要添加EFI磁盘。创建成功后,修改主机类型:
qm set 100 -machine pc-q35-3.1
接着在PVE界面中添加显卡,打钩除了【主GPU】之外的三个选项。参考配置如下,终点部分已圈出这时候环境就基本配置完毕了。
安装操作系统
这时候先不要接显示器。在PVE内安装系统,随后安装virtio驱动。
N卡有毒
系统安装好只后,如果显卡(尤其是N卡)不工作,设备管理器出现Code 43:来自nvidia的亲切问候:Code43就需要进一步的操作了。 不建议尝试破解N卡驱动,它可能直接甩安装失败到你脸上。
伪装CPU
nano /etc/pve/qemu-server/<你的虚拟机的ID>.conf
找到CPU那一行,删掉,然后改为:
cpu: host,hidden=1,flags=+pcid
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off'
这两个,圈出来了卸载n卡驱动,停止再启动虚拟机,等待驱动安装。 如果43错误消失,就可以跳到下一章了。
获取RomFile
cd /sys/bus/pci/devices/0000:02:00.0/ #这是上一步的显卡的ID
echo 1 > rom
cat rom > /usr/share/kvm/<GPURomFileName>.bin
echo 0 > rom
修改虚拟机配置(上面提到的conf),在hostpci0
一行最后,加上,romfile=<GPURomFileName>.bin
卸载n卡驱动,停止再启动虚拟机,等待驱动安装。如果还是不行……emmmm,N卡有毒,使用需谨慎。
最后
插上外接显示器,检查是否可以点亮。如果可以,在虚拟机硬件配置页面找到显卡,编辑,勾选【主GPU】。停止再启动虚拟机,如果显示器照常点亮,就是成功了。
1,411 Comments
Paulvem
January 9, 2023 at 7:23 amcost of albuterol
Davidimmip
January 9, 2023 at 7:21 amwhere to buy propecia in canada
Jimvem
January 9, 2023 at 7:09 aminternational pharmacy no prescription
MichaelNat
January 9, 2023 at 7:03 amclonidine 0
MiclBiG
January 9, 2023 at 6:34 ambuy gabapentin online cheap
Jimvem
January 9, 2023 at 6:32 amwhere to buy cheap viagra in usa
Kiavem
January 9, 2023 at 6:30 ambuy robaxin without prescription with visa
CharlesWab
January 9, 2023 at 6:22 amlisinopril tabs 4mg
TpubpamiDablc
January 9, 2023 at 6:22 amcost of quetiapine 100 mg quetiapine cost australia cheapest price for quetiapine
Jasonbrita
January 9, 2023 at 6:12 amonline pharmacy schools
MichaelNat
January 9, 2023 at 6:07 amlyrica best price