Updating the Dell UEFI BIOS and System Firmware in Ubuntu

In the past it was relatively difficult to keep the firmware of devices up to date in Linux as the OEMs made firmware update utilities that only supported Windows. For newer UEFI Devices, there is the ability to update the UEFI BIOS via USB from the UEFI Boot Menu. This only updates the UEFI BIOS and does not update SSD firmware of connected Thunderbolt Dock Firmware.

The Linux Vendor Firmware Service (LVFS) has been put together by Device Vendors or OEMs as a means for users to easily update their devices firmware using Linux. Dell and Lenovo in particular have been widely using the LVFS. Dell support all recent (6th generation Intel Hardware or Later) Business models such as the Latitude, Precision, OptiPlex and Xtreme Performance Systems (XPS).

More details about supported Devices is available on the LVFS website:

This guide looks at updating the UEFI BIOS and other Firmware using Ubuntu 20.04 (or later).

Linux Firmware Update Manager

The Linux Firmware Update Manager is inbuilt into Ubuntu. It is command line based. To use it open the Terminal.

You can also use the shortcut [Ctrl] + [Alt] + [ t ] to launch the terminal.

The firmware update manager (fwupdmgr) is command line based. To see a list of available commands type in:

fwupdmgr

Then press [↵]:

The commands we are most interested in are:

  • get-devices which tells us what devices connected to the system can have their firmware updated
  • get-updates which searches for available firmware updates for devices connected to the system
  • update which can be used to update the firmware of all devices
  • update [DEVICE-ID|GUID] which can be used to update the firmware of a specific device

Typing in:

fwupdmgr get-devices

Then [↵].

Shows in this case:

  • The SSD Firmware
  • The UEFI BIOS Version
  • The TPM

Other systems will display details about a Thunderbolt Dock.

Each Device has a Device ID, which can be copied by right clicking.

We can use the command:

fwupdmgr get-updates

To check for any available firmware updates on the LVFS. Press [↵] to proceed.

There is no Firmware Update Available for the SSD:

A new UEFI BIOS Update 1.17.0 is available for the OptiPlex 7040:

A specific Device can be updated by typing in:

fwupdmgr update 

And then pasting in the Device ID and pressing [↵].

You will then be asked if you want to proceed. Type in [y] to proceed and [n] to cancel then press [↵]:

If no Device ID is specified, then the firmware update manager will instead attempt to update everything:

Type in:

y

Then [↵] to proceed.

If performing a UEFI BIOS update, you will be prompted to restart your computer. Type in:

y

Then [↵] to restart your computer.

You will see the Dell Ubuntu splash logo:

When the computer reboots it will state "Found update fwupd-ux-capsule":

The UEFI BIOS will proceed:

If using a Dell Dock e.g. WD19TB you will be prompted to unplug the USB Type C Connector from the system and leave the dock idle for a minute before reconnecting it.

Updating Firmware from a CAB File

In some cases the Firmware Update isn't listed on LVFS but instead listed as a CAB file on the OEMs Drivers and Downloads Page.

Note the Firefox Browser does not Download CAB Files correctly and instead tries to open them as text in a browser tab.

Use the Chromium Browser to Download these. In this example I will look at updating the WD19TB Dock. It only has Ubuntu 18.04 LTS as the available Linux option:

Select Download, you should have a .CAB File:

Go to the downloads folder and right click it and select Open in Terminal (this will save you from requiring to specify the path of the file):

Type in:

sudo fwupdmgr install

Next you need to specify the file, so right click the file name and select Rename:

Right click and copy the File Name including the .cab extension:

Right click the Terminal and paste the filename in:

Press [↵] to proceed:

Because sudo, super user do was typed in you will need to supply your password:

The firmware update will now install:

In the case of the WD19TB dock you will be instructed to unplug the dock from the Laptop for at least a minute (the dock should remain powered however):

After this minute, you may plug the dock back in, it should now be updated to the latest firmware. If the file is attempted to be installed again you will be informed the dock is already at the latest firmware:

At the time of writing the dock is not fully compatible with Ubuntu 20.04/20.10. When the Dock is used to power up the Laptop, Ubuntu 20.04/20.10 hangs on the Dell-Ubuntu Splash Screen:

The Dock Firmware needs to likely be updated further for Ubuntu 20.04/20.10 support or the Ubuntu boot loader needs to be updated to better support Thunderbolt Docks. I have left feedback for Dell on this. Hopefully there will be a newer update for Ubuntu 20.04 released directly to LVFS for the Dock soon.

Updating your UEFI BIOS via the UEFI BIOS Boot Menu

If your system isn't supported by the Linux Vendor Firmware Service (LVFS) you should power it off and then power it up and press [F12] to get to the UEFI BIOS Boot Menu. If the option BIOS Flash Update is available you will be able to update the UEFI BIOS by use of a blank USB Flash Drive that contains the UEFI BIOS Update.

For this Dell OptiPlex 7040, go to the Dell Website:

Select Support and then Driver Support:

Type in your Model and select it when it displays:

Select Drivers & Downloads:

Change the selection to BIOS:

Download your UEFI BIOS Update:

Select Save File and select OK:

The UEFI BIOS Update is now in Downloads:

I recommend using GParted to create a blank FAT32 USB Flash Drive. To do this open the terminal:

Type in:

sudo apt-update

Notes:

  • sudo stands for super user do and typing this at the beginning of a command implies that you want to carry it out as a super user.
  • apt stands for advanced package tool.
  • apt-get update will update the advanced package manager to the latest version

Type in [↵] to proceed.

Because sudo was typed, you will be prompted to input your password. Once you have typed in your password, type in [↵]:

The advanced package tool will be updated.

Now we can type in the following command to install gparted:

sudo apt-get install gparted

Type in [↵] to proceed:

Type in:

y

Then [↵] to proceed:

GParted is now installed and the terminal can now be closed.

You can launch GParted from the Application screen.

You will need to input your password to run it as a super user. Once you have input your password select Authenticate:

To the top select your USB flash drive:

If a partition is mounted within Files, you will need to unmount it.

Right click it and select UnmountL

Select Device and then Create Partition Table:

Select GPT and then select Apply:

Next you will need to create a partition:

Right click the grey space and select New:

Ensure it is FAT32 and optionally label the partition and then select Add:

Then select the checkbox to apply the changes:

Select Apply:

Once the operations are performed, select Close:

You can then Close GParted.

Remove your USB Flash Drive from the USB port and reinsert it. It should display:

Copy the UEFI BIOS Update to it:

Your UEFI BIOS Update USB Flash Drive is now ready:

Select Power Off to the top rightL

Then select Power Off:

Power up your Dell and press [F12] to access the UEFI BIOS Boot Menu:

Press the [↓] until you get to (UEFI) BIOS Flash Update and then press [↵]:

Select the Browse Button to the top right:

Your USB Flash Drive will likely be File System 0 (FS0), a drop down will be available if other storage Devices are attached. Select the UEFI BIOS Update. The select OK.

Select Begin Flash Update:

Select Yes:

The Computer will reboot and the UEFI BIOS Update will proceed: