pop-os / firmware-manager Goto Github PK
View Code? Open in Web Editor NEWGeneric framework and GTK UI for firmware updates from system76-firmware and fwupd, written in Rust.
License: GNU General Public License v3.0
Generic framework and GTK UI for firmware updates from system76-firmware and fwupd, written in Rust.
License: GNU General Public License v3.0
This has not been tested yet, but we'll want to ensure good behavior between fwupd firmware updates/notifications from the firmware-manager and GNOME Software.
On the Darter Pro, when selecting the Firmware tab, the sections are formatted incorrectly (not wide enough)
I am unable to recreate this issue with the same result on thelio-r1 but when the page is loading initially I do see the page, for a moment, is formatted similarly before resizing and fixing itself.
I'm on CentOS 7 (Rust 1.36.0 which I think is recent enough) and after a Makefile tweak I mentioned in another issue (#47), I'm hitting a git access issue that stops the build immediately. I ran both:
make prefix=/usr features='fwupd system76'
and
make prefix=/usr features='fwupd'
(I don't have a System76 system, hence trying the second version as well) and both resulted in git access errors:
Updating git repository https://github.com/pop-os/system76-firmware
error: failed to load source for a dependency on system76-firmware-daemon
Caused by:
Unable to update https://github.com/pop-os/system76-firmware?branch=firmware-client#f77915c0
Caused by:
revspec 'f77915c0a3d23b7f4db0473e5956173fbecdc4eb' not found; class=Reference (4); code=NotFound (-3)
This is after checking out the source both with "git clone" and also just downloading the master zip file from Github and unpacking that. It appears that whatever git repo the build is expecting isn't there.
BTW, with the features='fwupd' build, why is it still trying to access the System76 code?
Please consider adding release tags to this project. Now that it is a dependency of system76-driver
, it would be helpful to package maintainers to have versioned releases.
Currently there is no indication that selecting a device will show the firmware changelog. Using a dropdown button similar to the one on the Color
tab would probably be a good fix. The current thought is that such a button should be on the far left of each device.
Integrate automatic firmware updates into Pop!_OS via a system library that displays in gcc (Devices > Firmware) and daemon that checks for updates and provides notifications. The library and daemon can be installed on other distributions for system76 firmware updates. Both will be installed for system76 customers using Ubuntu probably with the system76-driver package.
"System Firmware" is firmware that requires a reboot to install.
I've found that this project doesn't seem to be listening for events related to a USB or Udev device hotplug. If I unplug a device while running firmware-manager-gtk
the device continues to be listed. Likewise if I plug in a device while running it doesn't show up.
Currently the pop-up for system firmware notifications says: Fixes and features include:
and then lists the changelog. Potentially that is a little odd, as showing the changelog of versions prior to what is installed isn't really showing what fixes and features are included in the update.
Maybe change the wording to just state that the following is a changelog? Or show only the changelog containing the latest update?
For both system and device firmware, open the devices firmware changlog when a device is clicked using the same dialog that's used for system firmware updates.
If an update is available, offer an Update button. Close the window once Update is clicked (progress is shown in the panel).
I find that running firmware-manager-gtk
metadata is fetched on every single launch of the application, which is overkill. I would recommend to cache that metadata and only look once per day (unless the refresh button in the UI is clicked).
Notifications seem to have broke. I have attempted to reboot but have had no success getting a notification about new firmware. I do however get the notification about new firmware from the system76-driver firmware implementation.
Background: I wanted to test what would happen if after opening the firmware page with an update available for a fwupd device (a mouse), if I disconnected the mouse what would happen when attempting to update the nonconnected mouse. As is appropriate, an error appears.
Issue: When dismissing the error, the page does not refresh so the button to update a disconnected device still exists. In discussion with @jackpot51 it seems to make sense to refresh/update the page whenever dismissing an error message.
Looking at README.md, I see no mention of what the minimum version of Rust is required to build Firmware Manager.
I just tried building it on CentOS 7 (after a "yum install cargo") and cargo threw out an error:
cargo run -p tools --bin desktop-entry --
--appid com.system76.FirmwareManager
--name "Firmware Manager"
--icon firmware-manager
--comment "Manage system and device firmware"
--keywords firmware
--keywords system76
--keywords fwupd
--keywords lvfs
--categories System
--categories GTK
--binary com.system76.FirmwareManager
--prefix /usr
--startup-notify
error: failed to parse manifest at /tmp/firmware-manager-master/gtk/Cargo.toml
Caused by:
could not parse input as TOML
Caused by:
unexpected character found: \\
at line 22
EPEL for CentOS 7 only has Rust 1.36.0, which presumably isn't recent enough - could you please add the minimum Rust version requirement to README.md?
Should be the last in the devices list.
Upon a reboot/cold boot, I get a notification on multiple machines (darp5, thelio-major-b2, thelio-major-r1) that a firmware update is available even though no update is available (and there is a valid network connection).
When switching from a different settings tab to the Firmware tab, very briefly the "Managed Firmware Unavailable: No devices supporting automatic firmware updates detected" is shown. As it only appears for a brief moment, it appears jarring (not to mention incorrect). Perhaps wait to show that message until making an attempt to look for supported firmware first?
Notification pops up, mentioning a firmware update but when selecting the notification, GNOME Settings does not show an available update.
Noticed while updating thelio-io board firmware, the progress bar makes it 80/90% through before disappearing as the installation is complete. Progress bars should complete when/if the associated task completes.
New version is displayed after moving off the panel and back.
Pop!_OS 18.04 seems to behave identical to Ubuntu 18.04 where the firmware-manager application exists as a standalone program. All Pop!_OS distributions should have the firmware manager integrated into GNOME control center.
To add the firmware packages on Ubuntu 18.04 I ran:
git clone https://github.com/pop-os/pop
./pop/scripts/apt add firmware --dev
sudo apt update
sudo apt upgrade
sudo apt update
then shows that there is 1 application to be upgraded but neither sudo apt upgrade
nor sudo apt full-upgrade
upgrades the package. Further investigation shows the following issue:
system76@system76-pc:~$ apt policy system76-driver
system76-driver:
Installed: 19.04.12~1565034523~18.04~e2801c1~dev
Candidate: 19.04.15~~alpha~1565816384~18.04~4001991~dev
Version table:
19.04.15~~alpha~1565816384~18.04~4001991~dev 1002
1002 http://apt.pop-os.org/staging-ubuntu/firmware bionic/main amd64 Packages
19.04.14~1565295911~18.04~d8fec20~dev 500
500 http://ppa.launchpad.net/system76-dev/stable/ubuntu bionic/main amd64 Packages
*** 19.04.12~1565034523~18.04~e2801c1~dev 100
100 /var/lib/dpkg/status
system76@system76-pc:~$ sudo apt install system76-driver=19.04.15~~alpha~1565816384~18.04~4001991~dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
system76-driver : Depends: firmware-manager-virtual but it is not installable
E: Unable to correct problems, you have held broken packages.
When there is no network connection, currently an error appears error trying to connect
.
When a system is offline and not connected to a network, this page should still be able to show the currently installed firmware (just not be able to check for updates).
Currently in the system76-driver, we filter out products that do not support updates via this process.(https://github.com/pop-os/system76-driver/blob/master/system76driver/firmware.py#L43). We do not have this for firmware-manager. This therefore includes all System76 products even if they should not be shown (as updates would never arrive through this mechanism).
Use "View and update system and device firmware".
Hi, after installing the latest gnome control center update with the new firmware manager tab, it prompted me to update the thinkpad system firmware on my P50. This with a version older than the one I have installed already.
I suspect this has everything to do with the fact that I updated the firmware with Lenovo's tool on the Windows install of the machine and that wherever linux sources its firmware from hasn't caught up yet. But I suppose it might make sense to include a check whether a detected version mismatch is also more current.
An error is thrown when attempting to read the system firmware for thelio-major-r1
Potentially related to the fact that these values can be optional: https://github.com/pop-os/system76-firmware/blob/b74e9f8db115fdfd6495be7a3695d84bfa8b746b/daemon/src/lib.rs#L200
Check fwupd. System76 system firmware is immediate. Thelio Io is always 15 seconds.
With a firmware update available on the gaze14, selecting the Update
button opens a blank window with the inability to update the firmware.
When launched from the terminal, gnome-control-center returns an error message: Gtk-CRITICAL **: 07:40:54.541: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed
With just the firmware staging branch added, a firmware tab in gnome-control-center is still being added. This integration for gnome-control-center should only happen on Pop!_OS.
EDIT: Removed screenshot because it was an outdated screenshot
Upon plugging in a Logitech MX Master Mouse the fwupd service showed the following logs:
Aug 02 07:14:16 pop-os systemd[1]: Starting Firmware update daemon...
Aug 02 07:14:16 pop-os fwupd[1035]: 13:14:16:0816 FuPluginUefi failed to add /sys/firmware/efi/esrt/entries/entry0: ESRT GUID '00000000-0000-0000-0000-000000000000' was not valid
The mouse should be detected and shown as it is a valid fwupd device. This error appeared on both the Darter Pro and thelio-major-b2.
Firmware changelogs are currently available in a pop-up when the specific device/system is selected. That should be replaced with a dropdown providing this information.
System firmware should still also have a pop-up as the user should confirm this "destructive" action (rebooting and installing system firmware).
When there are no supported devices found, the Device Firmware
header should be hidden.
This has me thinking, the same should probably be done for System Firmware
.
Currently on all system firmware updates, there is a message at the bottom of the pop-up menu that tells the user if the machine they are on is a laptop, to plug in the laptop before running the update.
It should be possible to determine if the machine is a laptop or desktop and only show a message when the machine is a laptop.
The changelog is currently be sorted incorrectly (such that 2.9 > 2.12) and therefore the firmware is being upgraded to an incorrect version.
Confirmation from manufacturer's website of latest firmware: https://www.dell.com/support/home/us/en/04/product-support/product/xps-13-9360-laptop/drivers
ISSUE:
Looking at the firmware tab in GNOME Control Center on 19.04 on a machine without any supported System76 or fwupd supported devices the firmware panel remains blank.
HYPOTHESIS: It appears that the search for fwupd devices begins, as evident by the scanning fwupd devices
message. The search never appears to end (perhaps because TIMEOUT=-1
in fwupd-dbus/src/lib.rs ?) and therefore the view_empty
state is never reached and the panel remains blank.
In Pop!_OS 19.04, fwupd devices are not showing up in GNOME control center.
With system firmware already downloaded before notifying the user of new firmware, the progress bar shown after selecting reboot shows up for a split second providing no real value to the user.
This progress bar c/should probably just be removed from system firmware updates.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.