WARNING: BIOS upgrades are always dangerous because they modify the Basic Input-Output System that operates your computer's hardware. If anything goes wrong during the update (such as a power interruption), or if there is an error in the update itself, it may render your computer totally useless! You are strongly discouraged from upgrading your BIOS unless it claims to fix a problem you actually have, or you feel the supposed improvements or new functionality are worth the risk of ruining your computer!
I was able to successfully update the BIOS on my Toshiba Satellite M115-S3094 with this method!
Background:
After experiencing problems with my laptop that left me unable to boot from traditional media (floppy, usb, CD/DVD), I decided to try booting from the network, via a protocol named PXE (Pre-eXecution boot Environment). Ultimately, I wanted to not only boot an operating system from the network, but find a way to upgrade the laptop's BIOS (also over the network, since I couldn't boot from other media) and see if it fixed the problem.
There are various ways to configure PXE and to upgrade one's BIOS over a network. User gcmartin, with input from other Puppy users, has developed a very simple method to configure PXE on Puppy Linux in a few steps. Meanwhile, two people, Terry Burton and kahrn, have posted instructions to their blogs for upgrading one's BIOS via PXE (similar methods but different tools).
- Terry Burton's blog: http://blog.terryburton.co.uk/2007/08/pxe-boot-freedos-with-memdisk-to-flash.html
- kahrn's abode: http://kahrn.com/blog/2008/02/flashing-a-bios-via-pxe/
Before using PXE to update your BIOS, I strongly recommend following gcmartin's netboot-server method to get PXE working, in the simplest setup. (Serve up just one operating system with PXE, to test if another computer can obtain it over the network.) In fact, the examples here assume that you have already done so. Then come back here to learn how to back up your working configuration (in case you want to use it again) and serve up a BIOS update instead!
- 5-steps - Netboot a Puppy over the LAN with NO media (PXE):
http://www.murga-linux.com/puppy/viewtopic.php?t=64107
This HOWTO begins with a summary of steps and what gets done. We make the files intended for a bootable floppy available over the network via PXE. Some computer manufacturers provide files for performing the BIOS upgrade from a bootable floppy, or from a CD, or from within Windows (or even multiple ways). More explanation for newbies WILL FOLLOW! (It's past my bedtime.) It will include the rationale behind various choices, problems I encountered while learning about BIOS-upgrading over PXE, and a description of important files in the download from Toshiba. If you are new to PXE, I recommend reading it, too!
*
*
*
Summary of Steps
- Choose or create a directory (folder) in which to store only the files you will serve via PXE (for example "/root/ISOs"):
Code: Select all
mkdir /root/ISOs
- Download FreeDOS ("fdboot.img") to that directory from ibiblio.org: http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdboot.img
- Download SYSLINUX somewhere (for example, "/root/downloads") from kernel.org: http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.04.tar.gz
- Extract the file "memdisk" from "syslinux-4.04/memdisk" to "/root/ISOs" (with Xarchiver, for example).
- Download the Toshiba BIOS update v1.90 somewhere (for example, to "/root/downloads"): http://www.csd.toshiba.com/cgi-bin/tais/support/jsp/modelContent.jsp?ct=DL&os=&category=&moid=1468771&rpn=PSMB0U&modelFilter=M115-S3094&selCategory=2756709&selFamily=1073768663#
- Extract all files from the download:
(If you use some other extraction software, make sure it does not create one single new file, such as "sm115v190.ima"!)
Code: Select all
cd /root/downloads unzip sm115v190.exe
- Transfer the floppy diskette image ("2243d190.exe") to a computer running Windows 95 or greater. Extract all its files. (Recommended extraction software is WinZip, PKUnzip, or Info-Zip. You can download WinZip from http://download.cnet.com/WinZip/3000-2250_4-10003164.html.) Then transfer the resulting files back to your Puppy machine.
- Determine which of these files is the BIOS-flashing program, and which is the actual BIOS update. (For my Toshiba these were "PHLASHER16.EXE" and "PL190.ROM", respectively. Your update may end in ".ROM" or some other extension.)
- Loop-mount FreeDOS (for example, to "/mnt/floppy"), add the BIOS-flashing program and the BIOS update to the FreeDOS image, and unmount the image again:
("umount" is the correct command for un-mounting!)
Code: Select all
mount -t vfat -o loop /root/ISOs/fdboot.img /mnt/floppy cp -iv PHLASH16.EXE PL190.ROM /mnt/floppy umount
- Before changing your PXE configuration, use XArchiver (in "Menu > "Utilities") to create an archive of the directory "/root/tftpboot/pxelinux.cfg" and anything in it.
- Delete the contents of "/root/tftpboot/pxelinux.cfg":
Code: Select all
cd /root/tftpboot/pxelinux.cfg rm *
- While in "/root/tftpboot/pxelinux.cfg", create symbolic links (shortcuts) to "fdboot.img" and "memdisk"
Code: Select all
ln -s /root/ISOs/memdisk memdisk ln -s /root/ISOs/fdboot.img fdboot.img
- Create a new file in your text editor and save it as "/root/tftpboot/pxelinux.cfg/default" (no file extension).
- Add these lines and save:
Code: Select all
default FreeDOS label FreeDOS kernel memdisk append initrd=fdboot.img
- Verify that "/root/tftpboot/pxelinux.cfg" contains these files:
- "memdisk" (shortcut)
- "fdboot.img" (shortcut)
- "default" (configuration file)
- "fdboot.img" needs to be readable and executable (for simplicity, grant all permissions):
Code: Select all
cd /root/ISOs chmod 777 fdboot.img
- Start the netboot-server in debug mode. (Quit and restart if it's already running.)
- Turn on the client (computer which needs the BIOS upgrade).
- Enter CMOS Setup. (On the Toshiba Satellite, it's called "System Utilities"; press "F2" at the splash screen.) Make sure PXE (network boot) is enabled if you haven't already. If an operating system is installed, also make sure that PXE comes before hard disk in the boot order (or else you will need to press "F12" on reboot in order to boot from network instead of hard disk). Also, make sure both computers are connected to the network!
- If you changed anything via CMOS Setup, press "F10" to save changes and reboot.
- Network boot takes several minutes. After the blinking cursor, PXE process, IP address info, and "Loading memdisk..." and "Loading fdboot.img..." messages, you should get the FreeDOS welcome message and a prompt.
- At the "A:\>" command prompt, type the following and press "Enter":
Code: Select all
PHLASH16.EXE PL190.ROM
- Wait while the program runs and beeps, then after the long beep, wait for the computer to reboot (or press any key to restart when it says so).
- If you get a "CMOS checksum bad..." message, don't worry unless it happens a second time. Just press "F1" to load default settings if directed to do so.
- Press "F2" to enter Setup and verify that the first page says "BIOS version 1.90" in the center of the screen.
- While in Setup, customize boot options if needed. (The boot device order may have got changed if you had to load the default settings.)
- If you did get the CMOS checksum error the first time, reboot again and make sure the error has disappeared!
- Congratulations! Your BIOS is updated!
*
*
Good luck! Please check back!
ShellyCat