Tayn baseboard: How to flash motherboard BIOS from Linux.

You’ve finally made the move to a Windows-free computer, you’re enjoying your brand new Linux OS, no trojans/viruses, no slowdown, everything’s perfect. Suddenly, you need to update the BIOS on your motherboard to support some new piece of hardware, but typically the motherboard vendor is offering only DOS based BIOS flash utilities. You panic! Fortunately, this problem is easy to solve …

Step 1: Download FreeDOS boot disk floppy image

FreeDOS, a free DOS-compatible operating system, is up to the challenge, no need for proprietary DOS versions. So, all you need is a bootable floppy disk image with FreeDOS kernel on it. We are fortunate that guys at FDOS site have prepared one suitable for us. Use the OEM Bootdisk version, the one with just kernel and command.com, because it leaves more free space on disk for the flash utility and new BIOS image. After you download the image, you need to decompress it. In other words:

# wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
# gzip -d FDOEM.144.gz

Step 2: Copy your BIOS flash utility and new BIOS image to the mounted floppy disk image

Requirement for this step is that you have support for the




file systems in the kernel. Or you can have those features compiled as modules. In the latter case, load the modules before the next step, like this.

modprobe vfat
modprobe loop

Consult /proc/fileystems to see if you have the needed file systems supported. If you do, you should be able to “loop mount” the floppy disk image to some temporary path:

localhost:/mnt # mkdir floppy
localhost:/mnt # mount -t vfat -o loop TYAN.FDOEM.144 floppy/

If the mount went without errors, copy BIOS flash utility and new BIOS image to the mounted floppy disk image. You’ll probably have to unzip the archive you downloaded from your motherboard vendor site, to get to those two files. Here’s just an example for my motherboard (in your case, files will have different names, of course):

localhost:/mnt # mount -t vfat -o loop TYAN.FDOEM.144 floppy/
localhost:/mnt # ll floppy/
итого 1280
-rwxr-xr-x 1 root root 1068706 дек.  22  2009 5397V107.B11
-rwxr-xr-x 1 root root      67 февр. 22  2004 AUTOEXEC.BAT
-r-xr-xr-x 1 root root   66090 дек.  10  2003 COMMAND.COM
-rwxr-xr-x 1 root root      52 февр. 22  2004 CONFIG.SYS
-rwxr-xr-x 1 root root      34 янв.  12  2010 flash.bat
-rwxr-xr-x 1 root root     504 июня   7  2006 Flash Text.txt
-r-xr-xr-x 1 root root   45450 апр.   7  2012 KERNEL.SYS
-rwxr-xr-x 1 root root  113985 июля   4  2006 phlash16.exe
-rwxr-xr-x 1 root root    1486 февр. 22  2004 README
-rwxr-xr-x 1 root root   11531 апр.   7  2012 sys.com
localhost:/mnt # 

Doublecheck that everything went OK, that those files weren’t too big for the floppy. Finally, unmount the floppy disk image.

Step 3: Burn a bootable CD which will emulate floppy device for us (old days way)

Next step is to burn the floppy image to a CD/DVD-RW media, but in a way that it can be booted afterwards. First we need to make a bootable CD image, and then burn it. Notice that on some modern distributions, cdrecord is renamed to wodim, and mkisofs to genisoimage, but the parameters below should be the same.

mkisofs -o bootcd.iso -b TYAN.FDOEM.144 TYAN.FDOEM.144
cdrecord -v bootcd.iso

Step 4: Elegant.

If you have modern TYAN server with SDMC module (IPMI/iKVM), then you can use web interface to IPMI module. This interface has option for download virtual images floppy disks. In this case you don’t need in burning of CD disk. You can just download floppy image in web interface. Then use KVM java console, to select in BIOS new virtual image for download. In this case you may be even not near with server.

Step 5: Reboot, flash, reboot, enjoy your new BIOS

Finally reboot your machine, make sure that your CD drive is first in the boot sequence, and then run your BIOS upgrade procedure when the CD boots. WARNING: Flashing motherboard BIOS is a dangerous activity that can render your motherboard inoperable!

Scroll to top