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/

评论

  1. wsbyp520
    Windows Chrome 86.0.4240.198
    2年前
    2022-5-26 17:10:54
    • 佛西 博主
      Macintosh Chrome 101.0.4951.64
      2年前
      2022-5-28 13:01:47

      cdn.jsdelivr.net失效了

  2. king
    Windows Edge 98.0.1108.56
    2年前
    2022-2-26 21:36:17

    脚本里面的vmid所有字符都要替换吗,

    • 佛西 博主
      Windows Edge 98.0.1108.56
      2年前
      2022-2-26 23:16:24

      替换命令的vmid,qm set yourvmid

  3. king
    Windows Edge 98.0.1108.56
    2年前
    2022-2-26 21:35:24

    是脚本里面的VMID字符都要替换吗,


Deprecated: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /www/wwwroot/foxi.buduanwang.vip_80/wwwroot/wp-content/themes/argon-theme-master/functions.php on line 1383

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇