DMA 完全用不了?分步排查清单
环境毫无反应时,逐层测试。按顺序检查:卡通电、被枚举、驱动已绑定、读取程序已连接、找到 DTB、找到进程、功能正常绘制、光标能动、叠加层可见。
简短回答
按顺序测试九个环节:卡通电、卡被枚举、驱动已绑定、读取程序已连接、找到 DTB、找到进程、功能正常绘制、光标能动、叠加层可见。在第一个失败的环节停下,专门处理它,因为它后面的每个环节无论如何都会失败。
为什么按顺序测试比瞎猜强
一套 DMA 环境是由九个依赖环节组成的链条,第二个环节出故障,症状却可能出现在第七个环节。这就是为什么乱改设置感觉像是在推进,其实不然:你调整的是那些根本轮不到运行的环节。方法很枯燥,但永远有效:按顺序测试每个环节,在第一个失败的环节停下,只修它。在这个环节通过之前,链条上更靠后的一切都只是干扰。
九个环节(按顺序)
开始之前先把这张清单读一遍,并严格按顺序来,因为每个环节都依赖上一个环节成立。
- 1. 卡已通电
- 游戏主机已开机,卡上自带的指示灯表现符合板卡厂商文档的说明
- 2. 卡被枚举
- 插上卡的数据线后,副机(第二台电脑)上出现一个新的 USB 设备
- 3. 驱动已绑定
- 该设备是 FT601 桥接芯片,在设备管理器里没有黄色感叹号
- 4. 读取程序已连接
- 软件越过了设备阶段,没有 FT601 或 PCIe ID 报错
- 5. 找到 DTB
- 初始化完成:没有“Unable to locate valid DTB”这一行
- 6. 找到进程
- 游戏正在运行,软件解析到了游戏进程及其基址
- 7. 功能正常绘制
- 软件自带的预览或雷达在副机屏幕上显示实时数据
- 8. 光标能动
- 盒子能移动游戏主机(注意是游戏主机)上的光标,先在桌面上测试
- 9. 叠加层可见
- 显示链路能传输画面,叠加层落在应有的位置
如何测试每个环节
从上到下完整过一遍,记下在哪里停下。工单里其他所有内容加起来,都不如这一句话有价值。
- 先正确地给两台机器冷启动:彻底断电十秒,先开游戏主机,这样你测试的就不是一张假死的卡
- 环节 1:游戏主机进入桌面后,看卡上的指示灯。如果不亮,原因在插槽或插接,而不是软件
- 环节 2:盯着设备管理器,在副机那一端拔插卡的数据线,必须看到有设备出现和消失。如果没有任何变化,原因在端口、线材,或者你选错了卡上的接口
- 环节 3:确认新出现的设备是 FTDI FT601 桥接芯片,且没有黄色感叹号。有感叹号或显示为未知设备,说明你需要安装 D3XX 驱动并重新插拔
- 环节 4:启动软件,只看第一条报错。出现设备报错或 PCIe ID 报错就停在这一环,不用再往下看日志
- 环节 5:如果初始化时提到 DTB,就停下,按 DTB 报错指南的顺序处理:先内存映射(MMAP),再 BIOS 虚拟化,然后 USB 稳定性,最后冷启动
- 环节 6:启动游戏,进入主菜单,确认软件解析到了进程。在这个环节出现基址失败,通常意味着内存映射过期或缺失
- 环节 7:先在副机(注意是副机)上检查软件自带的屏幕数据,再去动任何显示硬件。如果那里的数据是实时的,卡这一侧就已经没问题了,剩下的所有问题都在输出端
- 环节 8:把盒子的 HID 线插在游戏主机上,在游戏主机的桌面上移动光标。先在游戏外测试,因为桌面上都不动,游戏里也不会动
- 环节 9:到这一步才接入融合器或采集链路。一根线一根线地重建视频链路,先从游戏主机直连显示器开始
警告
为什么只有第一个失败的环节才重要
如果卡根本没被枚举,任何 BIOS 设置、内存映射、重装驱动或重刷固件都改变不了这一点。花在它们上面的每一个小时,都花在了环境根本走不到的环节上。反过来,如果副机上已经在绘制实时数据,那卡、USB 链路、DTB 和进程就都已经验证没问题,问题就完全出在环境的输出这一半。
每个失败环节接下来该看什么
拿你停下的那个环节编号,从最右边一列对应的指南开始看。
| 停在 | 说明什么 | 接下来看 |
|---|---|---|
| 1 — 卡未通电 | 插槽、插接,或者游戏主机本身 | 板卡安装和 BIOS 设置页面,然后换一个 PCIe 插槽 |
| 2 — 始终没被枚举 | 端口、线材,或者插错了卡上的接口 | FTDI 驱动页面,然后看掉线诊断页面 |
| 3 — 驱动未绑定 | Windows 没有绑定任何驱动,或者绑错了 | FTDI 驱动页面:卸载时勾选删除驱动程序,重新插拔,再重新安装 |
| 4 — 读取程序连不上 | 第 1 层没有走完,或者缺少某个库文件 | 报错大全中第 1 层的各行 |
| 5 — DTB | 内存映射、虚拟化或读取稳定性 | DTB 专题页面,按上述顺序处理 |
| 6 — 进程或基址 | 内存映射过期,或者游戏没有完全启动 | 内存映射页面,然后重新生成映射 |
| 7 — 没有实时数据 | 初始化已通过,但功能层没有配置好,或者还没适配当前游戏版本 | 你所玩游戏的状态面板页面,然后带着报错原文开工单 |
| 8 — 光标不动 | 输入设备接线或端口配置 | 报错大全中第 3 层的各行 |
| 9 — 没有叠加层 | 视频链路、EDID 或分辨率不匹配 | 报错大全中第 4 层的各行 |
如果你说不出自己停在第几个环节,说明你还没真正过一遍。这是工单拖上一周最常见的原因。
开始之前准备好这些
- 一根确认正常的 USB 3 短数据线,单独留作基准线
- 能直接接触到游戏主机,方便你不慌不忙地重新插卡
- 板卡厂商关于指示灯的说明文档,或者卡上次正常工作时指示灯的照片
- 两台机器的 Windows 内部版本号,从 winver 里记下来
- 一个能记下哪个环节失败、以及报错原文的地方
- 一个小时的时间,期间两台机器上都不运行其他任何程序
提示
一次只改一个地方
改了五处再重测一次,这不叫测试。假设你同时换了线、换了端口、关了虚拟化、重新生成了映射,然后环境能用了。你什么也没搞明白,下次 Windows 更新之后也没法复现这次修复。改一处,重测一次,记一条笔记:头二十分钟感觉更慢,但一晚上下来反而更快。
排查清单常见问题
每一项都通过了,但游戏里什么都没显示。我卡在哪一环?
环节 7。硬件这一半已经验证没问题,剩下的原因是软件配置,或者功能层还没适配当前的游戏版本。开工单之前,先看看你所玩游戏的状态面板。
能不能直接跳到我觉得坏了的那个环节?
可以,大多数人就是这样浪费了一整晚。完整过一遍的全部价值就在于,它找到的是真正最先失败的那个环节,而不是你怀疑的那个。
完整过一遍要多久?
环境正常的话二十分钟;如果中途在某个环节停下来处理,就会更久。如果超过一个小时还没定位到是哪个环节,就记下你进行到了哪里,带着这些信息开工单。
前六个环节需要游戏在运行吗?
只有从环节 6 开始才需要。环节 1 到 5 都可以在游戏关闭的状态下测试,而且这样测更干净。
干净重装 Windows 有没有可能是正确的第一步?
没有。它会一次改变所有变量,却解决不了任何一个常见原因。它应该排在清单最后,在映射、BIOS、线材和冷启动都测过之后。
资料来源
这是团队排查一套完全不工作的环境时所用的顺序,九个环节来自实际工单,而不是某份公开文档。
继续阅读
仍然没有解决?在 Discord 提交工单
全部指南