firmware upgrading

updated @ 2007-01-10

Updating your Bios or other firmware using Linux [most companies ship updates as Windows/Dos executables, .exe] and without needing a floppy disk drive.

How? Check this:

  1. Download the firmware executable you want applied
  2. Look for a Freedos disk image, like for example the one on Dell's website
  3. Now create a disk image out of the firmware:
    cp /usr/share/biosdisk/dosdisk.img /tmp/fwdisk1.img
    mount -o loop /tmp/fwtemp.img /mnt/tmp
    cp fwhd3313.exe /mnt/tmp
    umount /mnt/tmp
    
  4. Create a blank disk for the unpacked firmware:
    dd if=/dev/zero of=/boot/fwdisk.img bs=1474560 count=1
    
  5. Run the Qemu emulator [apt-get install qemu] to process the unpacked files and write them to this disk image:
    qemu -fda /tmp/fwtemp.img -fdb /boot/fwdisk.img
    A:\>fwhd3313
    ...
    exit qemu
    
  6. Edit with your favourite editor your grub menu [/boot/grub/menu.lst in Debian, /boot/grub/grub.conf in other Linuxes]. Add:
    title "My bios update"
    	kernel /memdisk
    	initrd=/fwdisk.img floppy
    
  7. Safe the changes, reboot the machine and choose the freshly created option. Follow the manufacturers directions doing the firmware update

I took this howto from the Dutch Linux Magazine, edition 6 of January 2007 [page 13]. I'm not responsible to any damage caused by people using it. It may fry your hard drive, date your girlfriend or just flawlessly update your video card's firmware for better overclocking. Use at your own risk, and enjoy :)