(English version is at the bottom of the page...)
TL;DR 具体过程请直接跳到这里
因为觉得eGPU挺酷的,所以就跑去淘来了一个技嘉的 Aorus Gaming Box,简直是发现了新大陆(原来独立显卡用起来这么爽的😆)。当然也发现了一些问题,所以需要去刷写一下官网上的新版固件(EC固件还好,通过设备的USB接口就可以刷;但主要是为了刷H2D固件,提升一下总线性能)。不过呢,刷固件这种事情怎么可能那么简单就搞定呢?这不,当头就是一棒:
一番谷歌后发现网上有很多关于这个错误的帖子,其中有很多并没有什么帮助,大多都像 Intel 的这个支持文章那样让你升级 Thunderbolt Software 到最新版本。不过最后主观地根据经验排除掉自认为没用的答案,总结了一下后了解到,无论是 Intel 论坛还是 Reddit,都提到了需要降级 Thunderbolt Software 才能使固件升级工具识别控制器。不过我的电脑是搭载 Ice Lake 芯片的啊,旧版本的 Thunderbolt Software 根本连装都装不上,必须要兼容 Thunderbolt Control Center 软件的驱动,即 DCH 驱动才行。不过在分析技嘉的固件升级包的时候,发现固件升级工具是直接照搬的 Intel NUC 的升级工具。我也下载了好几个其他 Thunderbolt 3 盒子的固件升级包,发现全都是用的 Intel 的升级工具。于是乎我就冒出了一个大胆的想法:如果能找到一个兼容 DCH 驱动的固件升级工具,那不就可以刷盒子的固件了嘛……
在下载了一些 Thunderbolt 固件升级包后,我发现无论是升级外接设备固件还是电脑内置的 Thunderbolt 控制器,使用的更新工具都是一样的。并且在这个过程中找到了 Reddit 上的这么一篇帖子,里面提到了联想的一篇知识库文章,竟然明确的写着哪几个升级包是支持 DCH 驱动的,哪些升级包只支持非 DCH 驱动(哇🤩)
这真是不容易,于是乎我就下载了其中提到的固件升级包,解包试了一下,GUI 升级工具连打都打不开……不过却发现包里还有个命令行的升级工具(FwUpdateCmd.exe),于是死马当做活马医地运行了一下,竟然能检测到控制器还不报错(!!),瞬间就感觉看到了曙光……
一步一步教你如何在 装有 Thunderbolt DCH 驱动的电脑上刷写 Thunderbolt 设备的控制器固件
- 下载你所需要的固件升级包,解压缩或解包,并提取出里面的 .bin 固件文件
- 下载联想的固件升级包 n2ith04w.exe,解包(使用 innounp 或者直接双击运行都可以),直到得到 FwUpdateCmd.exe、FwUpdateApi.dll 和 FwUpdateDriverAPI.dll
- 将上述三个文件和固件 .bin 文件放在同一个文件夹中
- 打开管理员权限的命令提示符或 PowerShell,进入第三步创建的文件夹中,运行 FwUpdateCmd.exe 即可得到升级工具的使用说明
- 键入 FwUpdateCmd GetTopology 即可得到 Thunderbolt 控制器的 ID 和设备的 UUID (接下来升级需要这两个值)
- 根据工具帮助提示,运行 FwUpdateCmd FWUpdate <控制器 ID / 设备 UUID> <固件路径,即固件 .bin 文件的文件名>
- ???
- PROFIT!! 🎆
希望这篇纠结的博文能够帮助到你🤝
Update Thunderbolt 3 device's firmware on computers with Thunderbolt DCH driver (i.e. Thunderbolt Control Center instead of Thunderbolt Software)
Yup, you've handed in your wallet and get yourself a glamorous eGPU enclosure, and now you want to squeeze every bit of its performance by update it to the latest firmware. And... You see this error (0x208 SDK_SERVICE_NOT_FOUND):
Actually there's nothing wrong with your gear, especially for those with an Ice Lake-equipped device. You're too late (or too early, depends on how do you see this) to the party - the firmware update tool is not compatible with DCH version of the Thunderbolt driver. After some digging, I have found some Lenovo's Thunderbolt firmware updaters come with a command line version of the update tool that can deal with Thunderbolt DCH driver without error. So let's get it started 👍
- Download the firmware updater of your enclosure, and unpack it until you've got the .bin firmware image
- Download this specific firmware updater from Lenovo's website. Unpack it (use innounp, or simply run it until it's been unpacked in C: drive) and you'll see these three files we need: FwUpdateCmd.exe, FwUpdateApi.dll and FwUpdateDriverAPI.dll
- Put aforementioned three files and the firmware image (.bin file) into the same directory
- Open an escalated Command Prompt or PowerShell, go to the directory with firmware update tool and firmware image
- Run FwUpdateCmd.exe to see the usage info of this tool
- Run FwUpdateCmd GetTopology to make sure you can see the controller ID and device UUID of your device of choice
- Just like the usage info suggested, update the firmware by invoke FwUpdateCmd FWUpdate <controller ID / device UUID> <imagePath>
- ???
- PROFIT!!🎆
Hopefully this helps 😀