之前曾经介绍过 KDE 的新软件中心应用 Discover 整合了 fwupd 这个 Linux 中的固件更新功能。但是那时候用起来还是不太顺手。今天再次通过命令行尝试使用 fwupd 来更新 ThinkPad T470s 的固件,已经没有任何问题了,感觉非常方便,而且还可以选择以后再重新启动系统。
通过命令行的使用方法很简单。查询更新,
sudo fwupdmgr get-updates
如果有更新的话就可以直接下载安装,
sudo fwupdmgr update
看看我刚在 ThinkPad T470s 上查询和升级的结果(为了省地方,那些细节被我省略掉了),
# fwupdmgr get-updates Firmware metadata has not been updated for 30 days and may not be up to date. Update now? (Requires internet connection) [y|N]: y Fetching metadata https://cdn.fwupd.org/downloads/firmware.xml.gz Downloading… [***************************************] Fetching signature https://cdn.fwupd.org/downloads/firmware.xml.gz.asc Successfully downloaded new metadata: 5 local devices supported • Thunderbolt Controller has no available firmware updates • Unifying Receiver has the latest available firmware version 20HFCTO1WW │ ├─SAMSUNG MZVLW512HMJP-000L7: │ │ Device ID: .......... │ │ .......... .......... │ │ Device Flags: • Internal device │ │ • Updatable │ │ • Requires AC power │ │ • Supported on remote server │ │ • Needs a reboot after installation │ │ • Device is usable for the duration of the update │ │ │ └─PM961 Device Update: │ New version: 7L7QCXY7 │ .......... .......... │ Supported devices and firmware version : │ │ • SAMSUNG MZVLW512HMJP-000L7, fw 7L7QCXY7 │ • SAMSUNG MZVLW1T0HMLH-000L7, fw 7L7QCXY7 │ │ Supported Product Scope : │ │ • Lenovo ThinkPad. ThinkCentre. ThinkStation. IdeaCentre │ ├─System Firmware: │ │ .......... .......... │ │ │ ├─ThinkPad T470s System Update: │ │ .......... .......... │ │ │ ├─ThinkPad T470s System Update: │ │ .......... .......... │ │ │ └─ThinkPad T470s System Update: │ .......... .......... │ ├─UEFI Device Firmware: │ │ .......... .......... │ │ │ └─ThinkPad T470s Corporate ME Update: │ .......... .......... │ └─UEFI Device Firmware: │ .......... .......... │ └─ThinkPad T470s Embedded Controller Update: .......... ..........
然后执行升级,
# fwupdmgr update • Thunderbolt Controller has no available firmware updates Upgrade available for SAMSUNG MZVLW512HMJP-000L7 from 5L7QCXY7 to 7L7QCXY7 20HFCTO1WW must remain plugged into a power source for the duration of the update to avoid damage. Continue with update? [Y|n]: Y Downloading 7L7QCXY7 for SAMSUNG MZVLW512HMJP-000L7... Fetching firmware https://fwupd.org/downloads/486b0b2e66bfd6c4edf3667fa940434306722f3b52a57fde282d797542ec63f3-Lenovo-SAMSUNG-PM961-NVMe-7L7QCXY7_512GB_1TB.cab Downloading… [***************************************] Less than one minute remaining… Decompressing… [***************************************] Authenticating… [***************************************] Updating SAMSUNG MZVLW512HMJP-000L7… ] Writing… [***************************************] Successfully installed firmware Upgrade available for System Firmware from 0.1.33 to 0.1.36 20HFCTO1WW must remain plugged into a power source for the duration of the update to avoid damage. Continue with update? [Y|n]: Y Downloading 0.1.36 for System Firmware... Fetching firmware https://fwupd.org/downloads/9f5919c3e922568e8e6793bbf1ed4b3e916399ab1076f7dcacf5a7cf6cdfd514-Lenovo-ThinkPad-T470s-SystemFirmware-1.36.cab Downloading… [***************************************] Less than one minute remaining… Decompressing… [***************************************] Authenticating… [***************************************] Updating System Firmware…[***************************************] Scheduling… [***************************************] Successfully installed firmware Upgrade available for UEFI Device Firmware from 184.65.3590 to 184.70.3626 20HFCTO1WW must remain plugged into a power source for the duration of the update to avoid damage. Continue with update? [Y|n]: Y Downloading 184.70.3626 for UEFI Device Firmware... Fetching firmware https://fwupd.org/downloads/3e0b9142cec8eca0385734c759e4e3f1023e64cf-Lenovo-ThinkPad-T470s-CorporateMEFirmware-11.8.70.3626.cab Downloading… [***************************************] Less than one minute remaining… Decompressing… [***************************************] Authenticating… [***************************************] Updating UEFI Device Firmware…***********************************] Scheduling… [***************************************] Successfully installed firmware Upgrade available for UEFI Device Firmware from 0.1.20 to 0.1.21 20HFCTO1WW must remain plugged into a power source for the duration of the update to avoid damage. Continue with update? [Y|n]: Y Downloading 0.1.21 for UEFI Device Firmware... Fetching firmware https://fwupd.org/downloads/fd56cad96f216b4607434a202edd0c0e122d43c3-Lenovo-ThinkPad-T470s-ECFirmware-1.21.cab Downloading… [***************************************] Less than one minute remaining… Decompressing… [***************************************] Authenticating… [***************************************] Updating UEFI Device Firmware…***********************************] Scheduling… [***************************************] Successfully installed firmware • Unifying Receiver has the latest available firmware version An update requires a reboot to complete. Restart now? [y|N]: N
嗯,我很久没有更新了,所以看着内容有点多。
可以看到最后提示说需要重启系统。但是我们可以选择不立即重启。这比在 Windows 中更新固件要更便利。在 Windows 下使用 Lenovo 的升级程序更新固件的时候是需要立即重启才更新的。
不过这里的更新似乎没有 Lenovo 官网的更新及时。我看到官网提示说 BIOS 更新到 1.37 了,
1.37 (N1WUJ30W) 1.37 (N1WET58W) 1.21 (N1WHT39W) 01 2020/03/24 1.36 (N1WUJ29W) 1.36 (N1WET57W) 1.21 (N1WHT39W) 01 2019/12/23
但是这里才 0.1.36。好像版本号也不完全相同。
但是有个意外的惊喜。之前使用 Lenovo 官方的 NVME SSD 固件更新的时候,总是提示说我的 PM961 没有新固件,但是这里居然更新了。
更新 2020-09-23
下面的问题,BIOS 固件实际上并没有被更新,是因为 Tumbleweed 中缺少 fwupdate-efi
组件。虽然该问题已经提出来超过两年了,不过似乎没有任何进展。
更新 2020-04-04
经过重启系统以及反复尝试之后发现,BIOS 固件,也就是上面列表中的 System Firmware 和 UEFI Device Firmware,虽然总是显示更新成功,但是实际上并没有安装更新。目前原因和解决方案未知。通过 Windows 10 安装更新则没有问题。©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/hands-on-thinkpad-and-fwupd/>。转载请保留此信息及相应链接。
你好, 这个 fwupd 更新 bios 和 win 更新 bios 是等效的吗?
是说 只要一个系统内更新成功, 就可以吗.
之所以怀疑这个问题, 是因为 Linux 里 还有 linux-firmware 包,
这个东西 感觉 和 win 不是通用的, 好像是 linux 自己用, 还和 kernel driver 对应的.
Linux 里的 firmware 包没有包含 UEFI/BIOS 的固件更新。fwupd 更新的固件跟在 Windows 或者 BIOS 更新光盘提供的更新是一样的,都是设备商官方提供的。不过目前我还没有用 fwupd 成功更新 ThinkPad 的固件 :(
另外 我的 x1carbon gen7 最近翻车了:
电池时常抽风消失(检测不到电池), 有时又显示回来.
英文论坛里, 好像有一打人也遇到了.
这个问题我目前还没遇到过
根据archlinux wiki里,似乎是引导顺序的问题,重启后选择对应引导。
不知道呢。我重启的时候没发现引导菜单有变化。
https://github.com/fwupd/fwupd/wiki/LVFS-Triaged-Issue:-Failed-to-run-update-on-reboot
将Boot Order Lock禁用,重启后选择引导,可以成功更新。
看了您很多文章,学到挺多,以后能见到更多文章。抱拳….
谢谢 :) 原来是这样啊,刚好这里让禁用的”Boot Order Lock”和 secure boot 我的都是启用状态。
大家互相帮助,这才是效率最高的状态 :D