Saturday, July 31, 2010

FLASHROM BIOS flashing how to

 Flash your pcs BIOS using FLASHROM

PC BIOS firmware flashing is always the last resort if you need some extra juice out of your current pc or the current BIOS configuration does not support a feature that you would like your pc to have.

In my case, I had an old acer veriton 5100 pentium 3 pc with a 566mhz processor. Replaced this processor with a 900mhz processor. Although the pc worked fine after this change, the BIOS kept giving "CPU configuration miss-match" errors and F1 had to be pressed each time to continue booting. Downloaded the latest version of the BIOS no. s58mxxx.bin from acer and tried to flash using a floppy disk and the boot-block feature in the BIOS, but this wouldn't work.  I  read somewhere that I could attempt flashing with another software called Uniflash - the recipe for a total disaster and a corrupted BIOS chip. (My personal opinion - DO NOT USE UNIFLASH). Now the pc wouldn't start-up and luckily I had another motherboard of the same kind & the same chip, I extracted the chip from this motherboard and fitted it into the dead motherboard and my pc sprang to life. But I still wanted to flash the bios so the new 900mhz processor would be correctly recognized. After much searching, I found the perfect software for flashing the BIOS - a software called FLASHROM, it doesn't even need a floppy disk drive to work.  And the best of all is that you don't need to re-boot your system (risky) to find out if the BIOS write was successful. FLASHROM allows you to know the answers without destroying your bios chip.

WARNING!!! Before I outline the procedures used with FLASHROM to re-write new information on the BIOS chip, please read this paragraph carefully, BIOS flashing is a dangerous procedure and if for any reason your pcs dies after flashing or you short-circuit yourself or your pc, I'm not responsible in any way for your mishap - CONTINUE AT YOUR OWN RISK - this adventure is not for the fainthearted.

Ok, let's get going with the flashing.

Tools/items needed:

 1) BIOS chip extractor (only needed if hot flashing - see tips below), or a home made one, which in my case is a 1.3mm knitting needle. (If the chip is soldered onto the motherboard, sorry I can't help)



 2) FLASHROM source files for Linux - Google it.

 3) BIOS update file e.g s58m.bin - check motherboard manufacturer's site for the correct bios update for your particular motherboard or if you want to use Open Source Bios Update - google "Core Boot"

 4) A pc with the LINUX operating system loaded onto the hard drive  - ZENWALK 6.10 was my choice or your preferred Linux flavor. If the      pc you intend to flash has Linux already loaded on the hard drive, then you can skip  no.s 4 and 5. (Note: The Linux Live CD distros I  tested didn't run the terminal commands I needed, so I had to use a normal hard drive installation and then copied the Flashrom folder to  the running Puppy Linux 4.3.1 CD)

 5) Puppy Linux Live CD - the last version I tried was 4.3.1 - newer versions are available now.

 6) Patience, reading & understanding all info clearly before taking the plunge.

Step 1 of 3 - Compile FLASHROM from source
Using your Linux pc, download FLASHROM source files, extract them to a folder called "flashrom" or whatever name you wish to give it. Open the terminal window. Login as the superuser. Navigate to the folder where you extracted flashrom.(E.g cd /mnt/sda1/flashrom) Type the command: make followed by <enter>. Type: make install <enter> If the compile runs ok (lots of info should appear - nothing to be concerned about unless error messages appear) and there are no errors, then a file named flashrom.bin will be created in that same folder. To execute that file, type: ./flashrom

(Note: if the pc you intend to flash doesn't have Linux loaded on it, you can boot that pc with the Puppy Linux Live CD and copy the folder "flashrom" from another Linux pc to it using a USB stick and then start the terminal and all the other procedures are the same)

The following is a list of various commands supported by flashrom:
-h | --help                       print this help text
   -R | --version                    print version (release)
   -r | --read <file>                read flash and save to <file>
   -w | --write <file>               write <file> to flash
   -v | --verify <file>              verify flash against <file>
   -E | --erase                      erase flash device
   -V | --verbose                    more verbose output
   -c | --chip <chipname>            probe only for specified flash chip
   -m | --mainboard <[vendor:]part>  override mainboard detection
   -f | --force                      force specific operations (see man page)
   -n | --noverify                   don't auto-verify
   -l | --layout <file>              read ROM layout from <file>
   -i | --image <name>               only flash image <name> from flash layout
   -L | --list-supported             print supported devices
   -p | --programmer <name>[:<param>] specify the programmer device
                                     (internal, dummy, nic3com, drkaiser,
                                     satasii, it87spi, serprog, buspiratespi)

You can specify one of -h, -R, -L, -E, -r, -w, -v or no operation.
If no operation is specified, flashrom will only probe for flash chips.

BIOS FLASHING PROCEDURE

STEP 1 of 3
IMPORTANT!!! Backup your current BIOS before you erase it.
Execute the following command: ./flashrom -R <backup.bin>  For example, ./flashrom -R myoldbios.bin  - this will save your current bios.
Now test and see if the backup you created is readable - execute this command: ./flashrom -V myoldbios.bin (note: don't forget to replace myoldbios.bin with your backup file name) If the BIOS read fails, you should stop & check the Flashrom site for any hints or workarounds - Do not proceed with flashing)

STEP 2 of 3
Hot flash BIOS - only needed if you have a corrupt BIOS chip and a similar good chip with which you booted your pc - OR SKIP to STEP 3 if that's not the case.

With the pc's power SWITCHED OFF, insert the good chip where it makes contact with the pins on the motherboard, do not insert it right in or it will be difficult to remove it and you could short-circuit the motherboard with the power switched on.

Switch on the power to the pc. Wait for the pc to boot into Linux, once the system has booted, use your bios chip extractor tool to remove the good chip (be very careful - you can use some electrical insulation tape to keep the chip sticking to it when you pull it out) and insert the corrupted chip into the same slot.

STEP 3 of 3

Open the terminal window. Navigate to your flashrom folder if you are not already there. Run this command: ./flashrom -E . This will erase and prepare the chip for writing new info. Now execute this command: ./flashrom  -W mynewbios.bin . If you receive a verification success message after the upgrade then give me a five. :) . If BIOS upgrade fails,  DO  NOT TURN OFF the system yet DO NOT RE-BOOT, erase the chip using ./flashrom -E and write your old bios backup on it ( ./flashrom -W myoldbios.bin  ) and if all goes well, atleast your system will still work.

Now re-boot the system.

If this procedure has helped you in any way, please consider donating as a token of appreciation.

Monday, July 5, 2010

Puppy Linux - ASUS EEEpc

How to recover to from Puppy Linux boot errors after sudden power failure.

I had loaded my EEEpc Asus 701 laptop - netbook with Puppy Linux 4.3.1. All was well until I forgot to charge the battery &amp; the power to the laptop suddenly failed. Now when Puppy Linux booted, it started giving "DEV/" errors.

I solved this by typing "xstart" without the quotes at the command prompt. I was then presented with xorg command prompt. I typed "xorgwizard" and then was greeted with another command prompt. I typed "xstart" again at this command prompt and bingo  - my EEEpc ASUS 701 laptop netbook was running again. I love puppy Linux

.

Newer Posts Older Posts Home