黑群晖6.2X-7.X都适用、需要找对应黑群晖的引导,intel的12代cpu截止到2022-04-21需要打补丁。如果是大小核架构的12代、要等pve的内核道5.17版本之后才能达到最佳,或者自己手动更新内核版本

准备工作

如果使用独显的话、intel平台(华硕系主板)要在bios开启iGPU Multi-Monitor,如果是amd平台的要在bios开启
IGFX Multi-Monitor

bios位置图

同时要开启vt-d

需要注意的是,在500/600系列芯片组的主板上,由于所支持11代和12代酷睿CPU的核显不支持传统Legacy的显示方式,所以如果想看到并开启iGPU Multi-Monitor的设置,Launch CSM必须是关闭状态

1、启动内核IOMMU支持

打开PVE节点的shell,输入命令:

nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet"修改为

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"

修改完成之后更新grub

update-grub

加载内核模块

nano /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

补充如果有独显并直通window10

同样适用虚拟机装黑苹果直通

下面设置gurb的应该为

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb textonly nomodeset video=efifb:off"

pcie_acs_override=downstream,multifunction可以增加pci设备直通的成功率。

上面是两个参数连用、一共是三个参数


pcie_acs_override =
        [PCIE] Override missing PCIe ACS support for:
    downstream
        All downstream ports - full ACS capabilties
    multifunction
        All multifunction devices - multifunction ACS subset
    id:nnnn:nnnn
        Specfic device - full ACS capabilities
        Specified as vid:did (vendor/device ID) in hex

PCI设备与其他不希望直通的设备分在一组,就使用这个参数具体的文章链接是:https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF_(简体中文)

2.添加驱动到PVE黑名单

添加黑名单是用与显卡设备的直通的

nano /etc/modprobe.d/blacklist.conf

添加驱动

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

如果机器有独显要直通还要添加下面的独显驱动

blacklist nouveau
blacklist radeon
blacklist nvidia

我的独显没有驱动可以不用添加

3.查找核显和声卡id

输入命令

lspci

pci设备查询

其中00:02.000:1f.3分别是显卡和声卡的pci的设备ID

4.查询硬件的设备Id


lspci -n -s 00:02.0      #查询显卡  00:02.0 以上获取的ID
lspci -n -s 00:1f.3      #查询声卡  00:1f.3 以上获取的ID

设备id图

从以上可以查询到显卡硬件ID为8086:9bc5 声卡硬件ID为8086:a3f0

独显的设备id

root@pve:~# lspci -ns 03:00.0
03:00.0 0300: 1002:73ff (rev c1)
root@pve:~# lspci -ns 03:00.1
03:00.1 0403: 1002:ab28

5.填上以上ID,添加直通组。多个设备,ids后面每个设备之间用,隔开

nano /etc/modprobe.d/vfio.conf

options vfio-pci ids=8086:9bc5,8086:a3f0,1002:ab28,1002:73ff

6.添加options防止VM死机

nano /etc/modprobe.d/kvm.conf

options kvm ignore_msrs=1

7.更新内核并重启PVE虚拟机

update-initramfs -u

8.重启完成后,输入命令检查模块是否加载成功

lsmod | grep vfio

查看图片

看到以上输出画面说明加载成功

一、上传DSM引导文件

我的机器配置的网卡是螃蟹8125 2.5GbE网卡。引导文件里面集成好了驱动!

下载引导DS918_6.23_引导文件:下载链接 提取码:sspn

操作步骤1

二、创建虚拟机

起好名字、下一步

2选择不使用任何介质

系统硬盘都下一步略过

cpu设置

cpu设置

内存设置

根据自行的需求设置

网络选择默认的网桥E1000

intel E1000

然后确认

删除光驱和删除硬盘

删除硬盘现分离后在删除

示意图

三、进入shell进行命令行转换

点击进入pve的shell工具

进入刚上传好的目录里面

cd /var/lib/vz/template/iso

转换命令格式:qemu-img convert -f 源文件格式 -O 目标文件格式 源文件 目标文件


qemu-img convert -f raw -O qcow2 DS918_6.23_25426_1.04bv0.13.3.img DS918_6.23.qcow2

四、放置到指定的虚拟机磁盘(vm的id)并设置硬盘直通

导入到虚拟硬盘

命令格式为:qm importdisk (虚拟机id) (映像名字) (pve存储空间名字)


qm importdisk 102 DS918_6.23.qcow2 local-lvm 

查看未使用的磁盘

点击选项、并设置引导

设置引导

设置硬盘直通

查看硬盘:ls /dev/disk/by-id

硬件设配id


root@pve:~# qm set 102 -sata1 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZDH8BNPB
update VM 102: -sata1 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZDH8BNPB
root@pve:~# qm set 102 -sata2 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZDH8J4W2
update VM 102: -sata2 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZDH8J4W2
root@pve:~# qm set 102 -sata3 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZDH8J4WV
update VM 102: -sata3 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZDH8J4WV
root@pve:~# 

查看是否添加成功

硬盘列表

设置显卡直通

nano /etc/pve/qemu-server/102.conf

102.conf重的数字就是vm的id

用配置文件方式、给虚拟机添加硬件直通

args: -device vfio-pci,host=00:02.0,addr=0x18,x-igd-opregion=on

window10

重复上述的流程,添加iso镜像进行配置

配置图

我的widnow配置hostpci1是intel的这个音频设备,amd的独显直通在没有链接hdmi设备是没有声音的。用微软的远程桌面是有。我这里用的是串流软件parsec。就添加hostpci1。

Last modification:April 22, 2022
如果觉得我的文章对你有用,请随意赞赏