PC linux BIOS firmware "made easy"...




BIOS firmware upgrade, from GRUB:
--------------------------------

This is on a Dell E521, running SUSE 10.2. I required updating its BIOS
firmware, but did not want to move a MS Windows drive to boot the system
with to perform that operation. In the past, I tried getting freedos
and booting off the CD, but then the CD was not recognized, etc...

But yesterday, I came across a neat way to upgrade your linux PC firmware
simply by booting a floppy image file through GRUB. Tried it, and it
works great!

I thought I would share my notes with the newsgroup as I beleive it may help
a number of people upgrading their BIOS on they linux-only system.

Note: no floppy OR CD requirements.

---

The following notes are based on instructions found at
{\tt http://www.felix-schwarz.name/Flashing_a_Dell_Bios_with_Linux_%28en%29}.

I essentially took the notes, updated them (corrected a few typos, etc),
and tested it by upgrading a Dell E521 BIOS firmware from version 1.1.4 to 1.1.10.

- Get firmware version from vendor; Dell in this case, from
ftp.dell.ca/bios, file DME521-010110.EXE and store as /tmp/dell/DME521-010110.EXE.

- Download RPM package biosdisk from the DELL project site, at
http://linux.dell.com/projects.shtml\#biosdisk; install on system where
BIOS requires updating.

This package will be used in the next step to create the image of
a bootable floppy.

- Create a floppy image file:

biosdisk mkimage /tmp/dell/DME521-010110.EXE

This will create file /tmp/DME521-010110.IMG.

This is a floppy image file; you may look at its content by mounting
it locally, using

mount -o loop /tmp/DME521-010110.IMG /mnt

and looking at /mnt content.
You'll notice the contents is very much like a DOS floppy file.
autoexec.bat contains the name of the executable specified as
the last parameter in the biosdisk command.

- Copy file /tmp/DME521-010110.IMG as /boot/DME521-010110.IMG.

- Ensure package syslinux is installed, as it contains memdisk,
needed to boot the freedos floppy image through GRUB.

- Modify /boot/grub/menu.lst by adding lines

title BIOS firmware upgrade to 1.1.10
kernel /usr/share/syslinux/memdisk floppy
initrd /boot/DME521-010110.IMG


- Boot the system, and, at the GRUB menu, initiate the loading/executing of
the firmware update.

NOTE: if your executable is more than 8.3 characters long, might have to
start the firmware manually after the system boots in freedos mode by
issueing, in my case,

DME521~1.EXE
or
DME<TAB>


-------------------------------------------------------------------------------
Claude Cantin Claude Cantin
Piece 2025, 100 Prom. Sussex Rm 2025, 100 Sussex Dr.
Soutien informatique a la recherche Research Computing Support
Services de gestion de l'information Information Management Services
Conseil National de Recherches National Research Council
Ottawa, Canada (K1A 0R6) Ottawa, Canada (K1A 0R6)

claude.cantin@xxxxxx 1-613-993-0822 (FAX: 613-993-3127)
-------------------------------------------------------------------------------

.