PC_Shopping 板


LINE

前言 小弟有组一台黑X晖的NAS 因为所需服务都已经找到替代的开源方案,好像也没有理由再继续用黑X晖了 再加上上次手贱点个升级结果系统挂点==,花几个小时才修好 想了想还是转往Proxmox + TrueNAS的方案比较安心 因此在拆掉前来记录兼分享下在黑X晖平台上玩的VMM内显直通方案 *先声明本篇没有要推广黑X晖,相反的想在这上面搞些有的没的真的麻烦超级多 还有整个过程在其他KVM环境也都通用,非限制於黑X晖才可用 以下正文开始 我的平台是AMD Ryzen3 5350GE + Asrock B450m Pro4 + 40G ECC RAM (往回翻的话这张消费级主板已经24/7服役进入第七年惹 周边都换一轮剩他还在 真的妖) 周边有张4 port HBA卡跟10G光口洋垃圾网卡 硬碟共4颗HDD/2颗SATA SSD/1条NVME SSD当cache 这样的组合常驻功耗大概落在90-100W之间 https://imgur.com/42WV9JU https://imgur.com/5nrxrrL https://imgur.com/I1nvXee https://imgur.com/hgRg5F5 https://imgur.com/yK0ELMQ https://imgur.com/lyCszeC 帐面配置怎麽看这颗CPU只跑NAS实在是大材小用 因此也在黑X上额外跑了Ubuntu跟Windows虚拟机 玩到这边其实跑得顺风顺水,也算榨乾了整个系统的资源...吗? 并没有XDD,想折腾的心是无穷的,看着白花花银子买来的iGPU被晾在那就觉得不太爽 加上NAS是放在电视旁,想让Windows虚拟机可以直接显示输出到电视上 做到用电视看各种直播/影片,甚至是远端PC来大萤幕玩游戏的骚操作 所以就有了以下直通内显的曲折过程 ‧黑X晖VMM如何做到PCI Passthrough 虽然底层是KVM ,但显然VMM介面是不可能会串直通功能的,要做到大概就两种做法: a. 直接改虚拟机的xml设定 b. 用指令"virsh attach-device"直接把device分配给某台虚拟机 a作法就我所知是行不通,VMM似乎有自己维护的虚拟机设定档,每次VM开机都会盖掉xml 正解是b做法: 1. 先把device unbind echo "0000:${DEVICE}" > /sys/bus/pci/devices/0000:${DEVICE}/driver/unbind 那个${DEVICE}是PCIe device的vendor:product值 可以从lspci看到 2. 将想要分配出去的PCI device按照kvm所需格式填写xml档 https://imgur.com/fP8KJaZ 3. 把PCI device分配给VM virsh attach-device ${VM_NAME} *.xml 但这方法也不是很完美,因为每次VM重开机都要自行去执行一遍这个步骤 不过可用就是了 ‧IOMMU Group的坑 PCI Passthrough是以IOMMU Group为单位,因此如果你想直通的device分到的Group很糟 (例如这个Group内存在超多device) 那就头很痛了 可以用类似这种script来检查看看: https://gist.github.com/jabbas/a8785710a5e8655045fc0be67385e887 一般来说Group分配太烂可以尝试去BIOS打开ACS Enable选项,会好很多 然而惨的是Asrock B450m Pro4这张板子在使用5系列Ryzen的时候,这选项被阉掉了... 原因也很简单,这麽老的板子要支援更多AM4 CPU能做的也只有砍功能这一步 才能塞进去这麽小的BIOS内 (都支援5代了也不忍苛责XD) 只能说AM4产品周期长是好事,但也是有意想不到的副作用QQ 到这边几乎觉得是死局了... 但!!直到找到这篇讨论: https://www.reddit.com/r/ASRock/comments/pfza16/deskmini_x300_bios_with_acs_enable/ 在Asrock B450F的某版本BIOS开启PCIe ARI选项也可以跟ACS选项同样有好的Group分配 用相应AGESA版本的BIOS刷到B450m後就成功啦! 正常的结果应该如下: https://imgur.com/3zeUbbi 可以看到目标的VGA compatible controller单独在Group 13 只能说妖板不愧是妖板 BTW这资讯看起来还是寄信去Asrock原厂问到的 连这种小众的需求都愿意回真的太棒惹 ╰(⊙Д⊙)╮佛心公司╭(⊙Д⊙)╯佛心公司 ‧AMD GPU Passthrough的坑 用上面的作法依样画葫芦把AMD iGPU passthrough之後进到Windows始终显示Error 43 首先有个怀疑的点: virsh attach-device时间点太慢了 由於这指令必须要在VM开机後才可以下 从按下开机到attach都跑过BIOS了可能真的太晚 有找到可以在KVM START阶段hook并且执行attach的方案: https://github.com/sramshaw/pci_coral_on_synology 魔改一下後就成功在BIOS前把iGPU attach上去了! 但还是Error 43,可拨QQ 再来网路上对於AMD iGPU的直通其实也满多资讯惹,很多作业可以抄 (虽然几乎都是Proxmox 但反正底都是KVM没差) 总结大概有几个问题待解: 1. GPU直通时要顺便带vbios 2. 直通给Windows要顺便把CPU的Audio直通过去 并且代AMDGopDriver 3. AMD Reset Bug 1/2要用一些tool把你当前iGPU的vbios跟AMDGopDriver导出来 或是可以去这边翻看看有没有相应型号的可以直接下载来用: https://github.com/isc30/ryzen-gpu-passthrough-proxmox 并且在做virsh attach-device时的xml里面要顺便带rom这个参数进去 此时Windows VM进去就不会Error 43了,到此算是完成惹~ https://imgur.com/YlNepUN 剩下一个AMD Reset Bug比较讨厌,可以安装这个Service: https://github.com/inga-lovinde/RadeonResetBugFix 它的作用是在Windows VM关机时会正常的把GPU关闭,等到下次VM开机时才可以正常init 但如果VM被强制关机或reboot那就没救了(e.g. 蓝屏) 只要上次GPU没有正常关闭那颗GPU就再也没办法被使用了,只能reboot host 另外我的经验是如果确定上次VM有正常关机但还是Error 43 可以直接重装GPU Driver并reboot VM,通常都能好 最後来看结果 Windows虚拟机可以直接HDMI连到电视 看实况YT都很顺 https://imgur.com/AlGlwVH 甚至透过10G内网远端到PC打个POE刷图都没问题 https://imgur.com/l1GINLY 就是画面有时候FPS会变低 这个需求CPU真的极限了XDD 解码速度上不去 另外,上面那些步骤实在太繁琐,小弟把此方案弄成一个简单的script: https://github.com/jcchen7566/SynoPassthru 不算是很无脑的script需要花一点时间了解在干麻,但只要配置好deploy完就一劳永逸了 目前用这方案半年多,除了Reset Bug常踩到要重开机很讨厌之外真的满稳定的 谢谢大家收看 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.34.178.145 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PC_Shopping/M.1764689918.A.BCD.html
1F:推 Saren: 赞哦 我的prime x370还在服役中 61.224.57.202 12/02 23:49
AM4真的赞 但现在板子不好买了 希望别挂掉
2F:推 sdbb: 谢谢112.104.153.164 12/02 23:59
3F:嘘 bodhi: 入境随俗 114.36.96.9 12/03 00:03
4F:推 E7lijah: 虽然门外汉不太懂但还是推分享 27.242.99.64 12/03 00:10
5F:推 Destiny6: 感谢分享 1.171.147.190 12/03 00:10
6F:嘘 bodhi: 风气 114.36.96.9 12/03 00:18
7F:推 AbeNana: 怎麽有JB... 114.136.145.58 12/03 00:38
roger788 roger788
8F:推 ATND: 推 118.168.234.43 12/03 00:40
※ 编辑: NCTUFAIWEN (1.34.178.145 台湾), 12/03/2025 00:45:33
9F:推 Koogeal: 小丑被A桶了.嘻嘻*(专业文推一个) 59.115.38.228 12/03 00:52
10F:推 smallreader: 推111.254.155.154 12/03 00:53
11F:推 BABU1990: 感谢大大无私分享,本来打算搞完一般服 220.130.152.29 12/03 01:04
12F:→ BABU1990: 务就放置,看到这篇之後一定要搞一搞了 220.130.152.29 12/03 01:04
13F:推 s25g5d4: 清一下灰尘好吗... 1.34.245.37 12/03 01:05
14F:推 s25g5d4: reset bug fix 在 6000 系显卡 (Navi20) 1.34.245.37 12/03 01:11
15F:→ s25g5d4: 之後就没用了,之後只能赌看看卡本身有没 1.34.245.37 12/03 01:11
16F:→ s25g5d4: 有 reset bug 1.34.245.37 12/03 01:11
17F:推 pphyy5844548: 推 39.15.25.255 12/03 01:24
18F:嘘 chenteddy: JB 223.137.210.75 12/03 02:45
19F:推 chenteddy: 补推 223.137.210.75 12/03 02:45
20F:嘘 litwild: 看个yt 、打个电动这麽累 223.137.60.20 12/03 06:05
21F:→ a22663564: 常驻等於一天要2.5度电,还不含作动功 180.214.182.79 12/03 07:02
22F:→ a22663564: 耗 180.214.182.79 12/03 07:02
23F:推 kanding255: 直通内显有什麽好处 效能好很多吗 49.217.61.139 12/03 07:05
24F:→ spfy: 自己动手乐趣多 合理 223.137.27.91 12/03 07:20
25F:推 kaj1983: 这操作太骚了 218.166.17.13 12/03 07:59
26F:推 autoupdate: 推 42.70.118.14 12/03 08:11
27F:推 s78513221: 太麻烦了 玩直通或虚拟化还是偏好 42.79.134.11 12/03 08:22
28F:→ s78513221: Intel,只要开SRIOV就解决了不折腾 42.79.134.11 12/03 08:22
29F:推 harry886901: 之前玩12700k 直通也是搞得要死要活 101.12.146.195 12/03 08:27
30F:推 nisioisin: 用不到但给技术分享给推 101.14.6.76 12/03 09:18
31F:推 w1222067: 不能被发现看不懂 先推 111.82.178.110 12/03 09:23
32F:推 ARui: 感谢分享 203.204.58.36 12/03 09:57
33F:推 neoark: 推实作心得,以後买小主机可以参考 101.8.139.25 12/03 11:39
34F:推 saito2190: YT上面一堆中国人搞这类All in ONE 1.161.186.114 12/03 12:37
35F:→ saito2190: 有很多解决方案可以参考 1.161.186.114 12/03 12:37
36F:→ saito2190: 我手上几台7840HS底层都是PVE 1.161.186.114 12/03 12:37
37F:→ saito2190: 然後通iGPU进去给Win用挂机游戏 1.161.186.114 12/03 12:37
38F:→ saito2190: 老实说黑群非常难用 不如买TrueNAS或 1.161.186.114 12/03 12:37
39F:→ saito2190: UnRAID 社群多又丰富 XD 1.161.186.114 12/03 12:37
40F:→ saito2190: 我是装VirtualDisplayDriver 不接萤幕 1.161.186.114 12/03 12:38
41F:→ saito2190: 通通用moonlight远端操作 1.161.186.114 12/03 12:38
42F:→ saito2190: Intel的SRIOV也不是万能解 我好几次Li 1.161.186.114 12/03 12:39
43F:→ saito2190: nux Kernel一更新整个跑掉 要重新编译 1.161.186.114 12/03 12:39
44F:→ saito2190: 顺带一提 不同机型的GopDriver不一定 1.161.186.114 12/03 12:42
45F:→ saito2190: 能通用,我用GMK K6导出给铭凡UM780不 1.161.186.114 12/03 12:42
46F:→ saito2190: 能用,最好还是自己导出自己的 1.161.186.114 12/03 12:42
47F:推 kuroshizu21: 写得如此详细, 即便自己应该不会这样 61.227.59.43 12/03 13:58
48F:→ kuroshizu21: 折腾自己, 还是觉得不推不行 XDDD 61.227.59.43 12/03 13:58
49F:推 jhjhs33504: 掉驱动问题 NV也曾容器化过渡期调很久 1.162.100.219 12/03 14:18
50F:推 a24606: 推!!之前搞VMM直通网卡给opnsense虚拟机 27.247.193.38 12/03 17:23
51F:→ a24606: 也是得挂一堆脚本,但成功後直接解放NAS 27.247.193.38 12/03 17:23
52F:推 Litfal: 不是应该先套一层PVE吧组储存和运算分离 123.110.136.43 12/03 19:23
53F:→ Litfal: 吗XD 123.110.136.43 12/03 19:23
54F:推 jack860719: 虚拟化玩家推一个 Intel这边其实也没223.139.113.112 12/03 19:28
55F:→ jack860719: 好多少 SRIOV好用但也并没无所不能 比223.139.113.112 12/03 19:28
56F:→ jack860719: 如上面大大提到的kernel编译223.139.113.112 12/03 19:28
57F:→ jack860719: 目前小弟是用N100当迷你server 兼具NA223.139.113.112 12/03 19:29
58F:→ jack860719: S WinVM 软路由223.139.113.112 12/03 19:29
59F:→ tomsawyer: 好杰宝 49.218.242.243 12/03 19:54







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP