Commit Graph

147 Commits

Author SHA1 Message Date
Richard Hughes
fc2da47b69 Remove fu_strtoull_full() 2022-06-14 14:36:52 -05:00
Richard Hughes
4105768a01 Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
Richard Hughes
3e0a4dc1c3 Be smarter and include less header files per source file 2022-06-14 14:36:52 -05:00
Richard Hughes
067d7d8088 Split out the path helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
7f86ffab6f Split out the dump helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
ed1b13da28 Split out the memory helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
4b1313b406 Split out the GByte helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
9d33c29e92 Split out the string helpers to a new source file 2022-06-14 14:36:52 -05:00
Richard Hughes
619677fc3f redfish: Also reconnect the network during BMC re-coldplug 2022-06-10 13:15:08 +01:00
Richard Hughes
b75553cb49 redfish: Be more helpful when debugging connection failures 2022-06-10 13:15:08 +01:00
Richard Hughes
09f9ea7d06 redfish: Autoconnect the Redfish network device when rebooting the BMC 2022-06-10 11:09:26 +01:00
Richard Hughes
0c8079b13c redfish: Never manually modprobe ipmi-devintf
This produces startup failures on images that do not ship that exact
module, e.g. guest-images.

Just rely on the kernel driver to be auto-loaded when required.

Fixes https://github.com/fwupd/fwupd/issues/4550
2022-06-06 08:20:21 -05:00
Richard Hughes
e6b487e762 Add FuProgress to ->startup() and ->coldplug()
This allows us to profile the daemon startup so we can find any plugins
taking an inordinate amount of time to start.
2022-06-04 20:21:50 +01:00
Richard Hughes
dc91d59f8e Remove the recently added fu_progress_add_step_full()
Just break API instead.
2022-06-03 13:47:11 -05:00
Richard Hughes
0cbcac93cd Rename fu_udev_device_ioctl_full() as we broke ABI 2022-06-03 13:47:11 -05:00
Richard Hughes
5ef0ae182d Add a 'name' attribute to each FuProgress step
This allows us to print better warning strings, and in the future
would allow us to profile each operation in a meaningful way.

Also, add context to some of the progress steps as required.
2022-06-01 15:05:43 +01:00
Richard Hughes
4925fc3ba2 redfish: Fix a tiny leak when making requests 2022-05-27 11:59:28 +01:00
Richard Hughes
cc10990628 redfish: Fix a memory leak when running coldplug multiple times 2022-05-27 11:59:28 +01:00
Richard Hughes
54a1ef4642 redfish: Do not show a warning when there is no post delay 2022-05-26 11:55:32 +01:00
Richard Hughes
15a0288141 redfish: Don't reboot the BMC for all updates
The WILDCARD_TARGETS private flag had the same value as MANAGER_RESET...
2022-05-26 11:55:32 +01:00
Richard Hughes
0ad49b444e redfish: Be more resilient when restarting the BMC 2022-05-24 14:45:56 +01:00
Richard Hughes
317887cf85 redfish: Do not print unhelpful coldplug text 2022-05-24 14:45:56 +01:00
Richard Hughes
353a772e1a redfish: Use the correct key name for BMC reboot 2022-05-24 13:01:12 +01:00
Richard Hughes
d3d7cfa816 Add plugin quirk keys earlier in the startup process
This allows creating the silo when starting the engine with custom
plugin keys such as WacomI2cFlashBaseAddr.

If we move the plugin initialization earlier then we don't get the
HwID matches, so we really do have to split this into a 4-stage startup,
e.g. ->load(), ->init(), ->startup() and ->coldplug().
2022-05-09 11:13:52 +01:00
Richard Hughes
5aefc520b6 redfish: Poll less frequently during cleanup
The BMC can take more than 30 minutes to start (!) if lots of devices
are installed.
2022-05-09 11:00:18 +01:00
Richard Hughes
e90367d854 redfish: hardcode the filedata name to firmware.bin
Unbelievably, using a filename with spaces causes Lenovo XCC to return a message
with InternalError, 'The request failed due to an internal service error.
The service is still operational.'

As we're using a multipart update rather than a legacy HttpPushUriTargetsBusy
PATCHing, hardcoding should be quite safe.
2022-05-09 11:00:18 +01:00
Richard Hughes
fb93b6c51c redfish: Do not mark all updates as UPDATABLE 2022-05-09 11:00:18 +01:00
Richard Hughes
5ebcfa909c redfish: Use actual FuProgress steps for ->cleanup() 2022-05-09 11:00:18 +01:00
Richard Hughes
b7bf0a7611 Do not fallback to audio-card
Let the frontend choose the most appropriate icon if unspecified.
2022-04-25 14:49:30 +01:00
Richard Hughes
81fbff8445 redfish: Restart the BMC after installing BCM updates 2022-04-19 20:24:59 +01:00
Richard Hughes
a374254d74 redfish: Drop the cache when invalidated 2022-04-15 16:49:48 +01:00
Richard Hughes
08a3fd8b65 redfish: Fix a memory leak when calling ->setup() more than once 2022-04-15 16:49:48 +01:00
Richard Hughes
064cb648c1 redfish: Allow specifying the request type 2022-04-15 07:43:09 +01:00
Richard Hughes
f8f5cd1f25 redfish: Don't add a device to itself when replugging 2022-04-14 13:06:21 +01:00
Richard Hughes
3b0d1a6c6b trivial: Ignore the return value of curl_easy_setopt() in most cases
This makes Coverity happy.
2022-04-13 15:08:12 +01:00
Richard Hughes
0b7af7d54b trivial: Ignore the return value of setenv() in most cases
This makes Coverity happy.
2022-04-13 15:08:12 +01:00
Richard Hughes
200302bbc6 redfish: Remove some logically dead code 2022-04-13 15:08:12 +01:00
Richard Hughes
a11fefff35 redfish: Don't add the backup BMC device as it shares the same GUIDs
This fixes the problem when the UEFI update depends on a specific BMC
version -- including the backup BMC device means we checking that both
the primary and the backup were above a specific version.

I don't think it's ever useful to show the backup BMC device, so just
don't include it as an enumerated device.

Fixes https://github.com/fwupd/fwupd/issues/4404
2022-03-18 11:03:14 +00:00
Richard Hughes
c4ca026294 Allow devices to build instance IDs more easily
Provide a device instance builder that allows plugins to easily
create multiple instance IDs based on parent attributes.

Also fix a lot of the instance ID orders, so that we add more generic
IDs first, and more specific IDs after.
2022-03-03 09:13:29 +00:00
Mario Limonciello
5bc5462213 trivial: redfish: use the configured prefix to determine if it's an installed test
fixes: #3880
2022-02-28 13:36:49 -06:00
Mario Limonciello
661990ed98 Convert build system to use meson tristate features
tristate features will automatically disable if dependencies marked
as required are missing.

Packagers can manually override using `auto_features`.

Link: https://mesonbuild.com/Build-options.html#features
2022-02-28 08:34:48 -06:00
Richard Hughes
f3a13f89dd Allow specifing the DeviceIntegrity flag from metadata 2022-02-22 19:12:06 +00:00
Richard Hughes
f3d71a18a5 redfish: Be more robust by retrying IPMI transactions
This fixes creating users when the BMC is otherwise busy.
2022-02-01 16:18:28 +00:00
Richard Hughes
fba2fd62f2 redfish: Add error codes not provided in ipmi_msgdefs.h 2022-02-01 16:18:28 +00:00
Richard Hughes
de874c7d8e redfish: Wait some time after creating the initial IPMI user
It would appear that in reality a delay is required for them to sync state.
2022-02-01 16:18:28 +00:00
Richard Hughes
76dcafee1f redfish: Do not use 'unspecified' for the unknown error 2022-02-01 16:18:28 +00:00
Richard Hughes
3917714dd1 redfish: Change an expired password when required 2022-01-19 21:19:01 +00:00
Richard Hughes
ca43733a8c Show why devices are not marked as updatable
At the moment a lot of the failures are only visible when running the
daemon in verbose mode, and the inhibit functionalit provides us a way
to unset FWUPD_DEVICE_FLAG_UPDATABLE from multiple places, as well as
setting the update error for the user to see why.
2022-01-13 12:40:56 +00:00
Richard Hughes
2734f0ab77 redfish: Do not autoload ipmi-si to avoid warning on non-server hardware
This leads to reports of:

    systemd-modules-load[1710]: Failed to insert 'ipmi_si': No such device
    systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
2022-01-10 14:06:34 +00:00
Richard Hughes
2e99055d1e trivial: Add some more annotations for language bindings 2022-01-03 22:46:23 +00:00