[mdlug] Tip: Creating BIOS updates for old systems from exe files

Jeff Hanson jhansonxi at gmail.com
Sat Sep 22 19:00:56 EDT 2007


I just had fun trying to update a IBM PC300GL BIOS from an executable
package file.  Took a while to find a solution and I figured that
posting it would help someone else save some time.

Most BIOS and other firmware updates are DOS-based and require booting
from a floppy created for or by the update install package.  There are
two common types - floppy "contents" and floppy "image".

The "contents" types require a formatted floppy and simply dump a DOS
variant, firmware updater, and firmware file to the floppy.  These can
usually be easily extracted using any archive utility or command-line
versions of unrar, unace, or unzip.  You just dump them to a formatted
floppy and boot it.

The "image" types have a floppy image and usually rawwrite or some
other utility to write to the floppy disc.  The image contains the OS,
updater, and firmware.  The image can be written to a floppy with dd
or the included disk writer from within a DOS emulator.  They do not
require a formatted floppy since the image includes the disc
structure.

Unfortunately, the PC300GL update is image-based and uses a
proprietary self-extracting executable with EULA and all that nonsense
that did not work with a DOS emulator.  I think the app is based on
Teledisk.  In this case, I used the FreeDOS LiveCD.  I booted the CD
and selected the LiveCD + Himem option (the option with EMM386 would
hang).  When it boots, A: is the El-Torito boot image, B: is the real
floppy drive, X: is the mounted FreeDOS CD, and Z: is a RAM drive.  I
copied the executable to a floppy then copied it to Z: in FreeDOS.  I
then put a blank floppy in B: and ran the app from Z: which created
the BIOS update disk on B: without a problem.  I then booted the
floppy and updated the PC.  Of course I'm going to make a dd image of
the floppy so I don't have to go through this hassle again.

Theoretically I could have set up networking in FreeDOS but it's
difficult, especially when using the LiveCD.



More information about the mdlug mailing list