PVE直通核显
Proxmox Virtual Environment 7.1-7 J4125 UHD600
使用 PVE 7.1-7 最新版本目前全网没有任何资料,折腾了三个晚上终于成了,现在写个教程
开启直通
首先有一个特别重要的事情,需要在bios里开启vt-d,csm,并且video必须是legacy,否则直通显卡后虚拟机直接无法启动,至于pve用什么方式启动这个无所谓
nano /etc/default/grub
把 GRUB_CMDLINE_LINUX_DEFAULT 那行改成这样
这是GVT模式,也就是共享模式,少部分cpu支持,但体验很好
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 video=efifb:off"
这是独占模式,都支持,但显示器没有pve的控制台输出,也只能直通个一个虚拟机
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off"
nano /etc/modules
把这些填进去
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
kvmgt
允许不安全中断
nano /etc/modprobe.d/iommu_unsafe_interrupts.conf
把这行填进去
options vfio_iommu_type1 allow_unsafe_interrupts=1
避免死机
nano /etc/modprobe.d/kvm.conf
把这行填进去
options kvm ignore_msrs=1
更新引导和内核,然后重启pve
update-initramfs -u
update-grub
查看核显pcie设备id,记下来,待会用到
lspci -nn
从这里可以看出,核显位置是在00:02.0,并且id是8086:3185,下面的声卡同理
00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 600] [8086:3185] (rev 06)
00:0e.0 Audio device [0403]: Intel Corporation Celeron/Pentium Silver Processor High Definition Audio [8086:3198] (rev 06
上面改了GVT模式的,先看看核显支不支持GVT,这个文件夹下面有i915-GVT之类就是支持,可以同时直通给多个虚拟机同时用,并且直接在图形界面选了就行,后面不用看了
不支持的话,看上面重改/etc/default/grub换成独占模式,重启,然后继续后面的步骤
ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types
添加到vfio的配置中,如果hdmi无法显示,那请去掉这条配置
nano /etc/modprobe.d/vfio.conf
举个例子,两组id自己改成自己的
options vfio-pci ids=8086:3185,8086:3198
屏蔽驱动
nano /etc/modprobe.d/blacklist.conf
把这些填进去
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
提取 vbios.bin
如果您也是J4125,那么你可以直接用这个改好的 j4125.zip,解压了把它放到/usr/share/kvm中,然后配置虚拟机
另外群友 心- 提供了另一个,如果你的4125怎么都不亮,可以试试这个vbios vbios_j4125.bin.zip
必须开csm并且设置成传统的video才能读出来,没有vbios大概也能用,懒的话可以先试试插HDMI能不能亮
进去核显的位置并且提取vbios,举个例子,位置换成你自己的
cd /sys/bus/pci/devices/0000:02:00.0
echo 1 > rom
cat rom > /usr/share/kvm/vbios.bin
echo 0 > rom
安装工具
apt install gcc make git
cd ~
git clone https://github.com/awilliam/rom-parser
cd rom-parser
make
修复id不对的问题,举个例子,按提示改成你自己的id
./rom-fixer /usr/share/kvm/vbios.bin
Valid ROM signature found @0h, PCIR offset 40h
PCIR: type 0 (x86 PC-AT), vendor: 8086, device: 15f3, class: 020000
PCIR: revision 3, vendor revision: 201
Modify vendor ID 8086? (y/n): n
Modify device ID 15f3? (y/n): y
New device ID: 3185
Overwrite device ID with 3185? (y/n): y
Valid ROM signature found @f000h, PCIR offset 1ch
PCIR: type 3 (EFI), vendor: 8086, device: 15f3, class: 000000
PCIR: revision 3, vendor revision: 902
EFI: Signature Valid, Subsystem: Boot, Machine: X64
Modify vendor ID 8086? (y/n): n
Modify device ID 15f3? (y/n): y
New device ID: 3185
Overwrite device ID with 3185? (y/n): y
Last image
ROM checksum is invalid, fix? (y/n): y
配置虚拟机
我这里是一个win10 ltsc的虚拟机,虚拟机id是100,请注意下面的命令里的虚拟机id改成你自己的
在图形界面上虚拟机硬件添加pci设备,只需要勾选PCI-Express
回到命令行,改虚拟机配置文件
nano /etc/pve/qemu-server/100.conf
在显卡那条hostpci的最后加上,romfile=vbios.bin
hostpci0: 0000:00:02.0,pcie=1,romfile=vbios.bin
如果上面的方法不行,那就删掉hostpci0那行,在文件最上面加上这行,并且把 显示 设置成 无,不加romfile大概也能用,可以先试试
args: -device vfio-pci,host=00:02.0,addr=0x02,x-igd-gms=1,romfile=vbios.bin
然后开虚拟机装驱动就完事了,虚拟机必须是SeaBIOS的传统启动,此处显卡驱动必须得是26.20.100.7262版本的,不然就会黄三角,已经往咩咩乐园群共享传了一份,可以去下载在设备管理器手动装
测试过好了之后,去编辑把主gpu勾上,这样虚拟机的bios都会显示在显示器上了
其他
- n5105实测没法直通,通进去了也是没有任何硬件加速的,intel在驱动里下毒了
- 虚拟机里声卡明明有设备有驱动用不了,其实不是声卡驱动问题,而是要关机物理机再开机,第一次开直通的虚拟机的时候声卡就是可以用的,但是虚拟机再次开机声卡就用不了了,又是intel搞的鬼
- 顺便扯一下,在bios的 Device... -> OVMF... 中可以修改虚拟显示器的分辨率,或者使用spice都可以修改默认的800x600
如果咩咩的文章对你有帮助,您可以 请我喝牛奶
新年好!我也搞了个PVE,不小心安装7.17,下面黑裙,直通核显时出现假死。删除核显正常。
错误提示:TASK ERROR: start failed: command '/usr/bin/kvm -id 101 -name DSM918 -no-shutdown -chardev 'socket,id=qmp,path=/var/run/qemu-server/101.qmp,server=on,wait=off' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/101.pid -daemonize -smbios 'type=1,uuid=11425aa8-7d61-4100-8033-90160cd44b3e' -smp '4,sockets=1,cores=4,maxcpus=4' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vnc 'unix:/var/run/qemu-server/101.vnc,password=on' -cpu kvm64,enforce,+kvm_pv_eoi,+kvm_pv_unhalt,+lahf_lm,+sep -m 4096 -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' -device 'vmgenid,guid=e781786f-5a02-44c7-b229-1f8cdba4b146' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'vfio-pci,host=0000:00:02.0,id=hostpci0,bus=pci.0,addr=0x10' -device 'VGA,id=vga,bus=pci.0,addr=0x2' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:f6dd46847d2' -drive 'if=none,id=drive-ide2,media=cdrom,aio=io_uring' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=100' -device 'ahci,id=ahci0,multifunction=on,bus=pci.0,addr=0x7' -drive 'file=/dev/pve/vm-101-disk-0,if=none,id=drive-sata0,format=raw,cache=none,aio=io_uring,detect-zeroes=on' -device 'ide-hd,bus=ahci0.0,drive=drive-sata0,id=sata0' -drive 'file=/dev/disk/by-id/ata-WDC_WD5000AADS-00S9B0_WD-WCAV98087516,if=none,id=drive-sata1,format=raw,cache=none,aio=io_uring,detect-zeroes=on' -device 'ide-hd,bus=ahci0.1,drive=drive-sata1,id=sata1' -drive 'file=/dev/disk/by-id/ata-WDC_WD5000AADS-67S9B1_WD-WCAV99551899,if=none,id=drive-sata2,format=raw,cache=none,aio=io_uring,detect-zeroes=on' -device 'ide-hd,bus=ahci0.2,drive=drive-sata2,id=sata2' -netdev 'type=tap,id=net0,ifname=tap101i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown' -device 'e1000,mac=82:BE:10:DE:08:6B,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=101' -machine 'type=pc+pve0' -device 'qemu-xhci,addr=0x18' -drive 'id=synoboot,file=/var/lib/vz/template/iso/synoboot.img,if=none,format=raw' -device 'usb-storage,id=synoboot,drive=synoboot,bootindex=5'' failed: got timeout
羊羊大佬 加了你的QQ群 群文件或者群共享里面没找到这个显卡驱动能麻烦指导一下嘛 群昵称 hi丁一
现在有了
qq群号多少啊
是b站的粉丝群
成功了,高版本挺坑的,只有你这个方法能用,但GVT模式用不了。
同4125。谢谢了!
声音的问题解决没有?我只能弄个usb声卡了
有个问题,我提取 vbios.bin
显示-bash: rom: Permission denied
为什么权限不够
首先要开csm,其次要用root
cd /sys/bus/pci/devices/0000:02:00.0
echo 1 > rom
cat rom > /usr/share/kvm/vbios.bin
echo 0 > rom
0000:02:00.0不正确,应该是0000:00:02.0
这没有绝对的对与不对,不同的硬件地址可能就不一样,我的就是在这里,请学会举一反三
羊羊大佬 同问HDMI声音问题 网上查了很多人说删除声卡驱动再安装可以 但是尝试了下也不行 问下你的解决了吗?
其实重点不是重装声卡驱动,而是要关机物理机再开机,第一次开直通的虚拟机的时候声卡就是可以用的,但是虚拟机再次开机声卡就用不了了,又是intel搞的鬼
现在设置虚拟机自启,重启物理机直通连HDMI声音图标还是红叉。。看恩山有网友弄好的试了方案还是不行。。All in one太难了。。
咩咩这里带上vbios,装好驱动,开机启动虚拟机是可以用的,注意物理机要关机在开而不是重启
回来报个到,按直通操作,显卡没问题声音有红叉,删除掉romfile那项恢复声音了。。不想再折腾了。。给同样问题的朋友参考
试试开启 Windows 休眠,有奇效
连重启 Windows 丢声卡都能恢复(休眠再开机)
所以这个锅可能是微软的
咩咩大佬。我是I5-4590装的PVE7.2,群晖里面可以看到核显,命令测试驱动都已经挂载上了,但是硬解H265一直不成功,现在并没有提取vbios,想请问群晖需要提取vbios吗?还有没有其他需要排查的方向
DSM7对h265有解码限制
咩咩,请问有没有什么办法可以曲线救国~~~
另外你的hdmi正常输出吗?另外比较简单的测试方法是docker跑一个https://hub.docker.com/r/80x86/filebrowser试一下普通的ffmpeg能不能正常的转码,如果可以,说明显卡驱动和直通是好的,群晖要全洗白或者换ffmpeg,如果不行,换成ubuntu试试显卡硬件加速,能用的话,换群晖的显卡驱动
大佬,我是I5-4590装的PVE7.2.4,直通核显到win10折腾了好几天了,HDMI没输出。各种蓝屏死机,是因为核显驱动不对吗?我是技嘉B85M主板,没见bios里面有csm~
PS:给个群号,B站关注了
首先技嘉的b85绝对有csm,因为我也有一套,蓝屏死机确实是驱动不对,群的话置顶动态有
按照步骤一步步走,最后还是不行
启动DSM提示
No IOMMU detected, please activate it.See Documentation for further information.
检查bios设置
7-2新内核不行只能更换低版本
羊大佬,我装完win10直通后界面看不到鼠标光标,但是在远程后能看的,这个有解决办法么
羊大佬,win10还是没法直通。。
我用PVE7.2-3折腾了J4125两天,不行。一启动虚拟机PVE就会崩溃重启。
N6005可以直通吗?
8代之后的核显大概都不行,简单点说就是除了hdxxx和uhdxxx后面更新的高性能核显都不行,前面的这些型号其实都用的同一个驱动,后面新的这项是全新架构
同样J4125工控机,win10声音显示红叉叉,请问是什么原因
声音只有在开机启动的虚拟机,并且是第一次启动,并且vbios也要对,才能用,建议用usb声卡
我10代 通win10不可以呢怎么
当然不行,那核显没法通,intel把直通ban了
我的电脑没有legacy模式,只有uefi,哪个pve版本可以核显直通装win10呢,折腾了我好几天了
理论上没有,但是可以试试文章里这个版本的前一个或前两个版本,虚拟机可以导出备份的这样测试比较快,另外注意必须是8代的uhd核显或者之前的核显才能通,10代开始Intel在驱动里加屎了没一个驱动能用的
echo 1 > rom
cat rom > /usr/share/kvm/vbios.bin
echo 0 > rom
提示:
cat: rom: Invalid argument
没有权限,注意要开csm
羊羊大佬,问一下,同样 j4125,esxi8.0 的 win10 虚拟机,UHD600 的核显有办法直通吗?也折腾好几天了,谢谢了~
exsi通进去能用就能用,不行就不行,要显示输出还是pve