找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 18339|回复: 131

[虚拟机相关] 畅网X86-P5 N100显卡直通 PVE+iKuai+iStore OS+Linux/Windows Server AlO 踩坑记

 火.. [复制链接]
本帖最后由 Ozzy_Yang 于 2023-10-4 12:10 编辑
声明:本人是纯小白,所以这不是教程,只是记录、分享,仅供论坛里的朋友们参考,中间肯定还会存在很多问题,欢迎跟帖指出并给出更好的建议方案!

一、系统框架

在恩山潜水了这么久,按耐不住买了一台迷你主机来玩,整个中秋节前后都在捣鼓这些东西,对我来说应该是相当大的工程了,踩了不少坑,遇到了不少麻烦,所以打算发个帖子记录一下,仅供参考。

首先简单介绍一下迷你主机畅网X86-P5的配置:
  • CPU:Intel N100 4核4线程 / UHD核心显卡 24E
  • 内存:单通道 8GB SO-DIMM DDR5 4800Mhz
  • 硬盘:金士顿 KC2500 500G PCIe3.0 NVMe SSD && 1TB HDD 移动硬盘 USB
  • 网卡:Intel i226-V
  • 主要接口:USB3.2 Gen2 * 2,2.5Gbps网口 * 2,HDMI2.0 * 2
PDD含券全套含电源767拿下,硬盘自己的老笔记本拆下来的,以后可能还会考虑升级一个USB2.0 * 4的面板,总觉得2个USB接口不够用,其次是升级内存,但是单条16GB的DDR5内存条价格是8GB的将近4倍,等等党永不为奴,真不是没钱(不是。。

既然是玩儿那当然直接往最麻烦的整,直接娃中娃套起,以下是系统的大概框架:


卑微的租房党,无法进入光猫后台所以网关地址只能是192.168.1.1,但是把10.0.0.1留了备用,PVE是10.0.0.2,路由系统和服务端是10.0.0.3~10.0.0.9如图所示,其它设备则分配剩下的地址。
  • PVE容器(10.0.0.2),弄虚拟机的好处除了多开服务,All In One之外,个人觉得应该要好好利用好备份、快照功能,这样折腾出了问题,可以及时回滚。
  • 主路由是iKuai(10.0.0.3),处理所有的跟网络相关的事情,充当DHCP服务器以及DNS服务器。
  • 旁路由是iStore OS(10.0.0.4),用于折腾各种乱七八糟的插件,以及各种特殊的需求。
  • 无线AP(10.0.0.5)由硬路由Redmi AX6s充当。
  • Linux Server(10.0.0.6),充当服务器,部署了Docker和1Panel。
  • Windows Server(10.0.0.7),主要是运行12306Bypass刷票,不刷票一般都会关闭。
简单上个图,Deepin和Windows系统是折腾着玩的。


二、第一层娃 — — PVE
版本选择了最新版的8.0+,用Ventory做好启动盘,然后把下载好的PVE的ISO镜像丢在U盘里面即可,当然也可以用其它的制作启动盘的工具,用到的工具、镜像以及参考的文档、教程,都设置了干净的超链接,方便有需要的朋友。

1.安装PVE
网口多的话要区分清楚自己的管理接口(Management Interface),一般在进行选择的时候,会默认选择已经和电脑(获取其它外部设备)连接的网口,网口的命名顺序和软路由厂商标记顺序可能是不一样的,我只有两个网口,enp1刚好对应的eth0。这两个信息是要用于登录后台的。


2.配置多个虚化的物理显卡并分配给虚拟机
选择最新的8.0.3版本的PVE,正是因为Linux内核是6.2+,可以对12代的核芯进行核显直通,主要参考的教程:Proxmox VE 8: Windows 11 vGPU (VT-d) Passthrough with Intel Alder Lake (derekseaman.com),一直整完Proxmox VE 8 Host Prep这一步即可。这个教程基本上是手把手教了,虽然是全英文,但是妥善利用好AI 翻译功能并结合图片演示,一步一步跟着来应该没啥问题。

这个教程的一个特点就是利用了N100支持VT-d的特性,SR-IOV技术可以把物理GPU虚化成多个GPU,让不同的虚拟机共享并且直通同一个物理GPU,其中的好处不言而喻。不过显卡直通确实挺麻烦,以下是我部署过程中踩到的坑点。

  • 要注意先换源,PVE默认开启了企业订阅源,运行apt update命令会报错,可以参考官方文档Host System Administration (proxmox.com)中的Package Repositories部分,配置好Proxmox VE No-Subscription Repository,也可以结合其它中文教程进行参考。
  • 把命令中所有的6.1改成6.2,可能是要和Linux Kernel版本配对,具体原理我也没搞清楚,不知道这么说对不对,但是这么做就对了。例如:
  1. PACKAGE_NAME="i915-sriov-dkms"
  2. PACKAGE_VERSION="6.1" #把6.1改成6.2
复制代码
  1. cd ..
  2. mv i915-sriov-dkms/ /usr/src/i915-sriov-dkms-6.1 #把6.1改成6.2
  3. apt update && apt install pve-headers-$(uname -r)
  4. apt install git dkms build-* unzip -y
复制代码
设置好后,还没有完,此时虚拟机本身仍然不能正确识别直通好的显卡,需要在对应的虚拟机中安装驱动,Docker容器还要格外设置显卡,反正层层套娃就完事儿,一步一步把物理GPU呈递进去,这部分内容放在下文详细记录。
然后分享一下成果,注意:蓝框中的GPU可以分配给任意虚拟机红框中的不要动!

  • 分配给虚拟机GPU的时候,首先一定要把CPU类别勾选为host。把显示指定为无,如果你知道如何在Linux虚拟机中直通指定显卡给Docker或者程序的话,那么可以选择VirtIO-GPU,这样的好处是在PVE的后台中仍然可以看到虚拟机的后台命令行或者WindowsServer的桌面;最后添加对应的PCIE接口,把显卡直通给虚拟机,不要勾选所有功能,并把主GPU勾选上。

PS:这部分流程可以在你已经安装配置好虚拟机,需要给虚拟机直通显卡的时候再来完成。

二、第二层娃 — — iKuai+iStore OS双路由+Redmi AX6s 无线AP

硬路由AX6s本来是买了刷OpenWRT的,但是没有那么多时间折腾,预算有限,相对应的性能也有限,再加上没有USB接口,几乎除了Magic之外,没有其它的玩法(主观意义上的),然后后面发现Magic服务偶尔会卡死,所以刷回了原厂系统,让它专职无线路由功能。虽然没有了160Mhz,但是米家的远程控制服务也得到了恢复,要注意米系路由器切换AP模式是在工作模式中,选择扩展现有有线网络,然后把硬路由的WAN口接入软路由的LAN口即可,不需要自己去开关DHCP服务器等设置,一键傻瓜配置,这是我个人很喜欢的地方

iKuaiiStore OS双路由,都选择的最新版本。

iKuai充当主路由,负责所有网络相关服务,保证网络的稳定正常运行,是兜底,其次硬路由也可以切换工作模式迅速恢复正常网络环境,是兜底中的兜底。10.0.0.3归iKuai,剩下的.4~.9静态分配给各种服务端设备或者虚拟机以及无线AP。内网其它设备需要分配IP地址时,从剩下的地址池里拿出来随机分配,并把网关指向iStore OS(10.0.0.4),DNS服务器则指向iKuai本身,因为除了分配公共DNS之外,还有DNS加速和反代理需求,后者是为了通过自定义域名访问内网服务端的各种后台。

iStore OS充当旁路由,很多功能都是开箱即用的, 设置起来比原生的OpenWRT更加方便,开发团队也在积极更新维护,并且在GitHub解决各种issue。事实上,就在我部署完后,最新版本的iStore OS已经支持了最新的12代核显,并且可以一键配置驱动,真的很酷。我没打算在iStore OS上部署Jellyfin,所以不需要直通显卡。
旁路由主要负责折腾,提供包括但不限于提供SMB挂载移动硬盘实现轻NAS服务,远程下载服务,NPS内网穿透服务,KMS服务器,Subconverter服务,Magic服务,未来还会有时间还会折腾更多的玩法。这样做的好处是折腾崩了,直接把旁路由下线,然后主路由中分配的网关指向主路由本身,网络就能直接恢复。更何况iStore本身提供的沙箱模式非常强大, 即使没有虚拟机的快照,也可以回滚,或许是小白作为旁路由的最佳选择。另外,主路由中一开始指向旁路由,也是为了能够方便的Magic,不然就得在需要Magic的设备上自己手动指定网关为旁路由。在做好充分备份的情况下,感觉网络崩溃的情况非常少,所以还是让主路由自动分配网关为旁路由。




1.网关和DNS代理的设置

分配给客户端设备的网关应指向旁路由,才可以让设备正确进行Magic,建议把O***C*a*h中的DNS服务关闭,这样在设备tracert查找路由表时才能完整正常显示,至于会存在什么其它问题,个人理解有限搞不清楚,有兴趣可以自行测试。如果有更优雅的方案,欢迎跟贴。


如果要让iKuai负责反代理和加速服务,那么分配给客户端设备的DNS必须指向iKuai本身,指向旁路由反代理以及加速功能均正常无法启用(即使勾选)。还有DNS加速模式必须选择代理模式,至于是UDP和DoH随意,据说后者更安全更不容易被运营商劫持,个人还没有用处差别。如果选择了缓存模式,也无法正常使用。


2.iStore OS中的NPC插件无法正常使用

简单来说就是,iStore中的NPC内网穿透插件无法正常使用,但是在iStore的Linux命令行以及另一个Linux虚拟机中直接部署NPC客服端可以正常使用,所远端的NPS服务器肯定是工作正常的。最神奇的是,结果后面不知怎么又可以使用了,此时并没有进行过任何额外的设置,真的有点玄学的意思了,甚至还在GitHub上提了Issue,后面发现可以使用后,又立马关了。。所以,当反复Debug反复测试,但是问题仍然存在的时候,不妨试试重启大法。

3.iStore OS中Docker的使用问题

我直接把iStore 中的Docker卸载掉了, 因为路由分配的性能挺有限,即使是用于折腾的路由还是希望路由系统专心提供跟网络相关的服务,所以不打算折腾Docker,Docker部署在专门的Linux Server上。官方文档中提到iStore OS不是魔改OpenWRT,只是在基础上增加了易用性,把属于iStore OS相关的模块卸载掉,那就是纯净的原生OpenWRT。所以我就把跟Docker相关的软件包直接卸载掉, 并且把iStore中的Docker插件全部隐藏,防止误装依赖Docker的插件导致各种报错。这里非常推荐有问题的去阅读iStore的官方文档,以及GitHub上的检索相关Issue,真的能解决很多问题。

总体来说,路由系统层面的设置问题是比较多的,虽然都是小问题,即使不理解但是通过反复的测试Debug也大多都能解决,以上问题和其原因只是单纯我通过主管测试分析得来的,不保证准确性,也不保证一定能复现。最后,善用快照、备份等功能,准备进行折腾时,做好恢复点,才是王道。说不定强制停止你的路由系统后,再开机它就不工作了,是的,我遇到了,然后利用快照恢复了。。。感觉接下来有时间要好好复习网工专业课的知识了。。



三、第三层娃 — — Ubuntu Server + 1Panel + Docker / Windows Server 安装显卡驱动

Ubuntu Server作为主要的服务器,提供一些面向内外网的服务,因此部署了1Panel并且分配了充足的性能。1Panel是一个开源的项目,个人觉得UI颜值很高,而且是完全基于Docker容器的方式可视化部署和管理服务,非常方便,至于没有用宝塔的原因懂得都懂,当然还有很多其它玩法,可自行参考文档玩一玩。目前还只部署了Jellyfin和Subconverter,之后还会部署游戏服务器用于测试。

Windows Server主要运行12306Bypass刷票,双节的票是真难抢,高铁也如此,也不知道是不是people日益增长的消费需求都从某大头转移到旅游上来了。同时也测试了一下显卡直通能否在Win上正常工作,主机性能比较强的小白可以考虑在Windows Server上部署Jellyfin或者Emby以及其它需要的服务,配置的门槛低了很多。

1.Ubuntu Server中安装i915显卡驱动以正确识别物理显卡

最大的坑还是显卡直通,安装的是22.04.3 LTS版本,默认内核不是6.2,而是5.5+(没记错的话),但是应该是包含了6.2的内核,可以查阅切换内核教程,一搜一大堆,我参考的是几种Linux系统切换内核启动顺序方法-阿里云开发者社区 (aliyun.com),找一个自己能用看得懂的就行,纯小白建议先做好系统快照。安装驱动的方法和在PVE Linux中配置方法大差不差,上面要注意的问题,这里也要注意到,除此之外还要注意以下几个问题:

  • 在Linux虚拟机中一般不需要7个虚化的物理GPU,因此只需要把下面代码i915.max_vfs=7中删掉,当然开7个也没啥问题。
  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7" #把i915.max_vfs=7删除
复制代码
  1. W: Possible missing firmware /lib/firmware/i915/mtl_gsc_102.0.0.1511.bin for module i915
  2. W: Possible missing firmware /lib/firmware/i915/mtl_huc_8.4.3_gsc.bin for module i915
复制代码
不过这还不是我踩到的最大的坑,最大的坑是这两个网站根本就没有我报错过程中所需要的对应版本的固件,如果有其他网站可以下载到更丰富、齐全的固件,可以跟贴分享一下,说不定就帮助到了有需要的朋友。我的解决办法是这样的,找到一个版本非常接近的固件,比如我需要的是mtl_huc_8.4.3_gsc.bin,我找到的是8.4.5,然后改成8.4.3,然后放到对应的/lib/firmware/i915/目录,然后运行update-initramfs -u命令,居然成功了,而且运行至今,也没有出现任何的问题,可能驱动这个东西真的是玄学,好吧。

然后重新启动Jellyfin服务,就可以设置相关的硬件解码了,需要硬件解码的格式可以全部勾选上,印象中应该都是支持的,在实际解码过程中,4K REMUX的转码非常稳定的,可以正确映射HDR到SDR,CPU占用率不到20%。


2.Windows Server中安装Intel显卡驱动以正确识别物理显卡

我安装的是最新的Window Server 2022版本,不论是Windows还是Windows Server安装显卡驱动都非常方便,直接下载官方驱动即可:Intel® Arc™ & Iris® Xe Graphics - Windows*,这个驱动支持Windows10和11,支持Window Server 2022 也没啥问题。但是要注意配置好远程桌面,参考PVE直通显卡教程中的Windows 11 Installation部分就行,非常简单,唯一要注意的地方应该是提前配置好远程登录服务,再把PVE中虚拟机的显示设置为无即可。


四、尾巴(废话,可跳过)

到这儿这个大工程就完成得差不多了,虽然花了很多时间,但是总觉得很值,不论是过程还是结果,都非常享受。毕业两年,对很多事情开始感觉到麻木,对电子产品、游戏的欲望被动的减少了很多,整个人进入到了一种低功耗的运转状态。这次拿下迷你主机折腾,感觉又找到了大学时玩摄影时纯碎的热爱的感觉,内啡肽和多巴胺的反复作用下,整个人处在一种非常兴奋的上瘾状态,脑子里都是这个事儿,部署成功后,仍然有一种意犹未尽的感觉。希望能奢侈地保持一点这样的状态,不断地吸取新知识,掌握新技能,找回属于自己的生活和学习状态。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1恩山币 +1 收起 理由
C7*** + 1

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
收藏慢慢看

点评

玩起来  详情 回复 发表于 2023-10-3 18:30
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层

玩起来
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

就看这文字很多  就知道很厉害

点评

小白但话痨  详情 回复 发表于 2023-10-3 22:22
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

好奇, 8G内存能套娃进去这么多玩意儿?不会出现内存不够?

点评

目前的运行占用内存情况:iKuai(480M/1G)+iStore OS(1.63G/2G)+ Ubuntu Server(1.61G/3.5G)+Window Server(1.69G/2G),总共是占用了5.5G,妥妥够了。但是Jellyfin进行解码的时候,会大量提高内存占用,比如  详情 回复 发表于 2023-10-3 22:35
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

你说巧不巧,我刚准备切换到这套配置,你就发了。我的也是N100+8+1T配置。现在就装一个OP跑,感觉这性能完全浪费了。打算连夜装上PVE试试。但是还是有点担心这么点内存和这个低功耗的U,怕带不动那么多的虚拟机。

点评

内存占用见楼下回复。之前没有配置显卡直通的时候,让CPU直接软解那肯定是飚满的。CPU在配置好显卡直通的情况,是完完全全的过剩状态,即使进行内网带宽压力测试(1000MWiFi6),CPU总占用也只会来到30%,那就算跑16  详情 回复 发表于 2023-10-3 22:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
2月的30号 发表于 2023-10-3 18:40
就看这文字很多  就知道很厉害

小白但话痨
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
xtmm725 发表于 2023-10-3 20:13
好奇, 8G内存能套娃进去这么多玩意儿?不会出现内存不够?

目前的运行占用内存情况:iKuai(480M/1G)+iStore OS(1.63G/2G)+ Ubuntu Server(1.61G/3.5G)+Window Server(1.69G/2G),总共是占用了5.5G,妥妥够了。但是Jellyfin进行解码的时候,会大量提高内存占用,比如解码上面的爱乐之城4K REMUX,内存会占用会涨到3.2G,刚刚好够用。之前只给2G内存的时候,是不够的,会影响到解码效率,甚至网络都会变卡,不过目前主要用法都是内网直推转码,推外网才转码,所以无所谓。

点评

这么多的虚拟机,你的CPU怎么分配的啊  详情 回复 发表于 2023-10-17 21:08
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 Ozzy_Yang 于 2023-10-3 23:05 编辑
dahaozi 发表于 2023-10-3 21:20
你说巧不巧,我刚准备切换到这套配置,你就发了。我的也是N100+8+1T配置。现在就装一个OP跑,感觉这性能完 ...

内存占用见楼上回复。之前没有配置显卡直通的时候,让CPU直接软解那肯定是飚满的。CPU在配置好显卡直通的情况,是完完全全的过剩状态,即使进行内网带宽压力测试(1000MWiFi6),CPU总占用也只会来到30%,那就算跑160Mhz的2000MWiFi6或者2.5G的有线网,性能也妥妥够了,所以折腾起来!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
感谢分享了,有时间了折腾

点评

一起踩坑(不是  详情 回复 发表于 2023-10-4 11:35
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

内容很新,学习一下。
另外,N100 不用风扇有没有问题?

点评

最好有风扇,被动散热的情况下,我目前四个虚拟机的常规负载下,散热鳍有体感明显的热度,开了风扇就很凉爽了。另外解码的时候是一定要风冷的,之后有空试试压力测试。  详情 回复 发表于 2023-10-4 12:13
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
290605562 发表于 2023-10-4 00:09
感谢分享了,有时间了折腾

一起踩坑(不是
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
zhanghweb9 发表于 2023-10-4 09:14
内容很新,学习一下。
另外,N100 不用风扇有没有问题?

最好有风扇,被动散热的情况下,我目前四个虚拟机的常规负载下,散热鳍有体感明显的热度,开了风扇就很凉爽了。另外解码的时候是一定要风冷的,之后有空试试压力测试。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼主太棒了,有没有可能ghost同样内容的固态硬盘,收点手续费卖出来给其他N100盒子直接用?

点评

这个可以有,技术上没啥问题  详情 回复 发表于 2023-10-4 16:58
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
jesseyu 发表于 2023-10-4 12:22
楼主太棒了,有没有可能ghost同样内容的固态硬盘,收点手续费卖出来给其他N100盒子直接用? ...

这个可以有,技术上没啥问题
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 14:45

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表