我的系统当前在启动时显示出一些奇怪的行为。点击电源按钮几秒钟后就会出现 GUI 登录,但我的键盘和鼠标在大约一分钟内保持未通电状态。systemd-analyze
表明fwupd.service
问题所在:
$ systemd-analyze time
Startup finished in 12.573s (firmware) + 293ms (loader) + 3.710s (kernel) + 1min 2.907s (userspace) = 1min 19.485s
graphical.target reached after 5.434s in userspace
$ systemd-analyze blame
1min 705ms fwupd.service
4.083s plymouth-quit-wait.service
1.028s gpu-manager.service
925ms systemd-logind.service
708ms systemd-resolved.service
507ms accounts-daemon.service
490ms networkd-dispatcher.service
488ms system76-power.service
470ms fancontrol.service
437ms ModemManager.service
301ms systemd-journald.service
...
journalctl -u
表示fwupd
在某些设备上挂起:
Jun 25 21:25:49 pop_os systemd[1]: Starting Firmware update daemon...
Jun 25 21:25:50 pop_os fwupd[1501]: 01:25:50:0156 FuPluginUefi failed to add /sys/firmware/efi/esrt/entries/entry0: ESRT GUID '00000000-0000-0000-0000-000000000000' was not valid
Jun 25 21:26:50 pop_os systemd[1]: Started Firmware update daemon.
我尝试将指定的 GUID00000000-0000-0000-0000-000000000000
放入BlacklistDevices
变量 in 中/etc/fwupd/daemon.conf
,但这对启动时间没有影响。我还查看了该/sys/firmware/efi/esrt/entries/entry0
目录,该目录中的文件fw_class
包含上述 GUID。
这是输出fwupdmgr get-devices
:
$ fwupdmgr get-devices
To Be Filled By O.E.M.
│
├─PCIe SSD:
│ Device ID: 71b677ca0f1bc2c5b804fa1d59e52064ce589293
│ Summary: NVM Express Solid State Drive
│ Current version: ECFM12.3
│ Vendor: Phison Electronics Corporation (NVME:0x1987)
│ GUIDs: 8cb1e2fe-eb01-5508-9fb3-98add4bb7c34
│ a44eb54c-5441-56f2-8cc0-5e48964c6457
│ 8d128eab-f266-513f-81e7-910de65fd73a
│ Device Flags: • Internal device
│ • Updatable
│ • Requires AC power
│ • Supported on remote server
│ • Needs shutdown after installation
│ • Device is usable for the duration of the update
│
└─PS Audio USB Audio 2.0:
Device ID: aff287d984fc4f1ed8f1ab3b35e4650b1b1f6c22
Current version: 6.152
Vendor: PS Audio (USB:0x2616)
GUIDs: 0f7b0016-25d6-5bc5-a6e0-423dba203c62
1fd717ad-32ef-5d86-a59a-71fd73ed6aae
Device Flags: • Updatable
我的理解是,fwupd.service
在放弃并继续之前,在这个 ESRT GUID 条目上挂了整整一分钟。我的问题是:该条目到底是什么?我怎样才能阻止它减慢我的启动速度?
编辑:事实证明fwupd
根本不是问题,而是 Xbox One 无线适配器拖慢了速度。在不插入适配器的情况下启动完全解决了问题。
答案1
简短回答:您的系统的 UEFI 固件声称支持“UEFI 固件更新胶囊”机制,该机制允许所有操作系统以统一的方式提供系统固件更新(也称为“BIOS 更新”)。但您当前的固件版本显然在ESRT信息表而不是正确识别可更新的系统固件,因此尝试检查是否有更新的固件版本Linux 供应商固件服务正在失败。
fwupd
负责从系统固件读取 ESRT 信息表并查询该类型固件更新的可用性的插件的名称是uefi
,因此您可以尝试将BlacklistPlugins
您的行编辑/etc/fwupd/daemon.conf
为:
BlacklistPlugins=test;uefi
(假设您的配置文件已经包含该test
插件的默认黑名单,就像我的 Debian 10 上的那样)
这fwupd.service
是完全可选的,因此如果您更喜欢该解决方案,那么完全禁用它应该没有问题(systemctl mask fwupd.service
即使其他服务请求它也可以防止它自动启动)。但随后您需要以老式的方式自行查找适用于您的系统的任何固件更新。 :-)
幸运的是,系统供应商可能已在更新的 UEFI 固件版本中修复了该问题,因此将 UEFI 固件更新到最新的可用版本可能会解决该问题。