Commit Graph

2346 Commits

Author SHA1 Message Date
Richard Hughes
19abf996c7 Allow the daemon to request interactive action from the end user
The "return error and hope the client resubmits the firmware again"
pattern is clunky. There are two plugins doing this now, and about to
be one more.

This adds FwupdRequest which provides a structured way of asking the
user to perform an action, e.g. to replug the device or to press a
special key or button.

This replaces much of the UpdateMessage and UpdateImage API although
it is still used internally. Clients capable of processing the new
DeviceRequest signal should add REQUESTS to their feature flags.

Also, this allows us go back to the old meaning of _NEEDS_BOOTLOADER,
which was "needs rebooting into a bootloader mode" rather than the
slightly weird "user needs to do something and resubmit request".
2021-07-14 17:03:50 +01:00
Richard Hughes
a71f100e5a redfish: Use the HotPluggable attribute if provided
Although, this only seems provided for PSU devices...
2021-07-14 15:21:04 +01:00
Richard Hughes
a564e458d2 trivial: Fix Python linting issue spotted by Codacy 2021-07-14 15:20:57 +01:00
Richard Hughes
095354e1d8 ebitdo: Add the alternate vendor name into the allowlist 2021-07-14 08:34:30 +01:00
Daniil Lunev
0af67e3e50 emmc: Filter out rpmb and boot block devices
The move to query sysattr for the name inadvertly changed the extent of
devices accepted by emmc probe. udev rules setup ID_NAME only for main
block device, but not for rpmb or boot, while 'name' sysattr is present
for all of them for they point to the same parent. The original check
for name was brittle either way and relied on a side effect of udev
subsystem. This CL introdues a proper filtering check that picks up only
the main devices. That is important because an attempt to perfrom an
update not on the main device returns a cryptic timeout error.

Change-Id: I3c2f5597c3e3ca2124c87cade3f345dece94027e
2021-07-14 07:38:45 +01:00
Peter Marheine
000ee9696c flashrom: remove PS175 support
This is now implemented by the parade_lspcon plugin.
2021-07-14 06:40:38 +01:00
Peter Marheine
a12d715038 New plugin: parade-lspcon 2021-07-14 06:40:38 +01:00
Ivan Mikhanchuk
db8a9927f4 modem-manager: add firehose update method
Adds firehose update protocol, qcdm port handling, program file copy to the cache directory
2021-07-13 21:57:08 +01:00
Daniil Lunev
1ca9c92919 emmc: add check "name" sysattr is not NULL
At this point it has to be present, but better have the check for
correctness sake.
Follow up of
64fa633e30

Change-Id: I51b5995e25dc4dc4ec63b90af271cd90650d184d
2021-07-12 23:16:51 -05:00
Daniil Lunev
64fa633e30 emmc: use sysattr insted of udev attr lookup for device name
/run/udev/data/b* location of eMMC devices appears to be inaccessible
early on in the boot process which makes fwupd to skip eMMC devices if
the daemon started too early. ID_NAME udev attribute is effectively
copied from the sysfs attribute [1], thus making use of it is more
reliable.

[1] 1ed38f4174/etc/udev/rules.d/60-persistent-storage.rules (42)

Change-Id: I66b92dfeb13ec61b4d8166dd32a2460b6fbf92c2
2021-07-12 20:16:01 -05:00
Richard Hughes
d938ab62e6 trivial: Add fu_device_add_guid_full() to control behaviour 2021-07-12 19:01:55 +01:00
Richard Hughes
53538685fc trivial: Add FU_DEVICE_INSTANCE_FLAG_NO_QUIRKS to avoid quirk matches 2021-07-12 19:01:55 +01:00
Richard Hughes
9c31d1fadd trivial: Set the FuContext on more devices 2021-07-12 19:01:55 +01:00
Richard Hughes
488f2e1f37 Export the EFI and IFD parsers
We'll need to use this from another plugin soon.
2021-07-12 10:33:38 +01:00
Richard Hughes
0cc06f032c Add a flag to open and close with the parent device
This is a common pattern that is used in lots of plugins, so move the
logic into common code.
2021-07-11 16:37:47 +01:00
Richard Hughes
df297d3ee2 superio: Always ensure the version string is NUL terminated
Spotted by Coverity
2021-07-10 13:51:28 +01:00
Richard Hughes
f1dbd42934 superio: Fix a buffer overread when using --verbose
Spotted by Coverity
2021-07-10 13:51:28 +01:00
Richard Hughes
772f116104 superio: Hide more debugging output by default 2021-07-10 13:51:28 +01:00
Richard Hughes
ef807240f7 realtek-mst: Show the write failure when using --verbose
Spotted by Coverity.
2021-07-10 13:51:28 +01:00
Richard Hughes
f01eb3808c pixart-rf: Read the payload status after getting the command response
Spotted by Coverity
2021-07-10 13:51:28 +01:00
Richard Hughes
a19e94eb5a pixart-rf: Hide more debug output behind --verbose 2021-07-10 13:51:28 +01:00
Richard Hughes
10cd248948 redfish: Restore compatibility with old libcurl versions
Making the redfish plugin disabled on RHEL 8 was... unpopular.
2021-07-09 16:30:30 +01:00
Richard Hughes
5eabab90f4 trivial: Don't set a device ID if setting a physical ID
This isn't actually doing anything as setting a physical ID invalides
the manually-set ID.
2021-07-09 14:08:12 +01:00
Richard Hughes
d4bd5cca5a Standardize some of the device summary text
This is supposed to be 'Sentence case' with no trailing fullstop.
2021-07-09 07:07:07 +01:00
Richard Hughes
5343a4a083 Export the build timestamp from plugins 2021-07-08 16:31:07 +01:00
Richard Hughes
7e77eb3e41 trivial: Add the missing quirk key
This fixes a nag warning every time we rebuild the silo.
2021-07-08 16:31:07 +01:00
Richard Hughes
a923ae2804 redfish: Refactor plugin and add some unit tests 2021-07-08 15:35:02 +01:00
Richard Hughes
4fb8c7ad51 trivial: Fix precommit issue
Weird.
2021-07-06 17:33:33 +01:00
Richard Hughes
5f42fcb0c4 redfish: Port FuRedfishClient to derive from FuBackend 2021-07-06 17:13:16 +01:00
Richard Hughes
ad825eac24 redfish: Allow discovery of Redfish BMCs specified by VID-PID or MAC
Also, allow overriding the data using the config file.
2021-07-06 17:13:16 +01:00
Richard Hughes
dfaae2e837 Move amdgpu safety check into the plugin
There are now multiple plugins using drm_dp_aux_dev interface which
may potentially be combined with an amdgpu. Prevent exercising this
interface with any plugin using DP aux unless a new enough kernel is
installed.
2021-07-04 17:49:36 +01:00
Ricky Wu
825cf474ef
plugins: rts54hub: update rts54hub.quirk (#3445)
rts54hub: update rts54hub.quirk 

add Acer Dock ID
2021-07-03 16:50:28 +01:00
Richard Hughes
a5de6f0248 acpi-phat: Prevent a corrupt PHAT table from allocating ~4GB of memory
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35761
2021-07-02 21:28:39 +01:00
Richard Hughes
1de71f1191 acpi-phat: Fix a -Wcast-align issue detected with clang 2021-07-01 13:11:12 +01:00
Ricky Wu
5abbceddb9 plugins: rts54hub: rts54hub.quirk update
fixed USB\VID_0BDA&PID_5420 and USB\VID_0BDA&PID_5420&I2C_01 fw size range
2021-06-30 10:00:19 +01:00
Ricky Wu
4aa3b56ecb Update rts54hub.quirk
change fw size range
2021-06-30 07:58:51 +01:00
Mario Limonciello
4b80abafd8 trivial: don't use noclone attribute for cet checker on clang
Clang doesn't support this
2021-06-29 14:37:44 -05:00
Mario Limonciello
8867b1f47e trivial: remove some unused variables caught by clang 2021-06-29 14:37:44 -05:00
Richard Hughes
35e701556f redfish: Add GUIDs lowercase to match all the other plugins 2021-06-28 19:42:03 +01:00
Richard Hughes
7b7d33554a redfish: Fix a download warning for libcurl >= 7.62.0 2021-06-28 19:41:37 +01:00
Jarvis Jiang
6b79e9201d modem-manager: Add MBIM QDU support for firmware downloading in the MM plugin
Add the mbim-qdu support for firmware downloading, it will be used for T99W175 module of Foxconn.

Signed-off-by: Jarvis Jiang <jarvis.w.jiang@gmail.com>
2021-06-28 10:11:15 +01:00
Peter Marheine
8db9a0f3c3 realtek_mst: new plugin supporting RTD2142 2021-06-28 10:09:52 +01:00
Richard Hughes
6ff0ae2bc4 redfish: Split out the SMBIOS table parsing
This makes it more robust against corrupted data, and also adds support
for fuzzing.
2021-06-25 19:55:19 +01:00
Richard Hughes
5acee72213 redfish: Fix the SMBIOS table type value
It's 'type 42' in _decimal_, not hex.
2021-06-25 19:55:19 +01:00
Sergii Dmytruk
d8a5c7968d Add support for SuperIO IT5570
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2021-06-25 19:54:47 +01:00
Richard Hughes
6e3ad475a1 superio: Rename some variables with some new knowledge 2021-06-25 19:54:47 +01:00
Richard Hughes
2f9a9b2730 superio: trivial coldplug optimization 2021-06-25 19:54:47 +01:00
Mario Limonciello
5c6cb2bd53 Add a new plugin lenovo-thinklmi
This plugin uses the `thinklmi` kernel module from kernel 5.14 to
inhibit device updates for UEFI capsules when Boot Order Lock
is set.

Users will need to use `thinklmi` or BIOS setup to change the setting.
2021-06-25 08:12:58 -05:00
Richard Hughes
b9965d4d5c trivial: Do not run the linux swap tests on win32 2021-06-24 23:18:14 -05:00
Mario Limonciello
1d44dce78a trivial: remove some unused variables 2021-06-23 08:29:56 -05:00