Debian

為什麼 fwupd 不安裝任何韌體更新,即使它顯示許多可用更新?

  • January 25, 2020

TLDR:我安裝fwupd,檢查更新,告訴它安裝更新,然後重新啟動。之後,檢查更新只會再次顯示所有相同的更新,就好像它們沒有安裝一樣。


我在 Lenovo Thinkpad X1 Carbon 4th gen 上執行 Debian 10 Buster x64。可能無關緊要,但型號是 20FBCTO1WW。我正在嘗試使用fwupd來安裝韌體更新。我安裝它並啟動服務:

sudo apt-get install fwupd
sudo service fwupd start

列出所有有更新的設備:

root@london:~# fwupdmgr get-devices

20FBCTO1WW System Firmware
 DeviceId:             c66f3753f0a35b3874d65546d4b7b10896d44ce2
 Guid:                 81cba30b-c2d4-4e66-bcf3-69d81ba890b0
 Plugin:               uefi
 Flags:                internal|updatable|require-ac|supported|registered|needs-reboot
 Version:              0.1.8
 VersionLowest:        0.1.8
 Icon:                 computer
 Created:              2020-01-25

UEFI Device Firmware
 DeviceId:             6f92d954409bb3c145828fbbc0346c3ca12f2a9a
 Guid:                 cb3c1682-5386-4591-bd29-7c1f441b7ccb
 Plugin:               uefi
 Flags:                internal|updatable|require-ac|supported|registered|needs-reboot
 Version:              176.0.1202
 VersionLowest:        176.0.1202
 Icon:                 audio-card
 Created:              2020-01-25

SAMSUNG MZVKV512HAJH-000L1
 DeviceId:             310f45f1f223064b5c16bf6dff31146755a64480
 Guid:                 cce2386f-6d68-5f85-9f3f-ebead9288696 <- NVME\VEN_144D&DEV_A802&REV_01
 Guid:                 77bb4022-9503-586c-99b7-c8a64502da30 <- NVME\VEN_144D&DEV_A802
 Guid:                 8fd4ca73-d0ae-52e8-8977-461435c6f4cf <- NVME\VEN_144D
 Guid:                 e339432d-beab-53b2-9a9f-e0787a1ecb8b <- SAMSUNG MZVKV512HAJH-000L1
 Serial:               bla
 Summary:              NVM Express Solid State Drive
 Plugin:               nvme
 Flags:                internal|updatable|require-ac|registered|needs-reboot
 Vendor:               Samsung Electronics Co Ltd
 VendorId:             NVME:0x144D
 Version:              6L0QBXX7
 Icon:                 drive-harddisk
 Created:              2020-01-25

列出所有更新也顯示了很多(我省略了以節省空間):

root@london:~# fwupdmgr refresh

Fetching metadata https://cdn.fwupd.org/downloads/firmware.xml.gz
Downloading…             [***************************************]
Fetching signature https://cdn.fwupd.org/downloads/firmware.xml.gz.asc




root@london:~# fwupdmgr get-updates

20FBCTO1WW System Firmware has firmware updates:
GUID:                    81cba30b-c2d4-4e66-bcf3-69d81ba890b0
ID:                      com.lenovo.ThinkPadN1FET.firmware
Update Version:          0.1.42
Update Name:             ThinkPad X1 Carbon 4th / X1 Yoga 1st System Update
Update Summary:          Lenovo ThinkPad X1 Carbon 4th / X1 Yoga 1st System Firmware
Update Remote ID:        lvfs
Update Checksum:         SHA1(efb007a2bda94c96d60c349a6f24cc80d51d7322)
Update Location:         https://fwupd.org/downloads/a06bbb48aa46c90497459ac6e98157f2acfe1778-Lenovo-ThinkPad-X1Carbon4th-X1Yoga1st-SystemFirmware-1.42.cab
Update Description:      Lenovo ThinkPad X1 Carbon 4th / X1 Yoga 1st System Firmware Version 1.42

我執行更新:

root@london:~# fwupdmgr update -v

Downloading 0.1.42 for 20FBCTO1WW System Firmware...
(fwupdmgr:2813): FuCommon-DEBUG: 09:11:45.120: creating path /root/.cache/fwupd
(fwupdmgr:2813): FuMain-DEBUG: 09:11:45.132: skpping download as file already exists
(fwupdmgr:2813): Fwupd-DEBUG: 09:11:45.134: Emitting ::status-changed() [decompressing]
Decompressing…           [-                                      ](fwupdmgr:2813): Fwupd-DEBUG: 09:11:45.162: Emitting ::status-changed() [idle]
Decompressing…           [***************************************]
(fwupdmgr:2813): Fwupd-DEBUG: 09:11:45.162: Emitting ::status-changed() [waiting-for-auth]
Authenticating…          [ -                                     ](fwupdmgr:2813): Fwupd-DEBUG: 09:11:45.162: Emitting ::status-changed() [idle]
Authenticating…          [***************************************]
Could not check for auth: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PolicyKit1 was not provided by any .service files

我不明白關於等待授權的錯誤,因為我以 root 身份執行它。重新啟動後,fwupdmgr仍然顯示“沒有更新歷史記錄”。即使我直接安裝 .cab 韌體文件,它似乎仍然沒有更新:

fwupdmgr install --allow-reinstall /root/.cache/fwupd/a06bbb48aa46c90497459ac6e98157f2acfe1778-Lenovo-ThinkPad-X1Carbon4th-X1Yoga1st-SystemFirmware-1.42.cab

我究竟做錯了什麼?

相關錯誤是最後一行:

Could not check for auth: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PolicyKit1 was not provided by any .service files

安裝提供org.freedesktop.PolicyKit1文件的包:

sudo apt-get install policykit-1

假設所有其他fwupd配置正確,它應該執行更新。

引用自:https://unix.stackexchange.com/questions/564054