Flashrom 0.9 release - Flashing your BIOS from the Unix/Linux command line

I have mentioned the flashrom utility in my blog in the past. This is a small command line tool which allows you to update your BIOS/coreboot/firmware chips without opening the computer and without any special boot procedures.

Yesterday, flashrom 0.9 was finally released. Here's a short passage from the release announcement:

After nine years of development and constant improvement, we have added support for every BIOS flash ROM technology present on x86 mainboards and every flash ROM chip we ever saw in the wild.

Highlights of flashrom include:

  • Parallel, LPC, FWH and SPI flash interfaces.
  • 157 flash chip families and half a dozen variants of each family.
  • Flash chip package agnostic. DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40 and more have all been verified to work.
  • 75 different chipsets, some with multiple flash controllers.
  • Special mainboard enabling code for dozens of nonstandard mainboards.
  • No physical access needed. root access is sufficient.
  • No bootable floppy disk, bootable CD-ROM or other media needed.
  • No keyboard or monitor needed. Simply reflash remotely via SSH.
  • No instant reboot needed. Reflash your ROM in a running system, verify it, be happy. The new firmware will be present next time you boot.
  • Crossflashing and hotflashing is possible as long as the flash chips are electrically and logically compatible (same protocol). Great for recovery.
  • Scriptability. Reflash a whole pool of identical machines at the same time from the command line. It is recommended to check flashrom output and error codes.
  • Speed. flashrom is much faster than vendor flash tools.
  • Supports Linux, FreeBSD, DragonFly BSD, Solaris, Mac OS X. Please refer to the README for build instructions.

Please note that rewriting your flash chip can be dangerous and flashrom developers make no guarantees whatsoever. That said, many users have successfully replaced proprietary tools such as awdflash, amiflash and afudos with flashrom.

Download: flashrom-0.9.0.tar.gz
SVN: svn co svn://coreboot.org/flashrom/trunk flashrom
Debian: apt-get install flashrom

Do yourself a favor and try flashrom next time you want to upgrade your BIOS. No more floppies or bootable CD-ROMs with DOS/Windows binaries or similar crap. Run flashrom conveniently from the Linux command line, or even via SSH or serial console if you want...

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

nice notes

thanks for sharing nice info on linux commands

recommending your site to my cousin

my cousin loves linux, and has been a linux user for quite a long time, possibly around 8 years... i'm positive he'd be thrilled to see your site!

Thanks go to everyone who

Thanks go to everyone who contributed to flashrom over the years

Flashing BIOS in the command line

Great tool, It's funny I was just googling this and come across this post. I hope I don't screw It up this way, last time I had to flash my BIOS I still used the floppy method (yeah, computers still had floppy drives!).

Very usefull. ;D

No EEPROM/flash device found

debian-xfce:/home/marek# flashrom
flashrom v0.9.0+r544
No coreboot table found.
Found chipset "Intel ICH7M", enabling flash write... OK.
Calibrating delay loop... OK.
No EEPROM/flash device found.

...on 3 Years old Fujitsu-Siemens Laptop.

tool

nice little tool ill give it a try and get back to you

ru

Calibrating delay loop... OK. .... ?

great

wow, very nice - I definetly will give it a try next "flashing time".

Building under debian/etch was easy like this:
aptitude install cdbs debhelper pciutils pciutils-dev libpci-dev
svn co svn://coreboot.org/flashrom/trunk flashrom
cd flashrom
make
cp flashrom /usr/local/sbin

Not working for ASUS Eee PC 900

I have an EeePC 900 that I've been trying to update the BIOS on for quite some time. I've successfully built the latest flashrom, but it's not finding the EEPROM/flash device. Here's the output:


alex@spike:~/flashrom-0.9.0$ sudo ./flashrom
Calibrating delay loop... OK.
No coreboot table found.
Found chipset "Intel ICH6-M", enabling flash write... OK.
No EEPROM/flash device found.

Please let me know if there's any info about this system that I can get for you (lspci output, etc), that would help.

The trick then becomes

The trick then becomes extracting the BIOS image out of whatever wrapper the vendor has put it in.