单显卡直通教程

您所在的位置:网站首页 amd核显直通钩子 单显卡直通教程

单显卡直通教程

2023-12-13 11:16| 来源: 网络整理| 查看: 265

介绍#

这是我的单显卡直通配置过程,我在多个不同配置的电脑上都试过,这个方法都成功了。

我这里讲的是AMD处理器(英特尔的也差不多,个别参数会不一样); 系统是Arch Linux, 如果是其它发行版一些软件名和文件位置可能会不太一样。

可以配合视频教程操作,Bibibili/YouTube链接:

FollowersYouTube Channel Subscribers

或者加入我们的QQ群:689962825

还在编辑中,如果能力,请帮我完善、修订、添加更多内容!

本人是一名半工半读的学生,如果你觉得我的视频和教程有用,请考虑支持我! 可以通过Paypal给我捐赠:

或者选择在微信上给我打赏(标注VFIO),非常感谢!

更新日期:2022年04月26日#文档更新开启评论区电脑配置#处理器: AMD 锐龙 5800x 8核显卡: 微星 GeForce RTX 3070 GAMING X TRIO 8G主版:玩家国度 ROG Strix B550-A GAMING White 吹雪内存: 16GB 3600Mhz 双通道系统: Arch Linux 5.16桌面环境: KDE Plasma 5.23 X11!!要求!!#一个四核或更多的AMD64或英特尔x86-64处理器,支持硬件虚拟化。8GB双通道内存或者更多, 不然不够分给客户机。64GB固态盘空间或更多(macOS至少需要64GB,不然不允许安装)。一块独立显卡,至少支持DirectX 11核显/集显不建议,成功率较低,而且直通和不直通比没有太大的性能差异,如果想尝试参见Intel GVT-g。大部分在Big Navi之前的AMD显卡有重置Reset Bug, 可使用vendor-reset修复。若想使用macOS客户机,请使用AMD显卡(英伟达支持就是个笑话),及英特尔处理器(AMD处理器没有苹果官方支持,会有bug)。发行版不一定要用Arch系的,不过不同发行版个别命令可能会不太一样,建议使用一个较新的发行版,不然内核的KVM会太低。笔记本不建议,硬件较为封闭,跟常规桌面端不太一样。步骤#配置一个简单的KVMLibvirt 钩子QEMU和Libvirt的配置显卡直通some other things配置一个简单的KVM#启用IOMMU#重启进入UEFI/BIOS固件设置,开启IOMMU和虚拟化。通常在CPU高级选项里面,AMD处理器的一般叫Virtualization Technology或AMD-Vi,英特尔的叫VT-x或VT-d。添加下列内核参数到启动器,详情戳这里,保存然后重启。AMD处理器(根据BIOS设置默认已启用?):amd_iommu=on英特尔处理器:intel_iommu=on可视情况添加(修复或导致黑屏):iommu=pt

重启后,看看启动日志检查一下IOMMU是否已启用,使用超级用户权限运行dmesg | grep -e DMAR -e IOMMU

找找有没有 amd_IOMMU:Detected 或者 Intel-IOMMU: enabled 类似的信息。

检查IOMMU组是否有效#

用超级用户运行这串代码(来自Arch Wiki),或者 可以运行这个脚本(更好看一点)

小贴士:不要随便运行那些你不懂的代码!

shopt -s nullglob for g in `find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V`; do echo "IOMMU Group ${g##*/}:" for d in $g/devices/*; do echo -e "\t$(lspci -nns ${d##*/})" done; done;

, 看看显卡是不是在自己的一个组里面。

IOMMU group 16 0a:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560/560X] [1002:67ff] (rev cf) Driver: amdgpu 0a:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] [1002:aae0] Driver: snd_hda_intel

复制一下,先保存下来。

添加VFIO到内核模块#

新建并打开/etc/modprobe.d/vfio.conf,在里面添加:

options vfio-pci ids=1002:67ff,1002:aae0 options vfio-pci disable_idle_d3=1 options vfio-pci disable_vga=1

ids=后面应该是刚才查看的显卡的那些id,每个值之间用,隔开

安装需要的组件#

如果是Arch系(除了Artix),安装下列包

qemu libvirt edk2-ovmf virt-manager dnsmasq ebtables iptables bridge-utils gnu-netcat

安装iptables和ebtables会询问是否要替换掉iptables-nft,y确定,因为目前QEMU尚未更新,还依赖于老的那些网络组件。

启用服务#启动Libvirtd:(Systemd)#systemctl start libvirtd 设为开机自启:#systemctl enable libvirtd 启动默认虚拟网络(NAT)#virsh net-start default 设为开机自启:#virsh net-autostart default

现在可以打开虚拟机管理器,安装一个非直通的虚拟机了。

安装一个非直通的虚拟机#

这里讲的是Windows 10,是个好的开始,建议弄完这个成功后再去尝试Windows 11或者macOS。

下载镜像#Windows 10的正版镜像可以直接从微软官网下载,不过还是需要购买激活码。(可选)为了提高性能,可以从红帽网站下载安装Virtio Windows驱动,支持Windows XP至Windows 11。(Linux客户机不需要,已经自带)

将它们保存找的到的地方,最好放在/Home里面。

创建虚拟机#

QEMU/KVM -> 新建虚拟机 -> 本地安装介质,下一步

浏览并选择已下载的Windows 10安装镜像,下一步

客户机内存怎么分配都行,最好给宿主机留1/4的内存(比如8GB分6GB留2GB,16GB分12GB留4GB),CPU数可以待会儿改,下一步

默认为虚拟机启用存储(存储磁盘镜像建议放在/Home下面),下一步

设置客户机名称,默认是win10,可以改,不过以后需要修改脚本,

!!选择在安装前自定义配置!!

基本客户机配置#

概况(!!这个一定要现在设置好,不然以后就很难改了!!)

芯片组:Q35固件:ovmf_code.fd(不需要secboot和csm)

CPU数

vCPU分配数,根据拓扑设置(套接字x核心x线程)配置: 一般选择host-model或者host-passthrough(host-passthrough有时候可能会导致AMD处理器性能损耗严重?)拓扑:套接字(翻译错误?),插槽:几个处理器,大部分人就1个核心:分配给客户机几个核心(正常一点,比如2核,4核,6核,8核等等),最少留给宿主机1/4的总核心数线程:每个分配的核心有几个线程(根据你实体的处理器来,如果有超线程就设2,没有设1)

引导选项

选择SATA CDROM 1(Windows 10的安装镜像)

SATA 磁盘 1(客户机的存储空间)

(可选,理论上提升磁盘性能%300)把SATA改成VirtIO

NIC(客户机网络)

网络源:默认NAT就行(可根据个人需求设置桥接网络,不要使用macvtap设备型号:可以改成VirtIO提高性能(需要安装VirtIO驱动)IP地址:第一次启动后会自动生成

然后选择 添加硬件 -> 存储 -> 选择或添加自定义存储,浏览并添加已下载的Virtio win驱动镜像,设备类型改成CDROM设备

最后检查一下,开机安装Windows就行了!

其它资源

Arch Wiki PCI passthroughGitLab RisingPrismTV’s script


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3