28

I have a Dell Inspiron 3647 desktop with Ubuntu 20.04 LTS (Focal Fossa).

How can I check the bios firmware version from inside Ubuntu and update it (if necessary) without using MS Windows?

3 Answers3

40

Notes:

  • This guide also works with older versions of Ubuntu, like 16.04 (Xenial Xerus).
  • Although this guide is focused on Dell computers, it should fit other vendors as well.
  • Should also work fine with other GNU/Linux distributions.

Warning: electrical power outage during bios firmware installation may result in irreversible damage! Be sure to avoid it!


1. Update using Linux Vendor Firmware Service (LVFS) (available for some computers from 2015 onwards)

  • Go to the LVFS Devices Website and check the computer models available by this service. Until this point, Dell and Lenovo are the two vendors with the largest coverage.

    If your computer is on the list, proceed with this section. If not, check the following sections of this guide.

  • Install fwupd (if not already installed):

      sudo apt install fwupd
    
  • Start the daemon service:

      sudo service fwupd start
    
  • Refresh the list of available firmware updates:

      sudo fwupdmgr refresh
    
  • List devices connected and supported:

      fwupdmgr get-devices
    
  • List updates available (for previously listed devices):

      fwupdmgr get-updates
    
  • Install the firmware update (if available):

      sudo fwupdmgr update
    

  • GUI Alternative: In case you don't want to do the update through the terminal (previous steps), you can try the Software Center, Updates tab (image below):

Software Center

  • Reboot the machine to complete the update installation process.

  • If this section suited, you should be done at this point.

This is the newest and more convenient way to update bios firmware from within a GNU/Linux OS. It's an effort from many hardware vendors to offer the updates right out-of-the-box for Linux users. More information at Linux Vendor Firmware Service (LVFS).

2. Check the installed bios firmware version

  sudo dmidecode -s bios-version

3. Check the installed bios firmware release date

  sudo dmidecode -s bios-release-date

4. Find the latest bios firmware version available for your computer from Dell

  • Go to the Dell Support Website and find your computer by informing its model, service tag or express service tag.
  • Click on the Drivers & Downloads tab.
  • On the Operating System drop-down button, choose BIOS. The system will show the latest version available.
  • If the version installed on your computer is out-of-date, download the file. It's a Windows executable file (.exe).

Dell Webpage Support

  • Be sure to check the integrity of the downloaded file by running a checksum:

      sha256sum [/path/to/file.exe] | grep [SHA-256 hash informed on webpage]
    

    If the output hash is printed in a different color (highlighted), like in red, your good to proceed.

5. Update using Flash Boot (available for computers from 2015 onwards)

This section is suitable if your bios offers the option BIOS Flash Update in Boot Menu (image below).

Bios Flash Update

  • If your system is using the bios in UEFI mode: copy the bios executable file to the /boot/efi/ directory.
  • If your system is using the bios in Legacy mode: format a pen drive as bootable and copy the bios executable file to it.
  • Restart the computer.
  • As soon as the Dell logo is displayed, type F12 to be redirected to the Boot Menu.
  • Choose BIOS Flash Update.
  • Choose the bios executable file and execute it. The new bios firmware is going to be installed and the computer will restart afterward.
  • You can check the version and date of the new bios firmware installation by repeating sections 2 and 3 of this guide.
  • If this section suited, you should be done at this point.

6. Update using FreeDOS (bios without Flash Boot feature - older hardware)

  • Visit the FreeDOS Operating System Website and download the Lite USB version of it.
  • Write the downloaded FreeDOS image file to the USB drive using software like Startup Disk Creator (usb-creator package).
  • Copy the bios executable file to the pen drive.
  • Restart your computer.
  • As soon as the Dell logo is displayed, type F12 to be redirected to the Boot Menu.
  • Choose to boot from the USB drive (image below). If this option is not available on the menu, you might need to switch the bios from UEFI mode to Legacy mode.

Boot Menu

  • At the beginning of the FreeDOS boot process, you will be asked to proceed with the installation, or cancel and leave to the DOS terminal. Choose "No - Return to DOS" (image below), otherwise Ubuntu will be overwritten with FreeDOS.

FreeDOS

  • In the DOS terminal, type dir to list the directories and files available from the USB drive. You should see the bios executable file, besides the FreeDOS files.
  • In order to proceed with the bios firmware installation, you might need at least 15MB of free space on the current USB partition. If you don't have enough free space, you will be warned of so and the process will be automatically aborted. In this case, just delete the FreeDOS Packages folder. You won't need it anyway.
  • Type the name of the bios file and type enter to execute it. Proceed with the installation. At the end of the process, the computer will restart.
  • You can check the version and date of the new bios firmware installation by repeating steps 2 and 3 of this guide.
  • If this section suited, you should be done at this point.
2

Copying the downloaded BIOS executable to /boot/efi and then following procedure 5 (Starting the computer with F12 pressed to enter the BIOS Flash Update procedure) worked out for me as the most simple and reliable method to update the Dell BIOS. No hassle with booting FreeDOS, no hassle to get a USB stick mounted to the BIOS Flash Update (never worked for me on my USB-C only XPS 13), no need to temporarily changing anything of the BIOS settings.

mxrgl
  • 21
0

I got my bios updated, thanks for the long writeup, had to innovate a bit however. Very important point, I lost a lot of time with this - you cannot make a Windows or DOS bootable USB from Linux with the usual tools dd or UNetbootin. I don't know why but don't try as it will fail quietly. More detail here :

How can I create a Windows bootable USB stick using Ubuntu?

I ended up using WoeUSB.

Eventually the Dell Precision desktop did boot into FreeDOS from the USB I made with WoeUSB. The BIOS update .exe I had downloaded did start to run but failed to complete.

Then I read this :

https://www.dell.com/community/en/conversations/inspiron/bios-update-using-freedos-fails-on-inspiron-17-5721/647f85baf4ccf8a8de4a3628

Just received an e-mail from one of the developers of FreeDOS. Long story short: 3521A16.exe is NOT a DOS application, and will not run under FreeDOS. It may be a "Universal (Windows/MS DOS)" application, whatever the hell that is, and it may run from a command line operating within a Windows environment, but it will not run in a pure DOS environment

So I tried instead of FreeDOS Hiren's BootCD (also created with WoeUSB) :

https://www.hirensbootcd.org/

It was an interesting 'rescue' image but unfortunately the Bios update file would not run from there either! Hiren's was however useful for its Windows password cracking tool to unlock an old (legitimate) Windows 7 I had on another drive but had lost its passwords. I booted into that and from there the Dell Bios update ran very nicely.

That's not what this question is about ("without using Windows") however it may help someone to know the details to create a Windows or DOS bootable from Linux and that FreeDOS or Hirens may not even run the Bios update file. I would suggest if you find yourself in that situation after trying both FreeDOS and Hirens, try to get a real Windows image just for one-off use for this purpose.