centos9 intel集显直通方法

安装KVM的内容不再赘述,自己百度下就行了,注意使用桥接网络要手动配置网桥,不然virt-manager创建虚拟机的时候会报错,另外创建虚拟机时可能会报权限不足,修改qemu.conf的启动用户改成root可以解决,我没深度研究权限的问题,有安全考虑的同学可以去研究下

vim /etc/libvirt/qemu.conf
user = "root"
group = "root"
##默认qemu用户

我的是intel cpu,amd cpu的同学可以参考该博客,intel cpu的同学照做即可

直通步骤(支持win11)

        1、前置准备:

                A:bios中必须开启vt-d

                B:下载virtio驱动,最新版已经支持win11,virtio-win-0.1.221以上版本

        2、配置宿主机系统

                A:检查iommu

##查看启动日志是否有iommu相关日志打印,关键字有DMAR: IOMMU enabled,没有进行A1操作开启iommu,有继续看一下设备分组,并继续B
dmesg | grep -i iommu

[    0.000000] Command line: BOOT_IMAGE=(hd1,gpt2)/vmlinuz-5.14.0-165.el9.x86_64 root=/dev/mapper/cs-root ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rd.lvm.lv=cs/root rhgb quiet intel_iommu=on
[    0.028299] Kernel command line: BOOT_IMAGE=(hd1,gpt2)/vmlinuz-5.14.0-165.el9.x86_64 root=/dev/mapper/cs-root ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rd.lvm.lv=cs/root rhgb quiet intel_iommu=on
[    0.028443] DMAR: IOMMU enabled
[    0.124395] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.438524] iommu: Default domain type: Translated 
[    0.438524] iommu: DMA domain TLB invalidation policy: lazy mode 
[    0.509405] DMAR: IOMMU feature fl1gp_support inconsistent
[    0.509406] DMAR: IOMMU feature pgsel_inv inconsistent
[    0.509413] DMAR: IOMMU feature nwfs inconsistent
[    0.509414] DMAR: IOMMU feature pasid inconsistent
[    0.509415] DMAR: IOMMU feature eafs inconsistent

##找到核显的硬件地址,会返回一串呆冒号的数字
lspci -nn | grep 630 | awk -F ' ' '{print $1}'

00:02.0

##将上面命令反馈结果替换下面0000\:00\:02.0,:要用\转义一下
##输入命令查看核显的iommu group下是否有其他设备,有需要一起直通到虚拟机,我这只有一个核显
ls -l /sys/bus/pci/devices/0000\:00\:02.0/iommu_group/devices/

                A1:开启iommu

                        编辑grub启动参数,增加iommu选项,加在最后即可

vim /etc/default/grub

d5bbb60dc1db4707b001c4eaf694ece1.png                        重新生成grub配置文件

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

                        重启服务器,重启之后再执行dmesg |grep -i iommu,检查是否成功,没成功百度处理一下

                 B:屏蔽核显默认驱动

                        检查下核显驱动类型,我这截图是已经屏蔽成功,显卡已经直通到虚拟机,所以驱动变成了vfio-pci,如果显示的不是vfio-pci和没有Kernel driver in use项(没有的情况下也是屏蔽成功的直接直通就可以)就需要进行屏蔽操作

lspci -nnk |grep 630 -A 5

adf7f01255844958bf034479d472d322.png                        配置blacklist文件,屏蔽内核加载核显

##没有该文件直接重新创建,有就在后面追加,我这里加了4个,应该只用加1个或者2个,可以自行尝试一下,偷懒的直接加四个都行,没有其他影响

vim /etc/modprobe.d/blacklist.conf

blacklist nouveau
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

401e0ebdcdf54ef09fe36500f0cde230.png

                        重新生成内核,mv备份下,dracut重新生成内核,生成完成后重启服务器

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)

                        重启之后用 lspci -nnk | grep 630 -A 5,此时应该会出现刚才描述过的情况,集显没有了“Kernel driver in use” 选项,说明屏蔽成功了

3ddcb8a41ffb4b7791e1149c26afd98b.png

        3、创建虚拟机并添加显卡

                        创建时选择系统类型必须选择winnt3.1(创建虚拟机分配内存必须4G以上,否则会出问题,原因见文章最后),否则会报错(原因是因为后面选的chipset的时候会影响xml文件生成,选择其他系统xml文件生成是生成的pci设备是-root结尾的,从而导致chipset不能兼容,创建虚拟机报错,有能力的也可以手动改xml文件)

9085c576adc94e63b25759c5928f244d.png

                        chipset选择“i440FX”,默认BIOS即可,然后添加显卡到虚拟机,添加完成后启动虚拟机进行安装系统,这里就不说系统安装步骤了,另外不用重新安装核显驱动,系统会自动识别,也不建议更新显卡驱动,可能导致显卡43报错(安装系统时要用到virtio安装驱动,安装完系统后进入系统要先把virtio驱动全部装上

ae33415d2030447fa108e2630e55ff61.png

                         安装完成后核显会占用2G内存,导致虚拟机内存占用高,这个问题可以解决,目前还没有找到配置生效的方法,知道怎么配置的可以在文章下留言5e3dc0ebf8684702bb06307db6a5f677.png

##2022年10月14日 更新:win11会自动更新核显驱动,更新成2022年7月的驱动后核显会报43错误,在设备管理器里面右键显卡选择卸载设备并勾选尝试删除驱动会把驱动降到30.X版本,重启后核显正常

 

##

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值