39

I have installed Ubuntu 11.10 on a vista laptop, but Dell is providing the BIOS update in .exe format currently my bios version is A09 but on the driver download site the latest version of bios is A011.

Help me out to update the bios.

My laptop information:

Libsmbios version:      2.2.28
Product Name:           Studio 1537
Vendor:                 Dell Inc.
BIOS Version:           A09
System ID:              0x029F
Service Tag:            HBVV2BS
Express Service Code:   37723945096

Upon running sudo update_firmware I get the following set of errors:

E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2919-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2919
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2930-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2930
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2929-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2929
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0832-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0832
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x294a
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2448
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2946
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2940
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2942
E: Unable to locate package pci-firmware-ven-0x1002-dev-0xaa28-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1002-dev-0xaa28
E: Unable to locate package pci-firmware-ven-0x1002-dev-0x95c4-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1002-dev-0x95c4
E: Unable to locate package pci-firmware-ven-0x14e4-dev-0x1698-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x14e4-dev-0x1698
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2936-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2936
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2935-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2935
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2934-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2934
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293a-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293a
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0822-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0822
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0592-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0592
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0852-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x1180-dev-0x0852
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x4232-subven-0x8086-subdev-0x1321
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x4232
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293e-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293e
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2a40-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2a40
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2937-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2937
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2938-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2938
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2939-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2939
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293c-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x293c
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2a41-subven-0x1028-subdev-0x029f
E: Unable to locate package pci-firmware-ven-0x8086-dev-0x2a41
0

12 Answers 12

32
+500

EDIT October 2015

In the post-Win7 era this answer has outlived its usefulness. Look at the other answers first. Read no further unless you have time to burn.

Other answers posted to this question may work with older hardware, but I posted this after my experience of upgrading the BIOS of a Dell Inspiron 7520 (vintage 2012). Checking dates on unofficial Dell support web sites suggests that this may also apply to other Dell models since 2010 or even earlier.

The first step is to get information about your current system. In Ubuntu you can check the BIOS version with the following two commands:

sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date

You need information about your computer's hardware when querying the manufacturer's website. For Dell this is often printed somewhere on the underside in the form of a Service Tag and an Express Service Code. If this is not easy to read, the information can be obtained in the following way:

1) Install libsmbios:

sudo apt-get update
sudo apt-get install libsmbios-bin

2) Get the service tab etc. from the system:

sudo getSystemId

This will produce output like this:

Libsmbios version:      2.2.28
Product Name:           Inspiron 7520
Vendor:                 Dell Inc.
BIOS Version:           ANN
System ID:              0xNNNN
Service Tag:            NABCDEFN
Express Service Code:   NNNNNNNNNN
Asset Tag:              
Property Ownership Tag: 

with the key information in the BIOS version, the System ID, the Service Tag, and the Express Service Code.

Armed with the above information, go to the Dell web site and download the appropriate driver(s) for your particular computer.

So far so good, but you will notice that the download is a Windows executable. Just as this cannot be run under Ubuntu (or any other Linux), it also will not run under legacy versions of Windows, in particular MS-DOS or any emulation of MS-DOS. This is in spite of anything it may say on the download page about being compatible with earlier versions of Windows; using any legacy DOS-type environment the .exe runs, but exits without doing anything except printing out an annoying message.

So, here comes the fun bit: you need a Windows 7 (or later) environment in order to run the BIOS upgrade. And how do we do that on a single-boot Ubuntu machine (or even a computer running legacy Windows, like XP)?

The key ingredient at this point is a Windows 7 Repair Disk. There are several ways to obtain one, including buying one from sources on the internet, or making friends with someone who has a Windows 7 computer. If you are lucky your computer manufacturer bundled one with your box. I chose to make one on my Ubuntu machine, using a copy of Windows 7 running in VirtualBox, adapting the instructions for making a rescue disk from this web site.

The good news is that it does not seem to matter which version of Windows 7 the Repair Disk is obtained from. Since this is a BIOS upgrade it does not even matter whether you use 32-bit or 64-bit versions if your computer is 64-bit.

Once you have a Windows 7 Repair Disk, the rest is easy. You can make it into a bootable USB if you wish, but if your box has a CD drive this is unnecessary. Here are the steps:

  1. Put the downloaded BIOS upgrade .exe on an ordinary USB flash drive.
  2. Reboot you computer from the Windows 7 Repair Disk, hit the Space bar when prompted.
  3. Navigate to the command prompt. (Use Recovery Tools->Command Prompt).
  4. Find the correct drive letter for your USB (on the command line dir a: then b, c, etc. till you find the right one).
  5. Navigate to it on the command line (type the drive letter with colon).
  6. Run the file by typing its name (note tab auto-completion works :)).
  7. From there, just follow the on-screen instructions, and make sure your computer stays powered-on while the upgrade completes.

Note there are TWO automatic reboots before you get back to your Ubuntu startup screen.

8
  • 3
    Awesome answer, please note what just happened: your question got closed as a duplicate of this one, the answer you posted to your post got moved to this question, I have added a bounty to the question for "outdated answers" reason, the bounty will probably be yours if no one finds any other way of doing this without the Windows7 rescue disk. Jan 8, 2013 at 15:39
  • 1
    Thanks @Bruno, I was not sure how to deal with the outdated answers which is why I risked duplicating the question, your solution of merging is excellent.
    – Bobble
    Jan 8, 2013 at 16:09
  • 2
    @Boble - i tried your approach - when I executed BIOS file (6430SA15.exe) I got error message: "The subsystem needed to support the image type is not present". It seems it is something with 32/64 problem :( -any idea?
    – xhudik
    Oct 6, 2015 at 7:11
  • 1
    Dell likely re-compiled their exe files and they are now working in DOS mode (no win64 as i mentioned 1 comment above) - that said this answer won't help anymore. RAOF' answer (FreeDos on USB) helped me
    – xhudik
    Oct 6, 2015 at 8:15
  • 1
    @xhudik I expect in the post-win7 era Dell have realised they need something a little more future-proof. Dare I say this is something good that came out of Windows 10 :) ?? In view of your comment I'll edit my answer so folks don't get sidetracked by something that is now a historical curiosity.
    – Bobble
    Oct 6, 2015 at 9:48
23

You do not need Windows to install any firmware updates from their site, just follow the instructions posted here.

From the Dell website:

  1. Download the WIndows/DOS BIOS installer for your hardware from dell.com
  2. Download the latest SystemRescueCD and burn it to a blank CD or install it to a USB flash drive.
  3. Copy the Windows/DOS BIOS installer to a FAT formatted USB stick or the one that you installed the SystemRescueCD on.
  4. Boot from the CD or flash drive.
  5. Choose to boot from FreeDOS in the floppy images menu.
  6. Make sure you do NOT load HIMEM and EMM386 memory managers.
  7. Change to the USB stick (typically C: if you do not have any FAT partitions on your HDD).
  8. Run the installer

Example when running the A14 update for the E7240 machine.

enter image description here

8
  • 1
    This works like a charm and i really don't understand why this is not answer N°1! I downloaded the latest SystemRescueCD (4.2) and created a LiveUSB what is explained very straight forward on their homepage. At the root of this fat32 stick simply made a dir (eg. media) and putted the .exe inside. Then boot from stick and choose "A) Run .. floppy .." → FREEDOS for this new version. I then chose option 2) "XMGR and UIDE.." obeying advice 6) from above. For those who don't know (WIN)DOS world: Change drive witch simple c: and run in this example cd media and [updatename].exe. (Vostro 3460)
    – elf12
    May 27, 2014 at 18:41
  • At first I thought this wouldn't work, because BIOS update utilities are for Windows, but it turns out to run in FreeDOS as well. Cool!
    – gertvdijk
    May 1, 2015 at 7:08
  • omg... after DAYS of trying, this finally worked!!!
    – dorien
    Sep 21, 2015 at 11:59
  • This worked like a charm for me updating my Dell D630 to A19. A couple things not mentioned here that I had to figure out: I chose option 0 which was for no memory manager and also had to have the USB key with the .exe in it installed when I rebooted otherwise it wasn't recognized.
    – Brian
    Jan 24, 2017 at 21:47
  • 1
    Maybe I'm being dense, but booting with SRCD 6.0.2 shows no floppy images menu and no FreeDOS choice. Was this removed in later versions? Should I try a FreeDOS boot floppy instead? Mar 31, 2019 at 16:49
7

Dell has a very nifty utility to download and apply latest BIOS to their computers that are using Linux. It should theoretically run without any problems and you can run it in Ubuntu.

Please visit their page for more information, there are precise instructions there:

Here are the instructions from the linked page

sudo wget -q -O - http://linux.dell.com/repo/firmware/bootstrap.cgi | bash
sudo apt-get install firmware-addon-dell
sudo apt-get install $(bootstrap_firmware -a)
sudo update_firmware

Please note: I have not tested this myself, you might first drop an email to Dell support to ask them if this method deprecated or if there are any issues with it.

Note: As per 2020, this is outdated. firmware-addon-dell is not available for Ubuntu 20.04 and the the last commit to the github repo of firmware-addon-dell (https://github.com/dell/firmware-addon-dell) was on 2011.

3
  • on running sudo update_firmware i m getting error , i have mentioned abt the error in my ques Feb 3, 2012 at 3:09
  • 3
    This does not seem to be current. On trying this the first instruction fails with the following message:the firmware respository is obsolete and unmaintained. Please use the OMSA repository instead for official updates. When I checked the script the message appears as the first executed line, followed by exit 1. Nuff said...
    – Bobble
    Dec 30, 2012 at 21:29
  • Having now checked out the OMSA offering, I find that there is no Ubuntu support at time of writing, and support of other distros is not reliable. I have now tried all the published methods of doing this, except for reinstalling Windows on my system, which I can't do because I don't have an installation disk (I wiped the install partition, too...).
    – Bobble
    Jan 3, 2013 at 11:40
6

Recent Dell BIOSes have a built-in upgrade module.

  1. Download the appropriate .EXE upgrade program from Dell website.
  2. Write this file to a USB drive.
  3. Insert said USB drive and reboot. (NB : if your computer boots in UEFI mode, you can instead put the .EXE in the /boot/efi partition : it should be found automatically)
  4. As the Dell logo appears, press F12 to enter the One-time Boot Menu
  5. In this menu, select Bios Flash Update. If this entry does not appear, your BIOS does not have the built-in upgrade module.
  6. In the upgrade module, locate the .EXE upgrade program on the USB disk.
  7. Launch the upgrade process.
4

My 7 Steps To Happiness without using any external drives

I've recently updated the BIOS of my Dell Latitude E6500 from version A27 to A29 under Linux Mint 17 KDE (= Ubuntu 14.04 LTS Trusty Tahr) with the CLI and here is what worked very well for me:

  1. Download the needed DELL Software sudo apt-get install firmware-addon-dell smbios-utils wine
  2. Check your BIOS version: sudo dmidecode -s bios-version My output: A27

  3. Download your BiosUpdateFile.exe (in my case E6500A29.exe) for your specific device from the DELL Support Page

  4. Switch to the directory which nests your E6500A29.exe and extract the *.hdr file from it with the command: wine E6500A29.exe -writehdrfile

  5. Update BIOS: sudo dellBiosUpdate -u -f E6500A29.hdr

  6. Reboot: sudo reboot now

  7. Check your BIOS version again: sudo dmidecode -s bios-version My output: A29

1
  • I tried this on an old Dell D630 and did not have success updating to A19. The hardware maybe too old. Everything installed by the BIOS updater said it couldn't find the firmware when it ran.
    – Brian
    Jan 24, 2017 at 21:45
3

First, I would not update the BIOS unless there is a specific problem that requires a BIOS update to fix (such as activation of Virtualization technology).

If a BIOS update goes bad your computer can be rendered a paper weight.

Personally I use FreeDOS, although there are other options.

I put it on a flash drive with unetbootin and add the bios_update.exe to the flash drive.

You then boot from usb and run the bios_update.exe from the DOS command prompt.

If you can to boot a usb, you can burn a CD.

The Arch wiki has great information with several additional options.

See : https://wiki.archlinux.org/index.php/Flashing_BIOS_from_Linux

1
  • thanks , i will not update as i am not getting any such problem Feb 3, 2012 at 3:15
3

For Older Dell Machines

I have an old Dell desktop (Dimension E520 circa 2006) running Ubuntu. To update the BIOS I downloaded the required .exe from Dell. Then I tried to run it using the following:

  1. Using a USB drive with FreeDos. The machine wouldn't boot into FreeDos and it gave a Device not ready error.

  2. SystemRescueCD - same problem as 1) above.

  3. Used a Windows 7 64 bit installation disc, booted into Windows command prompt environment but an error "image type is not present" is returned.

  4. In another thread I discovered that the error in 3) can be overcome using a 32 bit Windows disc. So I tried again with 32 bit. This time the exe ran, clicked the prompts etc. and no error messages, but the BIOS wasn't updating.

Finally, I tried the method outlined here on the Dell support forums.

  1. Download the Dell Diagnostic Distribution Package (DDDP)

  2. Run the DDDP & follow the prompts

  3. Navigate to the DIAGS folder created by the extraction

  4. Remove all files from the DIAGS folder except for the following:

    COMMAND.COM, DELLBIO.BIN, DELLRMK.BIN, AUTOEXEC.BAT, & CONFIG.SYS

  5. Add the BIOS .exe to the DIAGS folder

  6. Navigate to C:\Dell\Drivers\R174621\ and run the DDDP .exe.

  7. choose the Create a Bootable CD option (there is also an install to Flash Drive option, but I haven't tried this).

  8. Load the CD into the machine. Reboot, F12, boot from CD and run the BIOS .exe.

2
  • How did you "Run the DDDP"? You must have booted Windows, or ....? May 28, 2015 at 19:40
  • Yes, YES, YES!! Tried with Windows repair 8 disk but got "subsystem does not support", etc.... This answer worked great all the way through on the first try and the very quick USB bootable is great to have on hand anyway. @TommyTrussell, I ran DDDP on a separate computer to create the USB flash. This answer is likely awesome for newer machines also.
    – crokusek
    Oct 2, 2015 at 6:34
3

On newer machines, post 2015 I believe, you can simply put the .exe updater (even though the official description only mentions Windows) in /boot/efi/, reboot, press F12 and select Flash BIOS upgrade. I did this with the XPS 15 9950 and it worked like a charm. Also see BIOS update dell.

1
  • Post 2015 this should be the accepted answer! I updated my XPS 15 9500 easily. Thanks!
    – DAB
    Oct 17, 2022 at 20:40
1

Have you seen the DellBIOS - Ubuntu Wiki article?? It seems to be quite thorough and answers your question on how.

2
  • 2
    Welcome to Ask Ubuntu! Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.
    – Ringtail
    Jan 10, 2013 at 6:05
  • 1
    Actually that was the first thing I tried when I was doing this. No, it doesn't work at least for my machine, because the Dell biosdisk is based on FreeDOS, and the recent (i.e. post-2010) Dell BIOS upgrades are made to run on the Windows 7 version of DOS. Please see my comments elsewhere in this thread about that. In fairness, the link you gave is where I got some of the tips about getting BIOS information from, so not all the information there is out of date.
    – Bobble
    Jan 12, 2013 at 10:01
1

These instructions from Dell worked perfectly for me after a couple of previous unsuccessful tries.

http://www.dell.com/support/article/us/en/19/SLN171755/en

Comprised of:

  • USB stick
  • FreeDOS Base ISO 1.0
  • UNetbootin

Updated my Dell Latitude E6420 easily from BIOS version A07 to A08 to A23 (A08 was required before I could flash in one go up to A23).

Simple and fast.

1

fwupdmgr is a firmware update manager client utility package that is provided by fwupd which is installed by default in all currently supported versions of Ubuntu. To update the BIOS of a Dell laptop turn off Secure Boot and temporarily turn off TPM under the Security tab in the BIOS. You can turn TPM back on in the BIOS when you are finished updating the firmware.

To update the firmware run the following command in an Ubuntu terminal.

sudo service fwupd start
sudo fwupdmgr refresh
fwupdmgr get-devices # scans all hardware devices and checks if updates are available
fwupdmgr get-updates # prints "No updatable devices" if no updates are available
sudo fwupdmgr update  
3
  • There is nothing about TPM in the Security section of my BIOS. This is on an Inspiron 16.
    – Paul A.
    Dec 14, 2021 at 21:48
  • @PaulA. From the official Dell website: If you are using UEFI boot mode, it is recommended to download and install the latest TPM 2.0 firmware version from the Dell Support Website/Drivers & downloads on your applicable systems. The firmware is located under the Security category in the list of drivers. This new TPM 2.0 firmware should prevent this issue from occurring in the future.
    – karel
    Dec 15, 2021 at 0:08
  • If using Legacy boot mode, download and install the latest TPM 1.2 firmware version from the Dell Support Website/Drivers & downloads on your applicable systems. The firmware is located under the Security category in the list of drivers.
    – karel
    Dec 15, 2021 at 0:09
0

I newer Dell laptops it is super easy (I have a Dell Precision 5570)

  • On boot press F12
  • There is a online update option which worked for me once (you enter your wifi credentials)
  • There is also a plain bios update which can pick up the .rcv file from a partition eg. on a usb disk
    • When clicking on the link to choose the file, it just took me a while to figure out it was showing a list of my partitions (it just looked like a bunch of garbled error messages to me).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .