Mario Limonciello
20cc9eebc5
Try to only show DMI product name once
...
* libfwupd: export new property HostProduct
* clients: Use this property for setting the title of trees
Before:
```
○
├─XPS 13 7390 TPM 2.0:
│ Device ID: c56e9f77cfee65151bdef90310776f9d62827f5a
│ Summary: Platform TPM device
│ Current version: 7.2.1.0
│ Vendor: Dell Inc.
│ Update Error: Updating disabled due to TPM ownership
│ Flags: internal|require-ac|registered
└─XPS 13 7390 System Firmware:
Device ID: b6c08fb9e5384d9d101853cc1ca20cf0ce2df2e2
Current version: 0.1.1.1
Minimum Version: 0.1.1.1
Vendor: Dell Inc.
Flags: internal|updatable|require-ac|registered|needs-reboot
```
After:
```
XPS 13 7390
│
├─TPM 2.0:
│ Device ID: c56e9f77cfee65151bdef90310776f9d62827f5a
│ Summary: Platform TPM device
│ Current version: 7.2.1.0
│ Vendor: Dell Inc.
│ Update Error: Updating disabled due to TPM ownership
│ Flags: internal|require-ac|registered
└─System Firmware:
Device ID: b6c08fb9e5384d9d101853cc1ca20cf0ce2df2e2
Current version: 0.1.1.1
Minimum Version: 0.1.1.1
Vendor: Dell Inc.
Flags: internal|updatable|require-ac|registered|needs-reboot
```
2019-09-05 11:22:39 -05:00
Mario Limonciello
71d2f62dc2
trivial: update references of hughsie/fwupd to fwupd/fwupd
2019-08-22 09:47:52 -05:00
Mario Limonciello
8de8e3523a
trivial: uefi: set vendor name for system firwmare from DMI data
2019-08-21 12:37:06 -05:00
Mario Limonciello
e219a994dd
trivial: uefi: use UEFI-dummy for device ID instead of just uefi
2019-07-11 09:33:23 -07:00
Mario Limonciello
badef4daf3
trivial: fix error handling for non UEFI case ( #1220 )
2019-07-11 09:33:23 -07:00
Mario Limonciello
65a4894bba
uefi: Determine whether running in legacy mode or not ( Fixes : #1220 )
...
* In startup, check BIOS characteristics for UEFI supported instead of for /sys/firmware/uefi
* In coldplug check for /sys/firmware/uefi
* If /sys/firwmare/uefi missing, create a dummy device telling the user it is in legacy mode
2019-07-10 10:20:49 -07:00
Richard Hughes
49c99038eb
uefi: Provide a quirk to disable the use of the UX capsule
2019-06-05 11:12:07 +01:00
Mario Limonciello
53f0c585ed
trivial: uefi: use the path for efibootmgr that was detected
...
A failure report on LVFS shows that NixOS wasn't able to launch
efibootmgr.
2019-05-31 10:07:59 -05:00
Mario Limonciello
d83f5fe05e
trivial: uefi: clarify error message
...
Help people to debug when their ESP isn't found.
2019-05-20 10:59:54 -07:00
Richard Hughes
dfa9e11bb2
Allow handling FORCE for devices that subclass FuDevice
...
Pass FwupdInstallFlags down to the vfunc to allow us to check the flags when
parsing the firmware and updating the device.
2019-05-05 15:29:00 -05:00
Richard Hughes
5079f26f0e
Never guess the version format from the version string
...
This leads to madness, as some formats are supersets of the detected types,
e.g. 'intel-me' is detected as 'quad' and 'bcd' is detected as 'pair'.
Where the version format is defined in a specification or hardcoded in the
source use a hardcoded enum value, otherwise use a quirk override.
Additionally, warn if the version does not match the defined version format
2019-04-30 09:25:41 +01:00
Richard Hughes
c84b36c541
Export the version-format to clients
...
This allows a vendor to verify the VersionFormat of a device without running
the daemon in verbose mode.
2019-04-30 09:25:41 +01:00
Mario Limonciello
c73c02fa70
trivial: uefi: clarify errors related to secure boot
2019-04-17 16:39:29 +08:00
Richard Hughes
cce6a1cb5a
Do not report transient failures
...
We don't need to report failures to do with AC or battery level to the LVFS.
2019-04-17 08:20:44 +08:00
Richard Hughes
77d97406f2
uefi: Don't overwrite CustomFlags if set from a quirk
2019-03-27 14:21:00 +00:00
Richard Hughes
5c18617e8f
uefi: Actually upload the UPDATE_INFO entry for the UX capsule
2019-03-15 14:22:01 +00:00
Richard Hughes
44ce5aeae4
uefi: Add a quirk to use the legacy bootmgr description
...
Some hardware from Lenovo deduplicates UEFI Boot entries, and uses the old
string 'Linux-Firmware-Updater' to avoid removing the firmware update entry.
Although this is forbidden in the UEFI specification we shouldn't break
firmware updates from old firmware versions.
Provide a quirk for this, and automatically whitelist anything with the LENOVO
SMBIOS Manufacturer.
2019-01-30 12:13:39 +00:00
Richard Hughes
f425d29a28
Show a console warning if loading an out-of-tree plugin
...
Fixes https://github.com/hughsie/fwupd/issues/950
2019-01-19 07:26:20 +00:00
Richard Hughes
4e30d25668
UEFI: Do the UX checksum calculation in fwupd
...
This makes the EFI binary much simpler.
2019-01-18 19:27:21 +00:00
Richard Hughes
09bf3b5246
trivial: Don't manually zero-fill efi_ux_capsule_header_t
2019-01-18 19:27:21 +00:00
Richard Hughes
4bdb513937
trivial: Make the capsule_image_size calculation more obvious
2019-01-18 19:27:21 +00:00
Richard Hughes
9729584ee4
Allow plugins to define support for a 'well-known' protocol
...
Future metadata from the LVFS will set the protocol the firmware is expected to
use. As vendors love to re-use common terms like DFU for incompatible protocols,
namespace them with the controlling company ID with an approximate reverse DNS
namespace.
This also allows more than one plugin to define support for the same protocol,
for instance rts54hid+rts54hub and synapticsmst+dell-dock.
2018-12-14 18:15:01 +00:00
Mario Limonciello
2ac3aca2a7
uefi: Append the header on capsules without headers from Linux
...
This allows using better heuristics and potentially phasing this out
in the future.
2018-12-11 12:51:57 -06:00
Richard Hughes
a0da340b60
uefi: Do not add devices with invalid GUIDs
...
Note: We deliberately don't add the device without 'UPDATABLE' as there's
nothing the user can actually do to repair this themselves.
2018-12-07 09:05:30 -06:00
Richard Hughes
ce712426f8
uefi: Set the quirks on created devices
...
Ensure the quirk object is set, and then add the GUIDs first so that the
version format can be set from a quirk file.
Additionally, only overwrite the fallback name if the name has not already been
set manually from a quirk.
2018-10-18 19:31:04 +01:00
Richard Hughes
05cbb7245c
Don't use AppStream-glib for version helpers
...
Refactor the imported version format code now we now longer need to stick to
the API mistakes of libappstream-glib.
2018-10-11 07:54:01 +01:00
Mario Limonciello
dc48bec157
uefi: Move the TPM unlocking functionality from the Dell to UEFI plugin
...
This allows devices that have been registered to be correctly unlocked.
2018-10-10 14:30:49 +01:00
Richard Hughes
ccd3b2a61f
uefi: Check the amount of free space on the ESP
...
Fixes https://github.com/hughsie/fwupd/issues/670
2018-09-12 13:56:02 +01:00
Richard Hughes
2aa3360d46
trivial: Include appstream-glib.h in the main plugin header
2018-09-04 08:22:39 -05:00
Richard Hughes
4adf3bb52c
trivial: Remove duplicate header includes
2018-09-04 08:22:39 -05:00
Richard Hughes
22367e7948
trivial: Refactor out functionality from a mega-method
2018-08-30 16:53:19 +01:00
Richard Hughes
29129ed4f4
uefi: Allow upgrades using a self-signed fwupd.efi binary
...
This doesn't require shim, so for this uncommon case add a configure option.
Fixes https://github.com/hughsie/fwupd/issues/669
2018-08-23 14:30:04 +01:00
Richard Hughes
02c90d8a03
Remove the unused Emacs indenting headers from all source files
...
Fixes https://github.com/hughsie/fwupd/issues/636
2018-08-09 12:48:04 +01:00
Mario Limonciello
fd99902ba8
uefi: Test for read only efivarfs ( Closes : #625 )
2018-08-09 08:11:40 +01:00
Richard Hughes
99b0b1be04
uefi: Check the user-supplied ESP path
...
Additionally, if the user specified something invalid, do not autodetect the
ESP but return with a journal error. It seems wrong to ignore what the user
explicitly set and perhaps do something dangerous.
Alternative to https://github.com/hughsie/fwupd/pull/599
2018-08-08 20:35:04 +01:00
Mario Limonciello
d1775bc026
uefi: Populate UpdateError with reasons that the plugin won't run
...
Previously if missing secure boot binaries, or invalid ESP was created the
plugin would just not load.
Now instead populate UpdateError and remove the updateble flag, but still show
the device in fwupdmgr and fwupdtool.
2018-07-17 14:30:27 +01:00
Mario Limonciello
fd65ddda8a
uefi: Rename all intermediary files and UEFI variables to prefix fwupd
...
fwupdate prefix is used by fwupdate and this will prevent clashes in case
its used instead.
2018-07-10 10:45:39 -05:00
Mario Limonciello
44305bbde4
Rename EFI application from fwup<arch>.efi to fwupd<arch>.efi
...
This will prevent potentially clashing with fwupdate's EFI application
and allow them to remain co-installable.
2018-07-10 10:45:39 -05:00
Richard Hughes
04f8f267c5
trivial: Move the guessing of the ESP to common code
2018-06-28 15:51:11 +01:00
Richard Hughes
1ccf35a9e4
dell: Register devices with the uefi plugin rather than using libfwup directly
...
The device registration allows us to create a 'virtual' device that can accept
capsule updates that is not found in the ESRT.
2018-06-28 15:51:11 +01:00
Richard Hughes
dd23871698
uefi: Do not link against libfwup
2018-06-28 15:51:11 +01:00
Richard Hughes
a80f79cb4d
uefi: Upload the firmware capsule without using libfwup
2018-06-28 15:51:11 +01:00
Richard Hughes
11d62030a3
uefi: Upload the historical result without using libfwup
2018-06-28 15:51:11 +01:00
Richard Hughes
b157d6eff9
uefi: Unlock the ESRT without using libfwup
...
This will be handled by a Dell-specific plugin instead.
2018-06-28 15:51:11 +01:00
Richard Hughes
cff980cfda
uefi: Do not get the custom ESP location from libfwup
2018-06-28 15:51:11 +01:00
Richard Hughes
fb0e94857f
uefi: Upload the UX bitmap without using libfwup
2018-06-28 15:51:11 +01:00
Richard Hughes
f3f4ca0320
uefi: Clear the device status without using libfwup
2018-06-28 15:51:11 +01:00
Richard Hughes
5585b00892
uefi: Access /sys/firmware/efi/efivars directly rather than using efivars
...
This allows us to redirect the functions for our self tests.
2018-06-28 15:51:11 +01:00
Mario Limonciello
cfc22a8b90
uefi: Detect the EFI system partition location at runtime
...
Check across a list of common EFI system partition locations for a mounted
location before starting fwupd.
This also will cause the plugin to not initialize if the EFI system partition
is not mounted.
2018-06-28 15:51:11 +01:00
Richard Hughes
ca5b4a7c97
uefi: Do not use libfwupdate to get the list of resources
2018-06-28 15:51:11 +01:00