我想应用某些固件更新。在 PC 供应商网站上,它仅适用于 Windows,以 exe 格式提供。通过fwupdmgr
更新可用,但版本不是最新的 - 与 exe 版本相差大约一年(根据随附的 exe txt 文件)
如何转换exe
为可以通过安装的格式fwupdmgr
?
我跑过:
$ fwupdmgr get-details file.exe
The input is not of cabinet format
为什么是“内阁”?在UEFI 维基:
UEFI Capsule 定义了固件到操作系统、现代且安全的固件更新接口。 [80] Windows 8、Windows 8.1、Windows 10[81] 和 Fwupd for Linux 支持 UEFI Capsule。
橱柜与胶囊相同还是胶囊使用橱柜格式还是......?
答案1
链接ThinkPad T480 的 Thunderbolt 控制器关键更新cab
给出了如何使用有效负载替换 Linux 固件更新 (LVFS)文件中的有效负载exe
并应用更新的示例:
这里是龙,你是你自己的,没有任何保证:
更新过程中还有一些注意事项:
- 在 BIOS 中禁用 TB Assist 模式(如果您需要,AssistTBT.bin 可能是 TB Assist 模式的正确固件)
- 使用 fwupgdmgr 更新 BIOS/UEFI,我今天/几天前收到了一个新更新,TB3 更新的自述文件表明您应该使用当前的系统固件
- 下载n24th09w.exe
- 您可以使用 innoextract 提取该文件
- 如前所述,您正在寻找 TBT.bin
- 下载之前提到的 T480s 的 LVFS 更新文件作为模板
- 这是一个 cab 文件,使用 cabextract 之类的工具来提取它
- 解压更新文件,将TBT.bin重命名为firmware.bin,去掉签名firmware.bin.asc
- 更改firmware.metainfo.xml第6行以包含TB3控制器的GUID(应为fe328c2d-5300-597b-a21d-991116db8ab6)
- 用lcab重新打包cab文件
- 使用 fwupdmgr 安装生成的文件
- 重新启动以获得良好的效果
或者:
您甚至不需要创建 CAB 文件。您可以将固件 bin 文件直接刷入控制器,风险自负:
sudo /usr/libexec/fwupd/fwupdate -a XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX TBT.bin
将 XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 替换为您设备的 GUID。
我尝试走以前的路,在检查cab
文件时fwupdmgr get-details
我了解到,除了firmware.metainfo.xml
符合<firmware type="flashed"
GUID 之外,我还必须更新以下行才能通过检查:
<checksum type="sha1" filename="firmware.bin"
<checksum type="sha256" filename="firmware.bin"
<size type="installed" # size in bytes of firmware.bin
的内容firmware.jcat
可以用 解压出来jcat-tool
,是一些PGP和PKCS7的数据,不需要修改就可以通过检查,另外firmware.bin.asc
上面说明中要删除的也包含PGP,可以保留在cab文件中(用它检查通过)。