[Howto] Update BIOS/firmwares on Linux

Tux
Some hardware firmware updates need a DOS environment for executing the flash tools. There are free DOS versions available to accomplish this task easily.

There are many howtos available on the net providing different solutions to the mentioned task – however, no one of these fitted my needs because most of them were too complicated, were only suitable for small flash files or only for specific mainboards or hardware components.

To solve such problems in a general way all you need is an empty CD-R (you need only one, you can use it over and over again even for different firmware updates) and a USB Mass Storage device like an USB stick.

In a first step burn the FreeDos.org image “fdfullcd” onto the CD-R and download (and maybe unpack, etc.) the flash files and utilities you get from the hardware vendor onto the USB stick. Next, plug in the USB stick and put the CD-R into the CD drive, reboot the system (note: the USB stick must be connected during the freedos boot) and boot into FreeDos.
Make sure that you start the Live CD (and not the installation routine) and wait until the boot finishes.

Now you see a typical DOS command line. You can navigate around with the usual commands. The USB stick was, in my case, “mounted” at C:, the hard disk was at Z:. Change the working directory to the USB stick, and execute the flash utility. You update should run now.

The advantage is, as previously mentioned, that you can re-use the CD many times – you just have to alter the flash/firmware software on your USB disk. This is superior to all howtos where you have to burn dedicated CDs, I think. Also you don’t have to create boot CDs on your own, which can be a hassle as well.

Attention: if anything fails: don’t blame me! Whenever you make a bios update or similar things you do it on your own risk!

Anyway, my problem wasn’t solved: I have some retarded version of AMI bios with almost no configuration options at all – the result is that I cannot change or alter any wake up times, and therefore cannot program my computer to wake up at a specific time. I would benefit from a stable Linux BIOS but that’s far too risky on my productive machine. ๐Ÿ˜‰

16 thoughts on “[Howto] Update BIOS/firmwares on Linux”

  1. really nice thingy ๐Ÿ˜€

    But why using a CD-R? I’d prefer to use the usb stick to boot up the DOS.
    …even if it’s only a single CD-R for the rest of my life ๐Ÿ˜‰

  2. There is hardly any computer around which cannot boot from CD, but some might not boot from USB stick.
    Also, burning a CD is easier than writing an image to the usb stick (although it is still quite easy).

    Feel free to write a howto about the same procedure with an USB stick, would be nice ๐Ÿ™‚

  3. Anonymous: that link is *not* helpful because it first does not reveal any new information and second only delivers a solution as long as the flash data are small enough to be copied over to a floppy disk – which is often not the case in these days.

  4. I’ve actually had the ‘opportunity’ to witness a computer that cannot boot from certain CD’s. It’s an old AOpen that had Ubuntu installed on it. My customer obtained it from a business and wanted *shiver* XP installed on it. So I needed to update the BIOS so that it would boot from the XP CD. All-in-all I have to thank you for this bit of information. I never would’ve been able to install the OS without finding this information about the freedos.org LiveCD. While I HOPE that I won’t run into any more 8+ year old systems that have never had a BIOS update, this will be permanently added to my toolkit ^_^

  5. Thanks for the how to! I have one problem though, my usb stick is not mounted although it’s sticked in all the time. I tried going through all the letters to find if it was mounted somewhere else but no luck… Do you have any ideas what I could do?
    Thanks!

  6. A new problem. I made my swap partition temporarily a fat32 one and copied the .exe there. Only to get a message “This program cannot be run in dos mode”. Does this mean I really have to have windows installed on the machine? I’d rather not get a new harddrive for my laptop just to flash the bios.

  7. A.H., if the stick is not mounted you should check back with the FreeDos guys what to do next. I never had that problem.

    About the new problem, it does sound like you need Windows, yes. You should write your hardware guys how much they suck ๐Ÿ™‚

  8. It’s silly how much work it can be to do a bios update. First I had to copy 160GB of data to my external harddrive, install windows, flash the bios, and then copy all the data back again. Anyways, now it’s done and I hope my computer is better than ever :)!

    Thanks for this howto though! I hope next time I can actually use it.

  9. Thx for your How2,

    it has saved my weekend.
    If you can boot from USB you better go by that;
    wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
    tar xzf FDOEM.144.gz
    dd if=FDOEM.14 of=/dev/$USB #!!!Will delete all files on $USB

    Mount usb, (deplug, plugin)
    unzip *BIOS_Dos ; cp *BIOS_Dos/* $USB
    Umount usb ! umount /dev/$USB.

    Reboot, start from usb, A:> flash… (start flash tool from your manufacturer ).

    MKN

  10. Unfortunately this doesn’t work in some cases.

    For instance: A mainboard that can’t boot from ISOLINUX.

    Then FreeDOS (that uses ISOLINUX) cannot boot, so it is not able to flash ANY of those boards.

    So i guess a SYSLINUX booting FreeDOS is needed here instead of ISOLINUX?

  11. Good article, you may have to enable legacy DOS support for USB in the BIOS if your USB device doesn’t show, I know the option is available in some BIOS’s.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.