在使用 Thunderbolt DCH 驱动的电脑上更新设备固件

(English version is at the bottom of the page...)

TL;DR 具体过程请直接跳到这里

因为觉得eGPU挺酷的,所以就跑去淘来了一个技嘉的 Aorus Gaming Box,简直是发现了新大陆(原来独立显卡用起来这么爽的😆)。当然也发现了一些问题,所以需要去刷写一下官网上的新版固件(EC固件还好,通过设备的USB接口就可以刷;但主要是为了刷H2D固件,提升一下总线性能)。不过呢,刷固件这种事情怎么可能那么简单就搞定呢?这不,当头就是一棒:

0X208 SDK_SERVICE_NOT_FOUND

一番谷歌后发现网上有很多关于这个错误的帖子,其中有很多并没有什么帮助,大多都像 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 驱动(哇🤩)

Critical Intel Thunderbolt Software and Firmware Updates这真是不容易,于是乎我就下载了其中提到的固件升级包,解包试了一下,GUI 升级工具连打都打不开……不过却发现包里还有个命令行的升级工具(FwUpdateCmd.exe),于是死马当做活马医地运行了一下,竟然能检测到控制器还不报错(!!),瞬间就感觉看到了曙光……

FwUpdateCmd.exe这么一顿操作下来事情就变得很简单了……

一步一步教你如何在 装有 Thunderbolt DCH 驱动的电脑上刷写 Thunderbolt 设备的控制器固件

  1. 下载你所需要的固件升级包,解压缩或解包,并提取出里面的 .bin 固件文件
  2. 下载联想的固件升级包 n2ith04w.exe,解包(使用 innounp 或者直接双击运行都可以),直到得到 FwUpdateCmd.exe、FwUpdateApi.dll 和 FwUpdateDriverAPI.dll
  3. 将上述三个文件和固件 .bin 文件放在同一个文件夹中
  4. 打开管理员权限的命令提示符或 PowerShell,进入第三步创建的文件夹中,运行 FwUpdateCmd.exe 即可得到升级工具的使用说明
  5. 键入 FwUpdateCmd GetTopology 即可得到 Thunderbolt 控制器的 ID 和设备的 UUID (接下来升级需要这两个值)
    FwUpdateCmd GetTopology
  6. 根据工具帮助提示,运行 FwUpdateCmd FWUpdate <控制器 ID / 设备 UUID> <固件路径,即固件 .bin 文件的文件名>
  7. ???
  8. 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):

0X208 SDK_SERVICE_NOT_FOUNDActually 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 👍

  1. Download the firmware updater of your enclosure, and unpack it until you've got the .bin firmware image
  2. 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
  3. Put aforementioned three files and the firmware image (.bin file) into the same directory
  4. Open an escalated Command Prompt or PowerShell, go to the directory with firmware update tool and firmware image
  5. Run FwUpdateCmd.exe to see the usage info of this tool
  6. Run FwUpdateCmd GetTopology to make sure you can see the controller ID and device UUID of your device of choice
    FwUpdateCmd GetTopology
  7.  Just like the usage info suggested, update the firmware by invoke FwUpdateCmd FWUpdate <controller ID / device UUID> <imagePath>
  8. ???
  9. PROFIT!!🎆

Hopefully this helps 😀

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.