Commit Graph

2249 Commits

Author SHA1 Message Date
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
Richard Hughes
ae47a347e0 uefi: Do not enable the plugin if efivars are not available
If the user is using some super-old kernel or broken system we want to return
early with an error rather than try to catch each way this can fail at runtime.
2018-06-28 15:51:11 +01:00
Richard Hughes
af5ec20004 uefi: Get the framebuffer without calling into libfwupdate 2018-06-28 15:51:11 +01:00
Richard Hughes
d7cdf9fb67 uefi: Use FuUefiBgrt from the plugin code 2018-06-28 15:51:11 +01:00
Richard Hughes
b1e0ab98d1 uefi: Import the fwupd.efi sources from the fwupdate project 2018-06-28 15:51:11 +01:00
Richard Hughes
44367e707d trivial: Bump the required version of libsmbios_c
Also, disable the dell plugin for the CentOS build.
2018-06-28 15:51:11 +01:00
Richard Hughes
ca851f5ab4 trivial: Add fu_device_incorporate()
This allows us to copy properties from a donor object.
2018-06-28 15:51:11 +01:00
Richard Hughes
62ba9a6f2f uefi: Check the flashes left before installing firmware 2018-06-28 15:51:11 +01:00
Richard Hughes
83390f6556 uefi: Add functionality to parse the EFI framebuffer size 2018-06-28 15:51:11 +01:00
Richard Hughes
f758e7b73a uefi: Add functionality to parse the BGRT table supported 2018-06-28 15:51:11 +01:00
Richard Hughes
a593447695 uefi: Add functionality to get a bitmap size 2018-06-28 15:51:11 +01:00
Richard Hughes
6b8235660b trivial: Move getting the secure boot status to the common file 2018-06-28 15:51:11 +01:00
Richard Hughes
2b1fcfd662 trivial: Use FuUefiDeviceStatus in preference to the defines from fwupdate 2018-06-28 15:51:11 +01:00
Richard Hughes
25509c01ce trivial: Use FuUefiDeviceKind in preference to the defines from fwupdate 2018-06-28 15:51:11 +01:00
Richard Hughes
0766857407 uefi: Read the ESRT entries from a directory in sysfs 2018-06-28 15:51:11 +01:00
Richard Hughes
bd80edd6be uefi: Add a device superclass to model each ESRT entry 2018-06-28 15:51:11 +01:00
Richard Hughes
282b10dbbf trivial: Allow using a custom firmware location in the self tests 2018-06-28 15:51:11 +01:00
Richard Hughes
1a1d135b13 trivial: Add UTF8 to UCS2 helpers from the fwupdate project 2018-06-28 15:51:11 +01:00
Richard Hughes
e0cd6e0667 Add fwupd_device_incorporate()
This allows us to copy properties from a donor object.
2018-06-28 15:51:11 +01:00
Richard Hughes
c43a9e9024 trivial: Fix the Since lines for the equivalent_id functions 2018-06-28 15:51:11 +01:00
Mario Limonciello
db419f066c trivial: Make gtkdoc-scan a build dependency when docs are on
Fixes #575
2018-06-28 08:54:22 -05:00
Mario Limonciello
4eff978638 trivial: make gcab a build dependency
Fixes #574
2018-06-28 08:54:22 -05:00
Richard Hughes
87fb9ff447 Change the quirk file structure to be more efficient
This pivots the data storage so that the group is used as the preconditon
and the key name is used as the parameter to change. This allows a more natural
data flow, where a new device needs one new group and a few few keys, rather
than multiple groups, each with one key.

This also allows us to remove the key globbing when matching the version format
which is often a source of confusion.

Whilst changing all the quirk files, change the key prefixes to be more familiar
to Windows users (e.g. Hwid -> Smbios, and FuUsbDevice -> DeviceInstanceId)
who have to use the same IDs in Windows Update.

This also allows us to pre-match the desired plugin, rather than calling the
probe() function on each plugin.
2018-06-28 13:32:30 +01:00
Richard Hughes
411fcbde43 trivial: Add a hardware test for the AIAIAI H05 2018-06-28 13:29:37 +01:00
Richard Hughes
e4ad057553 trivial: Add a hardware test for the 8Bitdo SF30 Pro hamepad 2018-06-28 13:29:37 +01:00
Richard Hughes
51345edf24 trivial: Rename the wacom quirk file
It's not Intuos specific at all.
2018-06-28 12:21:36 +01:00
Richard Hughes
a39d6a52b5 trivial: Skip plugins that require the 'Plugin' quirk is set 2018-06-28 12:17:15 +01:00
Richard Hughes
6dbe8fef34 Allow devices to assign a plugin from the quirk subsystem
Not calling dozens of ->probe() functions is dramatically more efficient when
there are a large number of USB devices attached.

This requires plugins to 'opt-in' to the new behaviour, and also to supply
quirks that match all devices.
2018-06-28 12:16:31 +01:00
Richard Hughes
5f3a56b0fa Add fu_plugin_has_rule()
This allows us to check if a specific name exists for a given rule type.
2018-06-28 12:13:59 +01:00
Richard Hughes
9ecde4a38a trivial: Allow setting standard FwupdDeviceFlags when getting quirk data 2018-06-28 12:08:01 +01:00
Richard Hughes
ac11be65f3 trivial: Add fu_device_has_custom_flag()
This splits the custom flags and checks if one of them exists.
2018-06-28 12:07:13 +01:00
Richard Hughes
63b173046d trivial: Rename the 'plugin-hints' functionality to 'custom-flags'
They will be used as actual flags in the future.
2018-06-28 12:07:13 +01:00
Richard Hughes
e1d65f3f5d trivial: Enable epel-testing for the Centos build 2018-06-27 16:48:35 +01:00
Richard Hughes
83d46b0579 Fix linker argument checks
Meson 0.46.0 adds has_link_argument to compiler objects, and we should use it
instead of has_argument when checking linker arguments.
2018-06-27 16:48:35 +01:00
Richard Hughes
7e43ed191d trivial: Use the correct metainfo ID in the static metadata
This isn't important, but it makes it easier to understand in gnome-software.
2018-06-27 14:07:27 +01:00
Richard Hughes
83cd57f095 Fix downgrading older releases to devices
The requirement filter needs to be relaxed when getting the available releases
for a device when not used to install the firmware.
2018-06-27 14:07:23 +01:00
Richard Hughes
8848675f9b trivial: Show supported device without using --show-all-devices
In the case of a device that is unlockable, but is not updatable we want to
show it by default.
2018-06-27 14:07:11 +01:00
Richard Hughes
cd330b09d3 trivial: include libsmbios for the Arch CI build 2018-06-27 12:52:32 +01:00
Richard Hughes
e7cd293893 trivial: Move the prefixed paths further up the meson build file 2018-06-27 12:52:04 +01:00
Richard Hughes
82747821f8 trivial: Enable bash completion in the example spec file 2018-06-27 12:52:00 +01:00
Richard Hughes
aa05cdf92c trivial: Fix the flatpak build 2018-06-27 10:40:05 +01:00
Richard Hughes
04d6965a14 ebitdo: Do not use bootloader commands after a successful flash and reboot
We need to remove the flag if the quirk is not present.

Fixes the cosmetic-but-scary-looking 'failed to send to device on ep 0x01: USB
error on device 2dc8:9001 : Input/output error'.

Fixes the other half of https://github.com/hughsie/fwupd/issues/565
2018-06-26 14:12:02 +01:00
Richard Hughes
2efb992e52 Fix flashing devices that require a manual replug
We were looking for 'active' and 'old' devices with a specific ID. Due to a
copy and paste thinko we were actually matching the active list twice,
triggering the 'device ID was not unique' failure.

Fixes half of https://github.com/hughsie/fwupd/issues/565
2018-06-26 14:12:02 +01:00
Richard Hughes
d99190f626 wacomhid: Use the parent device name for sub-modules 2018-06-25 17:12:44 +01:00
Mario Limonciello
4910b244d1 trivial: Do not notify plugins for their "own" device registrations 2018-06-24 07:18:04 +01:00
Mario Limonciello
2d9bcf463f trivial: uefi: update the comment for _efi_get_variable_exists
The commit was merged in 0b3d29d2d8
which landed in efivar 35.
2018-06-24 06:53:24 +01:00
Richard Hughes
3aec0e51ed trivial: Branch for 1.1.x
Given we're planning bigger changes, it seems sensible to branch now.
2018-06-23 10:43:36 +01:00
Richard Hughes
e48351e260 Set the alternate device ID, not the object itself
If the daemon either de-duplicates or replaces the object passed emitted from
device-added then the object set as the alternate may not be the same instance
as the daemon version. This causes weird things to happen.

To make this less fragile, specify the *ID* of the object that should be the
alternate device, which allows the daemon to do clever things, and then assign
the object from the ID as the last step.

Although fixing no bug, this makes implementing future functionality easier.
2018-06-22 13:28:27 +01:00
Richard Hughes
1107fa4c9a dell: Do not rely of the order the devices are added in the self tests
Get the TPM v2.0 and v1.2 devices explictly rather than assuming the non-alt
device is always added first. This has the side effect of making the tests
easier to read and means we can check the dock components more carefully.
2018-06-22 13:28:27 +01:00