Usually, the default software center in Ubuntu and other Linux distributions handle the update of the firmware of your system. But if you encounter errors with it, you can use fwupd command line tool for updating the firmware of your system.
I use Dell XPS 13 Ubuntu edition as my main operating system. I have done a fresh installation of Ubuntu 18.04 on it and I cannot be happier with the hardware compatibility. Bluetooth, external USB headsets and speakers, multi-monitor, everything works out of the box.
The one thing that troubled me was one of the firmware updates that appeared in the Software Center.

Clicking on the Update button resulted in an error a few seconds later.

The error message was:
Unable to update “Thunderbolt NVM for Xps Notebook 9360”: could not detect device after update: timed out while waiting for device
In this quick tip, I’ll show you how to update the firmware of your system in Ubuntu.
Updating firmware in Ubuntu

One thing you should know that GNOME Software i.e. the software center in Ubuntu 18.04 is also capable of updating the firmware. But in situations when it fails for some reason, you can use the command line tool
fwupd is an open source daemon that handles firmware upgrades in Linux based systems. It is created by GNOME developer Richard Hughes. Developers from Dell also contributed to the development of this open source tool.
Basically, it utilizes the LVFS, Linux Vendor Firmware Service. Hardware vendors upload redistributable firmware to the LVFS site and thanks to fwupd, you can upgrade those firmware from inside the operating system itself. fwupd is supported by major Linux distributions like Ubuntu and Fedora.
Step 1: Check if your system is supported by LVFS
Since LVFS depends upon hardware vendors, it’s a good idea to check if your system manufacturer supports this feature or not.
Find out your system model and then go to this web page and see if it’s listed:
Step 2: Using fwupd for updating fimrware
Normally, fwupd should already be installed on your Linux system. If not, install it using the package manager of your distribution.
Open a terminal and update your system first (commands applicable for Debian and Ubuntu-based distributions):
sudo apt update && sudo apt upgrade -y
After that you can use the following commands one by one to start the daemon, refresh the list of available firmware updates and install the firmware updates.
sudo service fwupd start
Once the daemon is running, check if there are any firmware updates available.
sudo fwupdmgr refresh
The output should look like this:
Fetching metadata https://cdn.fwupd.org/downloads/firmware.xml.gz
Downloading… [****************************]
Fetching signature https://cdn.fwupd.org/downloads/firmware.xml.gz.asc
After this, run the firmware update:
sudo fwupdmgr update
The output of the firmware update could be similar to this:
No upgrades for XPS 13 9360 TPM 2.0, current is 1.3.1.0: 1.3.1.0=same
No upgrades for XPS 13 9360 System Firmware, current is 0.2.8.1: 0.2.8.1=same, 0.2.7.1=older, 0.2.6.2=older, 0.2.5.1=older, 0.2.4.2=older, 0.2.3.1=older, 0.2.2.1=older, 0.2.1.0=older, 0.1.3.7=older, 0.1.3.5=older, 0.1.3.2=older, 0.1.2.3=older
Downloading 21.00 for XPS13 9360 Thunderbolt Controller…
Updating 21.00 on XPS13 9360 Thunderbolt Controller…
Decompressing… [***********]
Authenticating… [***********]
Restarting device… [***********]
This should handle the firmware update in Ubuntu. I hope this quick tip helped you with firmware updates in Linux.
If you have questions or suggestions, please feel free to use the comment section below.
Touchscreen in Dell inspiron does not work in ubuntu 20.04.
Used this method, it reports: ST31000524AS has no available firmware updates.
Helpful article. Worked perfectly on my HP desktop.
Hello sir, can u help me. i want make a book about carry out server configuration using ubuntu. For knowledge, must have i. Patch installation:
• firmware
• software
ii. OS update
iii. Server configuration setting:
• user configuration
• application configuration
• server roles configuration:
– e-mail server
– web server
– DNS
– proxy
– Dynamic Host Configuration Protocol (DHCP)
– File Transfer Protocol (FTP)
– database
– remote access
• monitoring agents:
– NRPE
– NMS (Network Monitoring System)
iv. Server restoration and back-up setting
v. Type of server unit testing:
• Connectivity test
• Stress test
• Functionality test
vi. UAT (User Acceptance Test)
plss help me sir… Urgent
I’ve put together a video explaining how to do so on a Thinkpad T470 (or any other machine really) using LVFS and fwupdmgr, also covered some of the infrastructure behind it so hopefully people find it useful!
https://youtu.be/3zcmDsJbWQA
Thanks buddy