Updating system BIOS when running Ubuntu

Updating system BIOS when running Ubuntu


The Official Dell Corporate Blog

Updating system BIOS when running Ubuntu

I've published firmware-tools deb packages, and the latest system BIOS images for 223 Dell system types, into a new repository on linux.dell.com.  Please see the instructions for how to use them.  In a nutshell, for Ubuntu systems with 7.04 Feisty, 7.10 Gutsy, or Hardy, be sure the Universe section is enabled in /etc/apt/sources.list, then run as root:

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

The bootstrap command downloads a GPG key for use in validating the linux.dell.com repository, and sets up the dell-firmware and dell-software sections for use by apt.

A reboot is required for the flash to actually happen.

There are two packages, firmware-tools and firmware-addon-dell, needed for this which are currently under review by the MOTU team.  I hope to have these included in Hardy.

We have had this service available for quite a while for several RPM-based distributions including Fedora, RHEL, CentOS, and SLES.  We're pleased to be able to bring this to the dpkg-based distributions now as well.  If you're interested in helping maintain these packages in other distributions, please join us on the firmware-tools-devel mailing list (subscribe and read archives).


To post a comment login or create an account

Comment Reminder

Unrelated comments or requests for service will be unpublished. Please post your technical questions in the Support Forums or for direct assistance contact Dell Customer Service or Dell Technical Support.. All comments must adhere to the Dell Community Terms of Use.

  • Users of Ubuntu are generally told not to use root prompts, but instead to use sudo to gain necessary authorisation to accomplish adminstrative tasks.

     Your steps pass a web-downloaded script directly to a root bash shell. Not something I'd recommend a user do under any circumstances, especially your target audience of home users.

     Please could you modify/update your steps to use a more sane set of tasks as non-root.


  • Alan, I agree, running most things as root is a very poor idea.  However, with the exception of the actual download of the bootstrap script, each of the things done in the bootstrap script (adding GPG keys to the apt keyring, adding apt sources.list lines) and each of the things that happen thereafter (installing packages, getting system hardware inventory, running update_firmware) _do_ require root privileges.  So yes, it could be re-written:

     $ wget -q -O - http://linux.dell.com/repo/firmware/bootstrap.cgi > bootstrap.sh

    (very carefully read bootstrap.sh)

    $ sudo  bash bootstrap.sh
    $ sudo aptitude install firmware-addon-dell
    $ sudo aptitude install $(sudo bootstrap_firmware -a)
    $ sudo update_firmware

    but I'm not sure that's any prettier.

  • Good to have these tools in Ubuntu!

    However the packages are not perfectly tailored for a deb based system:

    • they install some yum related files, and depend on rpm related libraries,
    • I have noticed this error launching the gui: Unable to open /usr/lib/rpm/rpmrc for reading: No such file or directory,
    • no menu entry for the gui.

    With a little polishing though inclusion in hardy should not be a problem and Dell will be even more appreciated from Ubuntu users.

  • The yum / rpm related files, which look for rpmrc, implement a handy version comparison function that works for BIOS versions as well as RPM versions.  It can probably be replaced, which would eliminate those dependencies and messages.  Patches welcome.  GIT repository at http://linux.dell.com/git/firmware-tools.git/

    Good point about the GUI.  It's a new feature, so we need to add a .desktop file for it.  Thanks for the reminder.

  • @pabs: thanks for owning a Dell laptop.  The BIOS images posted for Dell systems are not open source, though it's been requested many times. Do you not trust the system you have now (for whichever definitions of trust you wish to use)?  If so, how would these updates be any different?

     It's taken a while to get all the packages building for the Ubuntu versions we do support.  I suspect I'll get even more feedback on the packaging now that they're available, and I simply haven't taken the time to build the packages for Debian.  I have every reason to believe they will build there.  And yes, I would love to see these included in Debian and Ubuntu both, just as they are included in Fedora.

    As for duplicating apt/dpkg and yum/rpm, no, in fact we don't do that at all.  We use dpkg/rpm packaging to provide the tools and payload files in an easily-consumable format, and apt/yum for package management.  The goal is to fit cleanly into these existing tools, absolutely not duplicate them.

  • Good to see you have Debian packages too, even though you didn't mention it. Will you be including firmware-tools and firmware-addon-dell in Debian?

    I'd like to be able to trust Dell's firmware, since I have a Dell Laptop, but I cannot do that unless you provide source code for verification.

  • Bah, seems no-one actually cares about Debian, they just make the appearance of doing so. The etch, lenny and sid Packages files are completely empty. Please remove the dists/{sarge,etch,lenny,sid} from the server until you actually have Debian packages.
  • Had a look at the git repo, not sure if I understand the code properly, but it seems to be duplicating the functionality of apt/dpkg & yum/rpm for firmware. Why not just use dpkg & rpm to install packages that contain firmware?
  • Thankyou
  • Matt, are you aware of Ubuntu's 0launch command? You can use it to download and run a script, but it will do some GPG key-downloading and checking for you.

    It's not perfect, since users may not know your key in the first place, but it's better than piping from wget to bash!

  • Error here when running the first command:

    ~$ sudo wget -q -O - http://linux.dell.com/repo/firmware/bootstrap.cgi | bash
    bash: line 221: /etc/apt/sources.list.d/dell-software-temp-bootstrap.list: Permission denied
    Downloading GPG key: http://linux.dell.com/repo/GPG-KEY-libsmbios
        Importing key.
    gpg: no writable keyring found: eof
    gpg: error reading `GPG-KEY': general error
    gpg: import from `GPG-KEY' failed: general error
    GPG-KEY import failed.
       Either there was a problem downloading the key,
       or you do not have sufficient permissions to import the key.


    Any suggestions?

  • @Tom - no, I hadn't heard of that, I'll have a look.  imbrandon showed me how the Adobe flashplayer-plugin is being handled, which might be useful, we're still discussing.

     @holotone: the bash script must be run with sudo privilages too, which in your command line it isn't.  It's easiest if you just:

    $ sudo bash

    and then run all the commands, or if you like, you can do the wget, write it to a file, and then start a 'sudo bash' in which you execute the other steps.  See above in the comments here for why you need everything from the bash step onward to be run as the root user.


  • Synaptic notification for available BIOS update won't clear even after successful upgrade. Ideas?
  • Thanks!  It installs well here on Ubuntu Hardy, but in order for it to get any use, the BIOS repositories need to stay updated!  I saw that there is an update for my D630 laptop that was released November 6, but it's not yet listed in the Linux repositories...
  • Kevin, it's supposed to update daily, but that cronjob isn't quite working smoothly.  I'll investigate further.

    imneat: yours is the second report of this, I haven't seen it myself yet.  Perhaps others have ideas? 

  • It would be nice to have a link of some sort showing which systems you tested successfully on.  Flashing any bios is a risky thing to do, especially when you don't know what kind of system this flash works on.  Many users have old systems; I'm sure they would like to know if they can safely flash their bios'.
  • Victor: that's one of the nice things about firmware-tools: it uses the exact same BIOS flashing mechanism as all other Dell systems use.  firmware-tools merely puts the BIOS image in memory, and sets an NVRAM flag  - nothing more.  When you reboot the system, BIOS, during POST, sees the NVRAM flag, re-assembles and checksums the image, then performs the actual flash.  This assures that no other OS functions can interfere, because there is no OS running at the time.

     We did have some very early systems with a broken (advertised, but non-functional) flash implementation, but we know which those are, and the tool specifically excludes posting BIOS images for them.

    There are a few exceptions.  Some of the newest systems, in particular some Vostro and Inspiron systems, don't have this capability.  We're investigating ways to provide the same functionality.

  • Many thanks for doing this! I'm trying this out with my M1210 now :-).



  • It would be safest if your 'wget' command used an https URL instead of http, otherwise users are at-risk for a man-in-the-middle attack.
  • error: Unable to open /usr/lib/rpm/rpmrc for reading: No such file or directory.

    I get that error using Kubuntu Feisty  

  • ScottW: I agree, and it's something that should be possible.  linux.dell.com doesn't presently serve https though, and it'll take some time to get certificates for it.
  • menachem: it's a harmless error message, but one which can be addressed through a change in the firmware-addon-dell package.  This is discussed at http://lists.us.dell.com/pipermail/firmware-tools-devel/2007-December/000211.html
  • Add another user confirming the persistent "available bios update" notification from update manager after successfully executing the update.  This is under Gutsy 64-bit on a Dell 1420n.
  • Matt, I applied the update yesterday per the instructions, and for me the Synaptic update notification still appears, even after running the update several times. I see a couple other people reported this happening too

     However, my test machine already had the latest BIOS update in place at the time. Is it possible that this happens when updating the BIOS for the first time on a machine that's already been updated? I haven't had time to test myself yet.

  • I'd gratefully accept help in tracking down why synaptic, apt, and aptitude keep offering to download and install the BIOS payload packages over and over again.  I've spent several hours investigating, and don't have an answer as to why.