通过 m.2 转 oculink 实现显卡外接
目前手上用的笔记本是 Thinkbook 14+ 2024 锐龙版, 由于 AMD 版本没有 TGX 接口, 想要实现外接显卡就只有 USB4 和 oculink 两种方案, 不过 50 系显卡似乎对雷电常用的 7440 主控兼容性不太好, 稳妥期间还是选择 oculink. 下面是全家福, 看着还是很不错的hh, 成本也不算高.
当然还有个重要因素是 oculink 的性能损失小很多, USB4 外接的有效带宽大概是GBPS, 而 oculink 和 PCIE 4*4 (理论
GbPS 也就是
GBPS)的带宽基本是一致的, 实际的话能跑到
GBPS 的样子, 相较于雷电方案翻倍了还不止. 雷电 5 的带宽倒是相当, 但是显卡坞的成本完全不在一个层次, 此外目前支持雷电 5 的设备也并不多.

硬件配置
要实现m.2 转 oculink 外接显卡, 需要 m.2 转 oculink 的转接板, oculink 显卡坞. 如果显卡坞没有自带电源还需要单独购置, 大多数情况下, 显卡坞使用的外部电源就是 PC 使用的 ATX 或 SFX 电源, 低功率的其实很便宜.
我是在鱼上蹲的长城 X5 550W, 只要百来块(电源不容易坏, 买二手性价比挺高的). 因为显卡坞场景只需要 24PIN 的主板供电和显卡供电, 所以更推荐买全模组电源, 避免多余的线材显得杂乱.
转接板
关于转接板淘宝上有很多比较成熟的产品, 开源宇宙和 DIY 两家还提供了 Thinkbook 的定制版本, 因为 Thinkbook 右侧有个隐藏式 USB 口, 刚好可以把旁边的 m.2 口转接出来, 不用 D 面开孔等破坏笔记本的操作.

关于转接板的安装可以参考Thinkbook2024 14+ 16+锐龙版改装oculink显卡坞,拆解改装外接实测_哔哩哔哩_bilibili, 当然转接板可以自己根据情况购置, Thinkbook 因为出货量比较大同时隐藏式 USB 很契合 oculink 转接可以买到定制版本(参考下面左图), 其他的笔记本大多数情况下就只能买下面右图中的版本, 同时在 D 面开孔实现 oculink 的外转.
个人觉得后者不是很友好, 保修没了和破坏外观不说, 每次需要外接都需要把笔记本支起来, 挺膈应的…

显卡坞
oculink 显卡坞因为不需要类似于 7440 这样的芯片, 成本相对而言低很多, 所以往往比雷电显卡坞便宜, 就能买到还不错的型号了. 除了电源功率需要满足要求外, oculink 外接一个很重要的功能是随机启停——因为 oculink 接口本质上是 PCIE, 消费级产品未必有热插拔的冗余设计, 稳妥起见, 开机需要严格遵守连接 oculink 线, 开启显卡坞, 启动笔记本的顺序, 关机则需要逆序执行.
其实断开连接可以在设备管理器中禁用设备后直接拔掉 oculink 线, 上面是最安全的方案.
但是有随机启停的话, 关机状态下通过 oculink 线连接笔记本和显卡坞之后只要笔记本开机显卡坞就给显卡自动上电, 关机则自动断电, 使用的体验感会好很多, 所有操作只需要在笔记本端完成.
驱动安装
完成上述操作之后, 连接好 oculink 线后开机. 对于 WIN 11 而言, 驱动的安装比较方便, 进设置里的 Windows 更新里点下检查更新后会弹出 Nvidia 驱动的提示, 直接安装就行.
否则的话就下个 Nvidia APP, 里面提供了驱动管理的接口. 但是这里有个问题, 因为显卡能识别但是报 43 错误, 启动 Nvidia APP 会一直转圈, 所以得优先解决下面的 43 报错问题后才能安装驱动.
这个时候大部分情况下从任务管理器中还是看不到外接的显卡, 打开设备管理器会发现外接的显卡有个感叹号, 右击后点进属性发现报 43 错误(参考下图, 图是网上找的, 当时配的时候没截).
这个实际上是 oculink 外接显卡老生常谈的问题了, 大部分情况下都是执行一个修复脚本(参考SCRIPT nvidia-error43-fixer | M.2, mPCIe, Expresscard eGPU), 脚本中的内容大致是检索存在 43 报错的显卡设备后为对应的注册表项添加RM1774520=1的键值. 这里同时提供一个通过注册表管理器插入键值的配置方法:
- 打开注册表编辑器后进入
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}目录, 其中会出现包括0000,0001等子目录; - 分别点开子目录, 找到其中与外接显卡匹配的目录(比如下图中包含
DriverDesc=NVIDIA Geforce RTX 3060的0000目录); - 之后在该目录下右键新建 DWORD 值, 命名为
RM1774520, 之后右键该项将值设置为1;
最终结果就是对应子目录下出现了下面第二个红框中的表项, 这样就算是大功告成了.


当然此时状态还没被更新, 重启或者进入设备管理器中将对应的显卡禁用后再启用下, 会发现感叹号已经消失了.
如果之前没用通过 WIN 11 自带的更新器安装驱动, Nvidia APP 在这个时候应该可以正常进入, 可以在其中安装最新的驱动.

性能测试
完成上面的配置之后当然是简单测试下性能, AIDA 64 提供的 GPGPU 提供了显卡带宽测试工具, 跑在 PCIE 4.0 4 下带宽在
之间都是合理的(理论上限也就
).

然后是鲁大师, 简单跑个分, 3060 本身性能不是特别高, 所以损耗可以忽略不计(甚至比普通的 3060 还高一点), 为了跑个分又得给鲁大师擦屁股,, 到处都是乱七八糟的快捷方式, 感觉系统已经被毁了, 准备放到黑名单里...

通过 GPUZ 可以查看 GPU 是否跑在正确的速率上, 下面左图显示的 PCIE 4 1.1 显然是不对的, 但这是因为没有负载的情况下显卡会进入休眠状态, 此时 PCIE 接口会自动切换为 1.1 而非 4.0. 需要验证的话可以放个视频或者开个游戏给显卡上点负载, 点下 GPUZ 的刷新就能看到正常跑在 PCIE
4 4.0 上了.
视频在后台播放时是不会渲染的, 所以显卡不在工作, 如果上面 AIDA64 的带宽速率是正常的就不用担心这里的显示问题.
