2026-10-04 全天排查的逐项实验台账。原则:同时只改一个变量;每次实验都挂记录仪(遥测 500ms + 功率 2.5s);用 monkey 压测(随机窗口/显示模式切换/NVENC 渲染各带毫秒时间戳)作为加速器;掉链即停并保留最后一条好数据。
🔧 硬件变量实验(每行独立,每行一个变量)
| 序 | 变量 | 结果 | 结论 |
|---|
| H01 | 把 4060 的 DP 线从第一根换成第二根(DP2.0) | 仍掉(93 分钟时) | ❌ DP 线不是元凶 |
| H02 | 断开菊花链第二台显示器,只留单屏 | 仍掉(14分24秒) | ❌ 菊花链/MST 不是必要条件 |
| H03 | 重新组装显卡坞、确认线材与电源 | 仍掉(61 分钟后) | ❌ 重装不是修复 |
| H04 | OCuLink 线重新走线,消除很窄的 U 型急弯、不再受压 | 仍掉(17分21秒) | ❌ 走线/应力不是元凶 |
| H05 | 外部电源线压死插到位(之前差一小截未完全插入) | 仍掉(17分21秒) | ❌ 外电源接触不是元凶 |
| H06 | 换用★全新 OCuLink 数据线 + ★全新外部电源线 | 仍掉(14分24秒) | ❌ 线材全部排除 |
| H07 | DP 线位置互换:第二根作前置、第一根作后置(菊花链) | 仍掉 | ❌ 线位不是变量 |
| H08 | ★ 坞内【驱动板→4060】供电线:带滤波 → 普通 1分2 8pin | monkey 3000 轮完整跑完,2小时8分31秒零掉链 | ✅ 唯一改变结果的一步 |
🔍 软件与配置审计(每行独立)
| 序 | 项 | 结果 |
|---|
| S01 | 两块显卡驱动升级到最新(4060 → 617.14 / 780M 保持 32.0.31041.3013) | 升级成功,但掉链照旧 → ❌ 与驱动版本无关 |
| S02 | NVIDIA 参数审计(功耗墙/频率/全部 throttle reasons) | 115W=默认、区间 90/138、所有 throttle Not Active(功耗墙累计 0.31 秒)→ 无被改坏的参数 |
| S03 | 死链前死因审计:`RmDisableInst2Sys=1`、`RmFbsrPagedDMA=1`、HAGS `HwSchMode=2` | 均为已知 eGPU 补丁/Windows 默认项,无异常 |
| S04 | TDR 注册表项(TdrDelay/TdrLevel/TdrDdiDelay) | 均不存在 → 保持驱动默认 |
| S05 | PowerMizer / NvCplApi Policies / HKCU 策略 | 键均不存在 → 电源管理未被手改、无策略锁 |
| S06 | PCIe 链接状态电源管理(ASPM) | AC = 关闭,DC = 中等省电 → OS 层 ASPM 已关,排除该开关 |
| S07 | NVIDIA 控制面板设置库文件时间戳 | = 开机时刻(驱动每次启动重写)→ 不能作为「最近改过设置」的证据 |
| S08 | 中断/MSI 设置 | 4060 `MSISupported=1`、★`MessageNumberLimit=1`(NVIDIA/AMD 的 INF 都没写这两项);用户裁定不改动该参数 |
| S09 | 关 ReBAR | 只治好另一个问题(开机微端口启动失败 `0xC000009A`),对掉链无效 → 保持关闭,不要改回 |
| S10 | 系统睡眠/Modern Standby | 本机仅支持 S0(S1/S2/S3 固件不支持);曾发现长待机后当天开始连环掉链的时间相关性 |
⚡ 压测实验(monkey,每行独立)
| 轮 | 时间 | 配置 | 存活 | 压测量 | 死亡形态 |
|---|
| M1 | 19:37 | 第二根 DP 线单屏 | 27 分(整机 93 分) | 60 轮 / 20 切换 / 30 编码 | monkey 结束后 10 秒 |
| M2 | 19:56 | 第一+第三根 DP 菊花链 2 台 | 13 分 57 秒 | 267 轮 / 44 切换 / 88 编码 | 编码任务中 |
| M3 | 20:50 | 第一根 DP 单屏 + OCuLink 重走线 + 电源压死 | 17 分 21 秒 | 451 轮 / 63 切换 / 125 编码 | `/internal` 后 4 秒 |
| M4 | 21:29 | 全新 OCuLink 线 + 全新电源线,菊花链 2 台 | 14 分 24 秒 | 373 轮 / 53 切换 / 105 编码 | `/internal` 后 2 秒 |
| M5 | 22:14 | ★ 坞内供电线换普通 1分2 8pin | 2 小时 8 分 31 秒,3000 轮完整跑完 | 500 切换 / 1000 编码全部完成 | 零掉链 |
💥 死亡形态的收敛(四次普爆都指向同一个瞬态)
| 轮 | 最后致命动作 | 距死亡 | 死前频率 | 死前 PCIe |
|---|
| M1 | `/extend`(脚本收尾切换) | 10 秒 | — | — |
| M2 | 编码任务中(死前 3 秒链路刚 gen1→gen4 重训) | — | 2505 MHz | gen4 x4 |
| M3 | `/internal` + 立即渲染 | 4 秒 | 2595 → ★585 MHz | gen2 x4 |
| M4 | `/internal` + 立即渲染 | 2 秒 | 2505 → ★240 MHz | gen1 x4 |
⇒ 共性:死亡都发生在“显示输出被拆除 → 再被唤醒重建显示/渲染状态”这个瞬态里,且死前总是伴随一次频率断崖(电流阶跃)。
🎯 决定性实验(枪管内供电线的 A/B)
| 配置 | 同一套压测序列的结果 |
|---|
| 旧【带滤波】供电线 | 最近三轮连续普爆:13分57秒 / 17分21秒 / 14分24秒 |
| 新【普通 1分2 8pin】供电线 | 500 次显示切换 + 1000 次编码 + 链路切速 6200+ 次采样:零掉链 |
⇒ 「显示切换+立即渲染」不是普适触发器,而是「该序列 + 某个硬件条件」的组合,而两次之间唯一差别就是那根供电线。用户据此判定为【带滤波的 8pin 供电线老化】。
📄 当日 WATCHDOG 转储清单(每个文件独立一行)
| # | 文件 | 大小(字节) | bugcheck | 类型 |
|---|
| 1 | WATCHDOG-20261004-0936.dmp | 1,645,743 | 0x117 VIDEO_TDR_TIMEOUT | 真掉链 |
| 2 | WATCHDOG-20261004-0949.dmp | 1,092,582 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链 |
| 3 | WATCHDOG-20261004-1058.dmp | 1,115,240 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链 |
| 4 | WATCHDOG-20261004-1059.dmp | 276,755 | 0x1B0 | 非掉链(驱动/链路看门狗) |
| 5 | WATCHDOG-20261004-1257.dmp | 281,329 | 0x1B0 | 非掉链 |
| 6 | WATCHDOG-20261004-1331.dmp | 1,117,179 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链 |
| 7 | WATCHDOG-20261004-1433.dmp | 1,236,451 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链(采到完整临死遥测) |
| 8 | WATCHDOG-20261004-1544.dmp | 1,165,145 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链 |
| 9 | WATCHDOG-20261004-1637.dmp | 281,009 | 0x1B0 | 非掉链(装驱动时) |
| 10 | WATCHDOG-20261004-1751.dmp | 1,126,765 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链 |
| 11 | WATCHDOG-20261004-1941.dmp | 1,304,068 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链(M1 那轮) |
| 12 | WATCHDOG-20261004-2010.dmp | 1,085,284 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链(M2 那轮) |
| 13 | WATCHDOG-20261004-2018.dmp | 276,051 | 0x1B0 | 非掉链 |
| 14 | WATCHDOG-20261004-2025.dmp | 281,105 | 0x193 | 非掉链(dxgkrnl 实时转储) |
| 15 | WATCHDOG-20261004-2107.dmp | 1,001,166 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链(M3 那轮) |
| 16 | WATCHDOG-20261004-2120.dmp | 676,728 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链(前一状态余波) |
| 17 | WATCHDOG-20261004-2143.dmp | 1,052,690 | 0x141 VIDEO_ENGINE_TIMEOUT | 真掉链(M4 那轮) |
合计:真掉链 12 次(0x141 ×11 + 0x117 ×1)、非掉链类 5 次,共 17 个转储。
🧰 当日使用的工具(均位于 Hermes profile 的 scratch 目录)
| 脚本 | 用途 |
|---|
egpu-trace.ps1 | 遥测记录仪,500ms,字段自发现(温度/频率/占用/显存/风扇/PCIe gen+width+replay/throttle/pstate),失联即停并保留最后一条好数据 |
egpu-power.ps1 | 功率记录仪,2.5s 采 nvidia-smi 的 Power 字段(★已证为假值,仅留档) |
egpu-monkey.ps1 | 随机窗口/显示模式/NVENC 渲染压测,带毫秒时间戳,掉链即停 |
egpu-trigger.ps1 | 快速触发器:循环「显示模式切换 → 立即渲染」,分钟级判决 |
egpu-postreboot.ps1 | 重启后一键拉起检查(卡状态/链路/显示器归属/屏幕数/ASPM/转储清单) |
egpu-settings-audit.ps1 | 4060 只读参数审计(11 个节,全量) |
取证归档:savedata\egpu-forensics\(72 文件 / 6.3 MB,含全部轮次的遥测、功率、monkey、脚本、审计报告)