想玩深度炼丹(其实根本就不是炼丹,是在虚拟机上玩GAL玩的更爽一些,1030这破玩意能干什么....)所以在自家服务器上插了一块GT1030,成功直通。

准备工作:

开启IOMMU

服务器先开启IOMMU,方法如下:

nano /etc/default/grub

#在文件中找到诸如GRUB_CMDLINE_LINUX="resume=UUID=abcd-efgh-blabla.... rhgb quiet"


#在quiet后面添加 intel_iommu=on,然后保存文件。

#随后执行

grub2-mkconfig -o /boot/grub2/grub.cfg

#若提示不存在该文件,可以尝试update-grub,或者其他你对应宿主机的grub更新教程更新grub。

 

安装ovmf

直接通过你的软件包管理器装就可以了

禁用显卡驱动

/usr/lib/modprobe.d/dist-blacklist.conf

/lib/modprobe.d/dist-blacklist.conf 

/etc/modprobe.d/blacklist.conf

 

随便找一个能打开的,加入如下语句到文件中

blacklist radeon

blacklist nouveau

blacklist nvidia

options nouveau modeset=0

 

重启

底层设置

服务器彻底断电,将显卡插入,然后开机进bios。

进入bios之后,设置cpu的VT-d,VT-x以及所有的能开的虚拟化选项全部打开。

在显卡设置(超微的是VGA优先级)设置为Onboard或者Onchip等等(不要Offboard),这样让系统走核心显卡/板载显示芯片输出。

设置好之后开机。

验证是否成功:

cat /proc/cmdline |grep intel_iommu=on

有iommu字样则成功。

或者通过virt-host-validate,显示IOMMU可用则成功

dmesg | grep -E "DMAR|IOMMU"

有IOMMU Enabled则成功

系统配置:

lspci -nn | grep NVIDIA,会输出两行

82:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP108 [GeForce GT 1030] [10de:1d01] (rev a1)
82:00.1 Audio device [0403]: NVIDIA Corporation GP108 High Definition Audio Controller [10de:0fb8] (rev a1)

此时82:00.0 82:00.1就是设备的编号,这时

find /sys/kernel/iommu_groups/ -type l |grep 82:00.0(注意,82:00.0换成你系统输出的ID号)

若有显示说明已经在iommu了

这时使用virt-manager,切换到你的windows主机(本样例是Win10)

关闭虚拟机,切换BIOS为UEFI(如果本步没有UEFI,则安装OVMF)

然后在PCI直通设备里面添加你的显卡和HDMI声卡(注意,必须同时添加,因为分割的话就不是直通整个设备了,会造成严重问题的。)

 

看到这里,如果你是Proxmox ve,直接暴力添加PCI设备,只要确保w10的启动是UEFI,这里添加完显卡之后直接就会生效,不需要再进行以下设置了,下面的设置是针对使用virt-manager或者其他方式开设KVM机的用户使用的。

 

直通完毕,点击概况,修改XML

此时寻找

<features>
blablabla
<hyperv>

找到hyperv之后,增加下面一行:
<vendor_id state='on' value='998244353012'/>

</hyperv>

在hyperv下面加kvm代码块
<kvm>
<hidden state='on'/>
</kvm>
blablabla
</features>
保存,然后启动虚拟机,等待一会,系统会自动安装驱动,如果没有安装驱动,则手动安装即可,不会出现43错误。


你是否也像清风拂过花儿一样与我相遇呢?