Commit Graph

2164 Commits

Author SHA1 Message Date
Richard Hughes
bb1bcce863 Allow fwupd to operate without a D-Bus daemon
This adds support for optionally using a UNIX domain socket where a
D-Bus daemon may not be running.

To use this, launch the daemon and clients with something like
`FWUPD_DBUS_SOCKET=/var/run/fwupd.sock fwupdmgr get-devices`
2022-01-31 14:05:23 +00:00
Richard Hughes
47c92393de trivial: Always use the GCancellable in fwupdmgr 2022-01-31 13:05:41 +00:00
Richard Hughes
7290da5dda Allow the root user to ask the daemon to quit
This makes it easier to test the fwupd in the installed tests:

    sudo gdbus call --system \
    	--dest org.freedesktop.fwupd \
    	--object-path / \
    	--method org.freedesktop.fwupd.Quit
2022-01-31 10:47:26 +00:00
Richard Hughes
6eada0e067 Add a flag to indicate the firmware is not provided by the vendor
Also, force the user to accept this warning for every update.
2022-01-25 10:13:40 +00:00
Richard Hughes
8707d3d048 Translate the firmware flags when using fwupdmgr 2022-01-25 09:53:52 +00:00
Richard Hughes
02d8753097 Move the clear-history command to fwupdtool
This is perhaps a useful thing to do when debugging, but isn't the sort
of thing we need users to understand.
2022-01-21 15:25:05 +00:00
Richard Hughes
ffac7d6024 Merge the little-used clear-offline action into clear-results
Fixes https://github.com/fwupd/fwupd/issues/3581
2022-01-21 15:25:05 +00:00
Richard Hughes
38bab8fc4f Allow overriding daemon parameters using /var/etc/fwupd/daemon.conf
This is super useful for debugging immutable systems like ChromeOS.
2022-01-21 11:52:06 +00:00
Richard Hughes
122dee1a19 Allow specifying the BKC locally
Fixes https://github.com/fwupd/fwupd/issues/4040
2022-01-21 11:35:54 +00:00
Richard Hughes
59845f970e trivial: Fix a compile problem when fwupdmgr is built before fu-hash.h 2022-01-20 17:06:14 +00:00
Richard Hughes
fc4687f3e5 trivial: Add the missing keys for the daemon ModifyConfig method 2022-01-20 13:44:53 +00:00
Crag Wang
b728608baa Show results when calling get-details if failing requirements 2022-01-19 12:10:52 +00:00
Richard Hughes
46b3eb0f82 trivial: Add more translations for HSI events 2022-01-18 14:23:13 +00:00
Crag Wang
6c985fac3b trivial: allow multiple GUID or DEVICE-ID to update command
Merged fu_util_update_all() and fu_util_update_by_id() to simplify the
maintaince work and streamline the flow for consistent behavior across
a normal update for all updatable devices and a small set of chosen
devices.

This commit also added support for specifying mutliple DEVICE-IDs or
GUIDs in a single run, previously error message 'Invalid Argument' is
seen and soon aborted.
2022-01-17 13:41:20 -06:00
Mario Limonciello
d2e286faae trivial: show uefi_recovery message in get-plugins output
By default it shows just a blank line right now.
2022-01-17 10:21:29 -06:00
Richard Hughes
ff2e6bd1ea trivial: Do not show progressbar status reports when using --json 2022-01-17 15:53:03 +00:00
Richard Hughes
c05494430e trivial: Add support for 'fwupdtool get-plugins --json' 2022-01-15 19:01:12 +00:00
Richard Hughes
d6d3afd7c7 trivial: Do not attempt to stop the daemon when running as user 2022-01-15 18:41:37 +00:00
Richard Hughes
0f2863e9f8 Fix USB4 retimer enumeration
Check the device superclass flags, not the device base class.
2022-01-14 18:04:13 +00:00
Richard Hughes
73f6767d87 trivial: Show why more devices are not marked as updatable 2022-01-13 16:04:31 +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
Mario Limonciello
e92a286ce8 Move root user ID check message into the error path for commands
This should make it so that the message doesn't pop up for someone
who has used udev rules that match permissions to do

```
fwupdtool install-blob --plugins=dfu foo.bin
```

Unless there really was a failure
2022-01-12 11:55:46 -06:00
Mario Limonciello
62a64afda5 fu-tool: put lockfile in user's cache directory if no permissions for /run 2022-01-12 10:14:49 -06:00
Richard Hughes
cf5a341a51 trivial: Do not show a critical warning for an invalid device test 2022-01-12 14:23:44 +00:00
Richard Hughes
5ce93a2dd9 trivial: Show the file that failed to be downloaded 2022-01-12 14:23:44 +00:00
Richard Hughes
25ee969a27 trivial: Enable VT sequences on Win32 2022-01-06 19:21:50 +00:00
Richard Hughes
9cd9a4b8f7 trivial: Use ANSI escape codes to fix the progressbar on win32 2022-01-06 19:21:50 +00:00
Richard Hughes
dbdb207561 Increase the chances of success of WAIT_FOR_REPLUG on WIN32
Decrease the GUsb polling interval when any of the devices is in
`WAIT_FOR_REPLUG` on when running on Windows. Any device that can
re-enumerate much faster than the default 1000ms may be missed and the
detach may fail.

Linux doesn't have this problem as it has `LIBUSB_CAP_HAS_HOTPLUG`.
2022-01-06 13:20:34 -06:00
Richard Hughes
07f5ec5bed trivial: Use inhibits for missing critical device data
Also, check both after ->register() rather than using a warning.
2022-01-06 16:51:45 +00:00
Richard Hughes
133e712fc9 trivial: Do not call setup() vfuncs when we're never calling coldplug
Now all plugins define custom GTypes in the _init() vfunc, and so
there's no need to actually probe devices to just get access to those.

This means you can get results from `fwupdtool get-firmware-types`
about two orders of magnitude quicker.
2022-01-05 13:46:37 +00:00
Richard Hughes
32284e1afa Load the quirks and SMBIOS in the correct order
We need to load the quirks (respecting NO_CACHE), then load the SMBIOS,
and only then match the hwids using the quick database.

This means we don't get a console warning when using fwupdtool commands
as a non-root user.
2022-01-05 13:46:37 +00:00
Richard Hughes
62a6f39364 trivial: Move the root user prompt to the engine start 2022-01-05 13:46:37 +00:00
Richard Hughes
f885ab6d2a Allow patching firmware files at known offsets
This allows us to replace the 'dfu-tool replace' with a much more
controlled 'fwupdtool firmware-patch' command that patches at a set of
specific offsets.

Drop in the new functionality into the existing firmware ->write()
vfuncs so that the image headers, footers and/or checksums are correct.
2022-01-05 09:51:45 +00:00
Mario Limonciello
f57a6637c9 trivial: fix man page sections
They're marked in the man page as section 8 but installed into 1.
They should be installed into 1 as they're not admin tools.
2022-01-04 14:17:43 -06:00
Richard Hughes
c725e42e34 trivial: Fix various const issues 2022-01-03 22:46:23 +00:00
Richard Hughes
e17a107ce1 trivial: Cast the g_signal_connect() object to allow static analysis
This is useful when using https://gitlab.freedesktop.org/tartan/tartan
2022-01-03 22:46:23 +00:00
Richard Hughes
2e99055d1e trivial: Add some more annotations for language bindings 2022-01-03 22:46:23 +00:00
Richard Hughes
f76880182f Do not allow UEFI updates when the lid is closed
Most vendors do not mirror the firmware update to an external display,
and some don't behave correctly when the lid is shut and the machine is
docked. Add this quirk just for Lenovo for now.

Fixes https://github.com/fwupd/firmware-lenovo/issues/181
2021-12-29 19:18:26 +00:00
Richard Hughes
8e6a3f6bbb Allow devices to opt-in to metadata-provided vendor strings 2021-12-22 15:34:36 +00:00
Richard Hughes
cb110b55f8 trivial: Fix regression from 9f94dc9 on Ubuntu Focal 2021-12-17 12:19:39 +00:00
Richard Hughes
9f94dc97c4 trivial: Handle old JSON-Glib more gracefully
Fixes https://github.com/fwupd/fwupd/issues/4099
2021-12-16 19:29:49 +00:00
Mario Limonciello
bba3cd79de trivial: win32: include and enable curl support
This is needed for LVFS refreshes to work.

* Install curl binary
* Install ca-certs bundle
* Install gspawn helpers
* Reference ca-certs bundle on Win32
2021-12-15 06:46:27 -06:00
Mario Limonciello
7188e5b335 Add support to show curl/wget output from fwupdmgr/fwupdtool 2021-12-15 06:46:27 -06:00
Richard Hughes
179f250b9a trivial: Properly namespace _INTERNAL_FLAG_NO_AUTO_REMOVE 2021-12-10 17:25:54 +00:00
Richard Hughes
8fc8539146 trivial: Remove some unused variables 2021-12-10 16:00:07 +00:00
Richard Hughes
46d06bf42a Fixup the GLib error message when inotify/max_user_instances is too low
This can be reproduced using sysctl fs.inotify.max_user_instances=25
and then running the daemon.
2021-12-07 18:51:11 +00:00
Kranthi Kuntala
de1f971e14 thunderbolt: set ports offline on host controller
This change offline ports in the host controller
for retimers to enumerate in the NDA case.

-offline and rescan usb4 ports
-this enable enumeration of the retimers
-updates nvm to the enumerated retimers
-online usb4 port this will de-enumerate retimers

BUG=b:187506425
TEST=emerge-volteer fwupd

Signed-off-by: Kranthi Kuntala <kranthi.kuntala@intel.corp-partner.google.com>
2021-12-07 15:54:30 +00:00
Richard Hughes
e0d59d82d5 trivial: Emit a critical warning if something finalizes the GUsbContext 2021-12-06 17:57:23 +00:00
Richard Hughes
2bd5380780 trivial: Use 0 for no limit on security attributes
This behaviour now matches the D-Bus interface document.
2021-12-03 13:42:06 +00:00
Richard Hughes
ea5cae7c41 Enable the MOTD integration when using pam_motd
This has to be a file, not a file-in-a-directory.

Fixes https://github.com/fwupd/fwupd/issues/4047
2021-12-01 20:55:15 +00:00