黑群晖6.2X-7.X都适用、需要找对应黑群晖的引导,intel的12代cpu截止到2022-04-21需要打补丁。如果是大小核架构的12代、要等pve的内核道5.17版本之后才能达到最佳,或者自己手动更新内核版本
准备工作
如果使用独显的话、intel平台(华硕系主板)要在bios开启iGPU Multi-Monitor
,如果是amd平台的要在bios开启IGFX Multi-Monitor
同时要开启vt-d
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
其中00:02.0
和00: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为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
二、创建虚拟机
起好名字、下一步
系统
和硬盘
都下一步略过
cpu
设置
内存设置
根据自行的需求设置
网络选择默认的网桥
和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
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。