Updating your BIOS without Windows or a USB stick
On some of the new lab machines I made, I noticed the CPU clock did not drop when idle. This is usually due to a motherboard not having support for a new CPU, and can be fixed by doing a BIOS update. The really old way of doing this using a floppy disk. This really is not an option, but writing a CD or a USB stick can be as much hassle. Here is a dead easy set of steps to update your BIOS on a Fedora system. The following should be done as root.
yum install syslinux cp /usr/share/syslinux/memdisk /boot/ wget -O /boot/floppy.img.gz http://www.fdos.org/bootdisks/autogen/FDSTD.288.gz gunzip /boot/floppy.img.gz
Now edit /etc/grub.conf and add the following lines at the bottom
title Floppy Image root (hd0,0) # Or whatever the other entries use kernel /boot/memdisk initrd /boot/floppy.img
Of cause the floppy image does not yet contain the flash program or data. To get these you will need to look up your motherboard at the manufacturers website and click on support. Then find the latest BIOS data file. These will be either in a ZIP or an archive EXE. If it is an EXE then usualy you can extract their content without having to resort to Windows. Try using unzip, unrar (available from RPMFusion) and 7za (available in the p7zip package). Gigabyte for example use both rar and 7zip based executables. Once you have extracted it, you should have a flash file (the file extensions on these are completely random) and a flashing program (something like FLASHSPI.EXE or AWDFLASH.EXE). To copy these to the floppy image execute the following:
mkdir /mnt/floppyimage mount -o loop /boot/floppy.img /mnt/floppyimage cp {your flash and executable files} /mnt/floppyimage/ umount /mnt/floppyimage/
What you have now is a FreeDOS floppy disk image which can be booted by selecting it in the grub boot menu. Remember the grub menu is now hidden, so keep any key pressed during the boot reach it. Once it has booted (you can press F5 to bypass executing autoexec.bat) simply run the program as instructed by the motherboar website:
flashprog.exe flashfile.123
Happy flashing!
Quite a lot of BIOSes these days support flashing from a USB stick within the BIOS, so all you need to do is put the BIOS file on the USB stick, boot to the BIOS, and go through the update section – it’ll find the file on the USB stick and do the update. I find that the most convenient way usually.
That is a good point, if possible, do that.
On the GA-P55-UD3 board, that option (F9 to EZflash) appeared after doing the update. As did the option to only enable some of the cores with the default being set at 3. That confused me a little when rebooting and finding one of the processors missing.
Thanks a lot, Charlie!
I wanted to flash my graphic’s card BIOS today, which has to be done using “nvflash” under DOS. Unfortunately booting freedos from sysresccd didn’t do the trick, because freedos doesn’t recognize modern filesystems or the partition on my usbstick.
Lucky me I had an old harddisk with a FAT32 partition on it to store the nvflash utility and the bios file there, but after reading your blog I will try the floopy image trick using grub.
Best regards
Torben
Thanks a lot, not just for bios upgrode, thish is a goot starting point for other dos like tools :)
Maybe your board is already supported by http://flashrom.org/Flashrom
yum install flashrom
Yeah I have tried that. I was hoping it would work as that would mean I didn’t have to reboot each machine, but of the 5 motherboard models I tried, it didn’t recognise 4 and one was read only.
how about ‘flashbios’?
Charlie,
Neat little tip. Thanks for documenting this.
thank you for sharing this informative post. It really helps me a lot. keep on posting and hope to hear more from you.
Hi,
Having followed your instructions a get Error 15: File not found when i try to boot to floppy image from the grub screen.
Do you have an suggestions on where i might be going wrong?
Paul