PVE直通核显 虚拟机关闭后恢复宿主机显示
这个b站up发了视频。PVE直通核显 虚拟机关闭后恢复宿主机显示_哔哩哔哩_bilibili
结果没教程。群友跑来问我。
目前仅支持intel 核显。不支持其他。
于是有了以下脚本
#!/usr/bin/perl
#https://foxi.buduanwang.vip
use PVE::QemuServer;
use strict;
use warnings;
print "GUEST HOOK: ".join(' ', @ARGV).
"\n";
my $igd_id = system("lspci -n|grep '0:02.0'|cut -d ':' -f4|cut -c 1-4 > /tmp/igd_id");
my $vmid = shift;
my $conf = PVE::QemuConfig->load_config($vmid);
my $phase = shift;
if ($phase eq 'pre-start') {
print "$vmid is starting, doing preparations.\n";
system("echo 0000:00:02.0 > /sys/bus/pci/drivers/i915/unbind");
system("modprobe -r i915");
system("echo 8086 `cat /tmp/igd_id` > /sys/bus/pci/drivers/vfio-pci/new_id");
}
elsif($phase eq 'post-start') {
print "$vmid started successfully.\n";
}
elsif($phase eq 'pre-stop') {
print "$vmid will be stopped.\n";
}
elsif($phase eq 'post-stop') {
print "$vmid stopped. Doing cleanup.\n";
system("echo 8086 `cat /tmp/igd_id` > /sys/bus/pci/drivers/vfio-pci/remove_id");
system("echo 0000:00:02.0 > /sys/bus/pci/drivers/vfio-pci/unbind");
system("modprobe i915");
} else {
die "got unknown phase '$phase'\n";
}
exit(0);
使用前提
1、必须先调试好直通核显,且能够出现显示器
2、i915没有在blacklist中
3、没有 grub中没有video=vesafb:off video=efifb:off
4、不要启用gvt-g
快捷操作
加载vfio等模块
echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules
安装脚本
wget -P /var/lib/vz/snippets/ https://fastly.jsdelivr.net/gh/jiangcuo/foxi/hookscripts/igd.pl
chmod +x /var/lib/vz/snippets/igd.pl
#将hookscript添加到虚拟机中,注意下面命令的替换vmid
qm set <vmid> --hookscript local:snippets/igd.pl
版权声明:
作者:佛西
链接:https://foxi.buduanwang.vip/virtualization/pve/1590.html/
文章版权归作者所有,未经允许请勿转载
如需获得支持,请点击网页右上角
作者:佛西
链接:https://foxi.buduanwang.vip/virtualization/pve/1590.html/
文章版权归作者所有,未经允许请勿转载
如需获得支持,请点击网页右上角
THE END
1
二维码
海报
PVE直通核显 虚拟机关闭后恢复宿主机显示
这个b站up发了视频。PVE直通核显 虚拟机关闭后恢复宿主机显示_哔哩哔哩_bilibili
结果没教程。群友跑来问我。
目前仅支持intel 核显。不支持其他。
于是有了以……
文章目录
关闭
wsbyp520
佛西@wsbyp520
king
佛西@king
king