Upgrade / Downgrade your Dell Bios On Ubuntu

Updating or Downgrading your Bios is pretty straight forward on Ubuntu. Ok maybe not as straight forward as double clinking to install. But not that difficult all the same.

for this guide we will be using the commandline. But that should not scare you, i have tried to make the guide as easy as possible. first we open Terminal /Application/Accessories/Terminal
Now since we will be running every command as root(as administrator), we sould need to become an admin. so that we wont need to been adding sudo infront of every command. so first copy and paste this in terminal

sudo bash

hit enter and give your passwd.

you will see your prompts change from
this :~$ to :~#

Then we need to install Libsmbios a linux package in the Ubuntu repositories.

apt-get install libsmbios-bin

once installed we need to get the system ID to get hat run this in terminal
getSystemId

you should get an output that looks like this

System ID: 0x0209
Service Tag: 4MV9HH1
Express Service Code: 10089895861
Product Name: XPS M1330
BIOS Version: A14
Vendor: Dell Inc.
Is Dell: 1

from the above output my system ID is 0×0209. Armed with this information you now need to get the BIOS version want to upgrade / downgrade. you can get it from here. http://linux.dell.com/repo/firmware/bios-hdrs
Scroll down the list to find a directory matching the System ID from the previous step. and look for the bios version that you want to upgrade/downgrade to In my case my directory is named: system_bios_ven_0x1028_dev_0x0209_version_a14/ my system ID IS 0×0209 and the version of bios i wanted was A14.
Go into this directory and download the file, “bios.hdr” and save it in your desktop.

Now we load the load the dell_rbu driver

modprobe dell_rbu

For Updating

now to update the bios we move into the directory were we saved the bios.hdr file. if you saved it in your desktop. just do this

cd $HOME/Desktop

PLEASE MAKE SURE YOUR SYSTEM IS PLUGGED TO A POWER SOURCE AND NOT ON BATTERY.

Then we run the update command.

dellBiosUpdate -u -f ./bios.hdr

if all goes well you would see the following feedback

Supported RBU type for this system: (MONOLITHIC)
Using RBU v2 driver. Initializing Driver.
Setting RBU type in v2 driver to: MONOLITHIC
Prep driver for data load.
Writing RBU data (4096bytes/dot): ............................
..............................................................
.......................
Notify driver data is finished.
Activate CMOS bit to notify BIOS that update is ready on next boot.
Update staged sucessfully. BIOS update will occur on next reboot.

If you are Downgrading

for downgrading to a previous BIOS version.

your downgrade command would be

dellBiosUpdate --override_bios_version -u -f ./bios.hdr

Now that you are done updating /downgrading

we would need to tell the system to do a cold reboot which is what is needed after doing a bios update.

to do this we would need to edit the kernel line in your menu.lst

run this in terminal

gksu gedit /boot/grub/menu.lst
look for the kernel line

title Ubuntu 8.10, kernel 2.6.27-9-generic
uuid f5e0a891-61ec-434a-b935-78bc25b1542e
kernel /boot/vmlinuz-2.6.27-9-generic root=UUID=f5e0a891-61ec-434a-b935-78bc25b1542e ro quiet splash
initrd /boot/initrd.img-2.6.27-9-generic

and add reboot=bios to the end of the kernel line to look like this

title Ubuntu 8.10, kernel 2.6.27-9-generic
uuid f5e0a891-61ec-434a-b935-78bc25b1542e
kernel /boot/vmlinuz-2.6.27-9-generic root=UUID=f5e0a891-61ec-434a-b935-78bc25b1542e ro quiet reboot=bios splash
initrd /boot/initrd.img-2.6.27-9-generic

save and close the text editor

now you can reboot your machine

once the system restart it would display a white screen which some messages displaying what its doing. and your bios boot splash might take a while. but that is fine.

once restarted. be sure to remove the “reboot=bios” from your kernel line.

I used this method to update the BIOS of my dell xps m1330 ( and downgraded it once) and it worked fine without any ( as we Nigerians will say) Whahala or problem.
Hope this helps some one.

This content is published under the Attribution-Noncommercial-Share Alike 3.0 Unported license.

This entry was posted in Dell M1330, Uncategorized. Bookmark the permalink.
  • habtoolcaw

    thanks ;)

  • http://www.tutoslinux.com tutos Linux

    ubuntu each one of the best
    Tutos Linux

  • http://aronzak.wordpress.com aronzak

    Why sudo bash?
    Why not just sudo su? Never understood that one.

  • http://bigbrovar.wordpress.com/ Bigbrovar

    sudo su , sudo -i , sudo bash .. there all give the same result .. make you become root. its a matter of choice which one works for you

  • Outrage17

    Dude! Awesome! Great tut!
    Note: I just hit reboot in the terminal and it worked fine.

  • http://www.jason-roe.com/blog/ Jason Roe

    Thanks this worked great! J.

  • Pingback: Rock DJ: Linux: Graphics Card Woes & BIOS Issues

  • Pingback: Upgrading Dell BIOS from Linux (Deb-based systems) | Adventures In Open Source

  • Pingback: Upgrading Dell BIOS from Linux (Deb-based systems)

  • anon

    Thank you very much for this guide. It works nicely for Debian as well.

    Much appreciated.

  • CJ

    Awesome! Thanks for this info…very very helpful and worked perfectly!

    CJ

  • Ron

    It will not work
    If I run dellBiosUpdate -u -f ./bios.hdr
    Error Msg:
    Performing BIOS update…
    Traceback (most recent call last):
    File “/usr/sbin/dellBiosUpdate”, line 185, in
    sys.exit( main() )
    File “/usr/sbin/dellBiosUpdate”, line 153, in main
    exit_code = updateBios(HdrFile(options.hdr), options)
    File “”, line 3, in updateBios
    File “/usr/lib/python2.5/site-packages/libsmbios_c/trace_decorator.py”, line 98, in trace
    result = func(*args, **kw)
    File “/usr/lib/python2.5/site-packages/libsmbios_c/rbu_update.py”, line 96, in updateBios
    raise InappropriateHDRFile( _(“The system bios version (%s) is the same as or newer than the .HDR file (%s).”) % (ver, hdrfile.biosVersion()) )
    libsmbios_c.rbu_update.InappropriateHDRFile: The system bios version (A12) is the same as or newer than the .HDR file (A05).
    ==========================================
    If I run dellBiosUpdate –override_bios_version -u -f ./bios.hdr
    Usage: smbios-rbu-bios-update

    dellBiosUpdate: error: no such option: –override_bios_version

    Somebody please help

  • http://bigbrovar.wordpress.com/ Bigbrovar

    seems to be a python problem. i did some googling of and i found this http://lists.us.dell.com/pipermail/firmware-tools-devel/2009-March/000427.html it would seems adding import struct to this file /usr/lib/python2.4/site-packages/libsmbios_c/rbu_hdr.py solves the problem. remember to backup first before you do this .. please let me know if you are still confused on how to do this and i will get back to you on a more detailed guide. good luck

  • the green knight

    I am trying to downgrade from A05 to 00 so i can use a new battery. i am using ubuntu 9.04 and my system ID is 0x02B0 but I cannot find a matching directory on the list of firmware. any ideas?

  • http://bigbrovar.wordpress.com/ Bigbrovar

    sorry mate, maybe dell took it down?

  • Jeff

    Hi There, I can’t seem to find my bios in the dell’s list (http://linux.dell.com/repo/firmware/bios-hdrs). Do you know how often Dell updates this list? or do you know where else I can find my bios? Here’s my info:

    Libsmbios version: 2.2.13
    Product Name: Vostro 1320
    Vendor: Dell Inc.
    BIOS Version: A02
    System ID: 0x02BB

    Thank you very much.

    • Celso

      did you find an solution for this?

  • PGlynn

    Hey there, i’m having the same struct issue with python. i can’t locate the py file. could you post on how to fix the file?

  • Kakel

    Hi, have you recently tried this?
    The command apt-get install libsmbios-bin fails because it cannot locate the package!!
    Any ideas?