本帖最后由 丶企鹅未婚夫 于 2021-5-19 22:32 编辑
j4105在pve下面hdmi接口核显直通win10一定能成功的教程
说在前面:用此方法肯定是能直通成功并且HDMI有输出显示的,板载声卡也能够使用,但是缺点主要有两个。
1.pve控制台上面没有win10的画面输出
2.插HDMI之后,电视不开机的情况下启动win10虚拟机会让win10的虚拟机卡死。(这个缺点已经基本克服。这种情况是概率性的,也不一定100%出现。具体克服的办法是给cpu限制,我把cpu限制在3之后,连续测试10次,再无出现不开电 视虚拟机卡死的情况,具体见下图) 参考文章: 3.其他人以及个人的经验。 一、需要的准备 2.一个win10镜像(如果是ios格式只需准备镜像,如果是esd格式还需准备一个ios格式的pe)。 3.一个U盘(如果是ios格式的win10镜像则不需要U盘)。 4.一个装好proxmox的物理主机。 5.roxmox物理机BIOS开启虚拟化支持。 6.旧版的intel核心显卡驱动,我试了新版驱动会掉,旧版的没有问题,一切正常。建议使用intel_vga_26.20.100.7262这个版本,是我测试过不会掉的驱动,大家自己到网上去下载。 二、开启pve的核显直通。 1.启动内核IOMMU支持。 打开PVE节点的shell,输入命令: 开启IOMMU支持: 这是intel的: - GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off,vesafb:off"
复制代码 其中“iommu=pt”不是必须的,PT模式只在必要的时候开启设备的IOMMU转换,可以提高未直通设备PCIe的性能,建议添加。 添加完成之后如下图所示: 更新grub 2.加载硬件直通相关模。 在PVE的shell中输入: 查看modules中是否有这些PVE硬件直通相关的模块,如果没有就添加到文件末尾。 - vfio
- vfio_iommu_type1
- vfio_pci
- vfio_virqfd
复制代码 如下图所示: 3.添加驱动黑名单 编辑PVE系统的驱动黑名单配置文件: - vim /etc/modprobe.d/blacklist.conf
复制代码 这个文件原来不存在,打开里面是空白的,添加以下内容: - blacklist snd_hda_intel
- blacklist snd_hda_codec_hdmi
- blacklist i915
复制代码 如下图所示: 这些是PVE系统核显相关的驱动,添加到“blacklist.conf”文件后,PVE系统将不加载核显的驱动,留给虚拟机用。 4.将核显加入直通组。 VGA的那个就是你的核显,Audio是你的声卡。 其中00:02是代表组名,00:02.0是代表00:02组的第一个设备 通过组名查找id: 8086:3185是厂商ID:设备ID 记住显卡的id,添加到直通组: - vim /etc/modprobe.d/vfio.conf
复制代码 打开输入以下代码(这个文件也不存在): - options vfio-pci ids=8086:3185
复制代码 完成后如图所示: 或者直接用这个代码: - echo "options vfio-pci ids=8086:3185" > /etc/modprobe.d/vfio.conf
复制代码 注意:这里是我j4105主板的数据,其他主板或CPU核显和声卡的硬件ID会不一样,请根据实际情况添加。 下面更新配置信息。 5.重启proxmox主机。 6.重启上来之后检查模块是否正常加载: 有这样的显示就是正确的。 三、创建win10虚拟机。 这里说几个比较重要的点,大家直接照着我的来配置就行了。 1.系统bios类型选择默认的seaBIOS和默认的i440fx机器 2.硬盘类型选择SATA,如果你是SSD,则开启SSD仿真。 3.这里因为windows比较吃性能,所以选择核心是host模式。并且启用NUMA,把4个主机核心都分配给windows。 4.这里网络类型选择半虚拟化,别人测试性能要比E1000高一些。 5.最后再来看一下最终的配置,又多了几个,我标出来了。(这里也可以直接把你的声卡直通进去,没有影响,但是显卡这个时候不要直通,会出问题。) 你要是装ios格式的win10,只需要两个dvd驱动,一个装virtio-win驱动。另一个装win10的ios镜像即可。 你要是和我一样安装esd格式的精简版镜像,那需要2个DVD驱动和一个U盘。 一个DVD装pe,一个装virtio-win驱动。U盘里面装esd的镜像文件,并且直通到你的win10虚拟机里面。 如下图直通U盘。 四、开始安装win10 1.启动虚拟机,点击控制台,会自动进入到DVD驱动里面的win10安装,或者是你DVD里面的pe。 这部分不再描述,安装win10大家都应该清楚。 这里注意两点 ①使用精简版镜像的同学不要用adminadmin账号。要用自建账号,并且创建密码。开启远程登录需要账号和密码。而且用adminadmin登录的win10,挂载samba的时候会出现各种问题,所以用普通账户好一点。 ②使用WinNTSetup安装的同学,引导形式选择bios,不要选错成uefi模式了。 安装之后重启会自动进入win10,如果还是进去pe或者是重新安装,可以关闭win10虚拟机,设置引导顺序为sata0。 这里进去之后,因为我们使用的是半虚拟化的网卡,会显示你没有网络,没关系,继续就可以,进到桌面我们再安装网卡驱动。 注意,一定要自建普通账号,并且设置密码。 2.下面是进去虚拟机win10以后安装半虚拟化网卡驱动。 安装完毕网卡驱动之后,这里点击是。 3.然后开启虚拟机win10的远程桌面连接。 4.然后设置固定ip地址。并测试远程桌面是否成功。之后关闭win10。
下面就是最重要的操作了,大家一定要按照我的操作顺序执行,否则安装显卡驱动会卡死。
1.给win10的虚拟机添加核显直通,什么功能都不选,直接添加。hdmi口接上电视。 2.然后启动虚拟机,远程连接你的win10虚拟机。
这时候在设备管理器应该能够看到你的核显已经进来虚拟机了。那个图标下面带黄色三角符号的就是核显,这是没有安装驱动之前的状态。
3.把你的下载好的旧版驱动解压,然后通过远程连接直接复制到虚拟机里面,开始安装核显驱动。
4.先安装pci驱动,pci的驱动在virtio-win里面,直接选中整个virtio-win的文件夹让他自动搜索安装就行。
之后再安装核显驱动,核显驱动直接选择我们刚刚复制进去的核显驱动文件夹就行,这个安装的时候速度比较慢,大家稍微等一下。
这两个驱动的安装顺序我试过了,应该是可以互换的,但是别人说先安装pci驱动出问题的几率小一些。
安装方法和前面一样,都是先右键点击,然后点击更新驱动程序,然后浏览我的电脑以查找驱动程序。
安装完毕之后可以看到核显了,这时候你的电视上面应该是没有图像输出的。
5.关闭win10虚拟机。
6.删除刚刚直通的核显。
7.打开pve主机的shell。
输入:
- vim /etc/pve/qemu-server/249.conf
复制代码 (这个数字是你win10虚拟机的编号,我创建的时候编号是249,这里就用249.conf,你的是100,就换成100.conf)
在最后面加上这两行:
(00:02:0的id注意一下,是你核显的id,一般都是这个。)
- args: -device vfio-pci,host=00:02.0,addr=0x02
- vga: none
复制代码 保存之后查看你win10虚拟机的硬件,显示那一栏会自动变成无。也就是说以后我们在pve网页控制台,win10虚拟机的输出是没有的,只能通过远程连接和直通鼠标键盘来控制win10的桌面。 8.启动win10虚拟机。
启动后这个控制台的vnc界面是显示没有的。
但是你的电视这时候是有显示的。远程连接也是有显示的。
9.结束。一切正常。
最后再上几张我自己ALL IN ONE的图吧
pve的控制页面(一个2T的2.5寸5400转的硬盘休眠了,这里看不到,使用的时候才能看到温度)
pve的lxc容器alpine下嵌套的docker容器,现在开5个docker的情况
portainer
这是刚刚安装的win10用samba往2T硬盘上传数据的速度。
|