官网已经出过指导教程,官方出品,必属你看不懂系列,所以就观摩一下就行。
https://pve.proxmox.com/wiki/Pci_passthrough
一、开启PVE核显直通
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
2.添加驱动到PVE黑名单
nano /etc/modprobe.d/blacklist.conf
添加驱动
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
3.查找核显通道ID
输入命令
lspci
00:02.0 VGA compatible controller: Intel Corporation GeminiLake [UHD Graphics 600]
我的核显的PCIE ID 为00:02.0 取前两位数就是00:02
4.查询对应硬件ID
lspci -n -s 00:02 #查询显卡 00:02 以上获取的ID
从以上可以查询到显卡硬件ID为8086:3185
5.填上以上ID,添加直通组。多个设备,ids后面每个设备之间用,
隔开
nano /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:3185
6.添加options防止VM死机
nano /etc/modprobe.d/kvm.conf
options kvm ignore_msrs=1
7.更新内核并重启PVE虚拟机
update-initramfs -u
8.重启完成后,输入命令检查模块是否加载成功
lsmod | grep vfio
二、为PVE虚拟机安装编译gcc工具、Git工具,make工具
1.更新源
apt-get update
2.安装gcc编译工具
apt-get install gcc
查询gcc版本
gcc --version
3.安装Git工具
apt-get install git
4.安装make工具
apt-get install make
三、编译官方提供的核显rom修复工具
git clone https://github.com/awilliam/rom-parser
cd rom-parser
make
四、导出核显ROM
1.之前输入lspci查询到核显的通道ID 为00:02.0
2.进入路径
cd /sys/bus/pci/devices/
ls
找到里面核显的设备文件夹
进入这个文件夹
cd 0000:00:02.0
3.开始导出核显rom
echo 1 > rom
cat rom > /tmp/vbios.rom
echo 0 > rom
在winscp进入PVE的tmp目录就可以看到导出的核显rom
五、查询导出核显的硬件设备ID
cd rom-parser
./rom-parser /tmp/vbios.rom
这里会发现我们导出的核显rom 硬件设备ID为8086:0406, 这个是存在问题的,通过之前的步骤我们查询到的核显设备ID应该为8086:3185,这个才是正确的,所以我们要借助rom-parser编译出来的修复文件进行修复
六、修复核显ROM的设备通道ID
cd
cd rom-parser
./rom-fixer /tmp/vbios.rom
七、检查核显是否能直出直通
nano /etc/pve/qemu-server/100.conf
在顶部加入这行代码,代表直通核显直出核显
args: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,romfile=vbios.rom
导出核显rom失败
root@pve:/sys/bus/pci/devices/0000:00:02.0# echo 1 > rom
bash: rom: Permission denied
root@pve:/sys/bus/pci/devices/0000:00:02.0# cat rom > /tmp/vbios.rom cat:rom: No such file or directory
root@pve:/sys/bus/pci/devices/0000:00:02.0# echo 0 > rom
bash:rom:Permission denied
uefi 启动可以输出画面吗
显示器输出花屏怎么破?
shell没报错,虚拟机能正常运行,笔记本做的PVE,显示器输出花屏,HDMI 闪屏后灭掉。
笔记本主板集成了核显和独显,估计是电源管理无法管理两颗显示芯片的输出切换 o(╥﹏╥)o
root@www:~# git clone https://github.com/awilliam/rom-parser
Cloning into ‘rom-parser’…
fatal: unable to access ‘https://github.com/awilliam/rom-parser/’: Failed to connect to github.com port 443: Connection refused
无法访问 github.com,这个怎么弄啊?
请问一下大神,我导出的时候提示-bash: rom: Permission denied,这个要怎么解决啊?
-bash: rom: Permission denied
提示这个怎么弄
我也出现这个,于是换了pve7.0,结果成了,不知道为什么
我的就是7.0.1的,也是一样出现这样的错误
你之前是什么版本?我是新装的7.1,就遇到这个问题了
按教程走完启动win10虚拟机失败,提示如下:
swtpm_setup: Not overwriting existing state file.
kvm: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,romfile=vbios.rom: vfio 0000:00:02.0: failed to open /dev/vfio/1: No such file or directory
stopping swtpm instance (pid 372543) due to QEMU startup error
TASK ERROR: start failed: QEMU exited with code 1
esxi 能否安装 MacOS?同求出教程?
既然出了win的系统,大佬可以再出个双系统软路由同时跑MacOS的教程吗,我想这个大家都很需要哪,谢谢
全程操作流畅,就最后没输出……CPU是i5 4310
3965U提取失败,是不是BIOS需要设置下?
大佬,执行这一句报错,怎么解决呀
root@www:/sys/bus/pci/devices/0000:00:02.0# cat rom > /tmp/vbios.rom
cat: rom: Input/output error
一定要设置成CSM兼容模式启动才行,我折腾了好久才找到原因
cat rom > /tmp/vbios.rom
出错怎么办
大佬,执行这一句报错,怎么解决呀
root@www:/sys/bus/pci/devices/0000:00:02.0# cat rom > /tmp/vbios.rom
cat: rom: Input/output error
跟你一样的错误
这种方式,主板上有HDMI,DP口,那么DP口可以输出么?
可以