Sunday September 21, 2008 at 00:01
Subject: Using FreeDOS CD for BIOS updates.
Keywords:
BIOS, FreeDOS, Technical
Posted by: Sean Reifschneider
Supermicro doesn't seem to have one of those whizzy BIOSes that will
update directly from a non-bootable media or Internet or Linux (even with
the remote management/KVM cards). In the past, most BIOS updates I've been
able to just squeeze into a DOS bootable floppy, but it's been getting
increasingly hard. However, the latest systems BIOS file alone is 2.2MB,
so I had no hope of getting it on the 1.44MB disc I've been using the past.
So, I spent some time and figured out how to make a FreeDOS bootable image.
Read on for the details.
I grabbed the 9MB-ish FreeDOS ISO image
as the basis of this. There is also a 150MB version, but I had no need for
other stuff, just the ability to boot and access the CD drive.
I mounted that ISO up with "mount -o loop $ISO $MOUNTPOINT", and then
copied all the contents there over to a directory in /tmp. Then I went in
there and made a directory with the BIOS update files in it. I also
created a README file with information about what version and date is on
the BIOS so that later I can tell if it's new or not fairly easily.
There is also a "setup.bat" file in the top directory of the ISO which
goes into the installer. You can exit the installer, but it dumps you into
some other drive letter, with no indication of where you can find the CD
data. After some experimentation I found it as X:. If you modify the
"setup.bat" file to put a line saying "goto end" after the first paragraph
of code (after the "set fdosroot=[...]" line), it will leave you on the CD
drive ready to go to it.
If you don't modify the setup.bat, you will just need to escape out of
the installer, and then do "%cddrv%:" to get over to the CD device, which
in my case mapped to "X:".
Once you've done this, you'll need to make a bootable ISO image from
the directory you have. Get to the top directory where you copied the
files from the FreeDOS ISO, and the following command should make an ISO
file called "freedos_biosupdate.iso" in the directory above where you are:
(Post Reply)
mkisofs -o /tmp/freedos_biosupdate.iso -q -l -N \ -boot-info-table -iso-level 4 -no-emul-boot \ -b isolinux/isolinux.bin -publisher "FreeDOS - www.freedos.org" \ -A "FreeDOS beta9 Distribution" -V FDOS_BETA9 -v .I saved this off to "mkbiosup.sh" in the ISO top directory so I don't have to remember how to do it if I add new firmware in the future. Which I predict I will now that I have it. We have all sorts of hardware that comes through that needs firmware updates, and now I can make a "mega update CD". I have another 640MB of space I can dump BIOS updates into. Burn that ISO image, and you should be able to use it for all your BIOS update needs.
(Post Reply)
| Comment |
Johnny Subject: cdrom |
The recipe looks good. except I could never get the cdrom drive to work off the bat. Would have been nice to see how you did that in more detail