ROM Download

Please note: I no longer maintain, provide, or support custom Chromebook firmware; this page is left here for archive purposes only.

This page contains a command to download and run a script, which will flash custom firmware with a SeaBIOS payload on approaching 40 models of Intel based Chromebook – allowing you to run an alternative OS such as Linux. The script will work with ChromeOS or pretty much any Linux distro (at least no one has told me otherwise).

There are 3 types of firmware mod – RW_LEGACY, BOOT_STUB, and Full ROM – not all Chromebooks work with each one:

  • RW_LEGACY modifies a 2MB section of the ROM leaving the stock functionality intact, including the scary developer screen, and will not brick your device. Some Chromebooks already come with a working RW_LEGACY slot, although many of them do not (non-functional keyboard on Panther, non-functional display on Auron_Yuna, or just plain missing, etc.). As well as fixing aforementioned bugs, updating the RW_LEGACY slot can enable further functionality such as booting from SD card/eMMC. So, even in the case of a functioning stock RW_LEGACY, it may be fortuitous to update.

  • BOOT_STUB modifies the last 1MB of the ROM, removing the scary developer screen, but also removes the ability to run ChromeOS natively, carrying a chance of bricking your device. This also leaves the “REFRESH + POWER” functionality of the stock ROM intact, meaning, when you press these keys, the device will immediately reboot and attempt to run ChromeOS Recovery (which isn’t there any more), and give you a blank screen. The only way to then stop it from attempting to run ChromeOS Recovery on every boot, is to take the device apart and disconnect the battery.

  • Full ROM, as the name suggests, is a complete ROM containing a coreboot build with a slice of SeaBIOS on top, and is the most risky. Again, this will remove the ability to run ChromeOS natively. Flashing one of these will wipe out your product data. In the case of Sandy/Ivybridge Chromebooks a full ROM enables hardware virtualisation extensions and suspend. Other models full ROM’s also probably contain idiosyncrasies that the stock firmware does not.

You need to be in dev mode and to have disabled write-protect by enabling a jumper/removing a screw (usually the latter, located somewhere on the main board). Disabling write-protect is not necessary when flashing RW_LEGACY unless you want to make the legacy slot default. See each respective supported Chromebook’s developer information page (if available) for info on opening your Chromebook up and disabling write-protect.

[TABLE=3]

Jenkins is now being used along with some scripts, to automate building, and to reduce chances of a brick from human error. Run the script like so, making sure you are only in Crosh shell *not* the *root* Crosh shell if running from ChromeOS:

cd;bash <(curl https://johnlewis.ie/flash_cb_fw.sh)

If for some reason you need to run an older build, you will have to flash it manually. See the ROM Archive.

Please note: I no longer maintain, provide, or support custom Chromebook firmware; this page is left here for archive purposes only.

Join the conversation

1295 Comments

    1. It should be a file not a folder.

      You need to navigate to the USB stick from the command line – it will be somewhere in /media/removable. Then run the command I posted previously.

  1. I don’t seem to have the flashrom file, is there somewhere I could get it from and put it on the USB?

  2. Thanks, John. I’ve put that file onto the USB, navigated to it with the “cd” command and did “sudo ./flashrom -w backup-151014.rom” but i’m still getting “sudo: ./flashrom: command not found”.
    Any ideas?
    Sorry for the hassle with this, I’m new to all this so can’t seem to work it out by myself.

    1. Try running “chmod o+rx flashrom” and then running it again – it’s probably that there is no execute permission on the downloaded file (it’s kind of a security feature of Linux).

  3. Okay I tried that but unfortunately it has returned “command not found” again. This is very puzzling. Do I have to install flashrom in some way so it recognises it or something perhaps?

  4. Oh, okay. I just repeated the steps again and still get this: http://imgur.com/dMEP1AG

    Could it be an issue with Elementary OS and maybe I should install Ubuntu and try it on there? Thank you for all this help so far

  5. Great! So now how do I go about reinstalling ChromeOS? I’m sorry I’m so bad at this! I’ll make sure to send you a donation for all your great help and work on this project :)

    1. Well, when you reboot, the firmware should inform you that ChromeOS is missing or damaged, at which point you should plug in a USB stick that has a ChromeOS recovery image written to it.

    1. Not yet. Baytrail ROM’s are a WIP. Google have given me a servo board to debug with, but I will also need them to send me a reference board. Once I have that there will be some to’ing and fro’ing on the mailing list. Could be the new year before it’s ready.

  6. Hi John, thanks for the work on SeaBIOS. I’m unsure if this is related or not, I’ve had my Chromebox for about a week; Ubuntu 14.04 64 bit running on it (upgraded SSD etc.). Just today my mouse didn’t work when I booted it. Upon some trial and error it seems one of the USB ports (back top of the ASUS Chromebox) doesn’t work anymore. If I plug a device in I get an unable to enumerate error (-71). I was unsure if this was an Ubuntu issue, so I tried to reboot and hit ESC to get the boot menu. The keyboard works pressing ESC on all ports but that port. So I’m concerned it’s either hardware related or SeaBIOS/Coreboot related (and why suddenly? I flashed it a few days ago and it’s worked fantastic until today). I’m wondering if that port is the USB debug port and somehow it has become enabled, but unsure. Any suggestions?

    1. The USB debug stuff isn’t compiled into those ROM’s anyway, so it can’t be that. It sounds like it might just be a dodgy port, but you could try flashing back to stock as a control.

  7. I’m wondering about the following problem in Acer C720, are you aware of this issue:

    https://code.google.com/p/chromium/issues/detail?id=362105

    Ie: when you remove (or completely discharge) the battery then the settings for “dev_boot_legacy=1” are lost causing the device to revert to default boot settings and locking out the user as a result because it’s trying to boot ChromeOS which is not there anymore.
    I hear this can happen with stock firmware, not sure if your firmware fixes this?
    Thanks!

    1. Yes, I am aware of that issue, and yes, my ROM’s do “fix” that in the sense that they don’t use GBB flags at all, so there’s nothing to forget when the battery dies. HTH.

  8. The command:
    curl -k -L -O https://johnlewis.ie/getnflash_johnlewis_rom.sh

    gives me the following error…
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0Warning: Failed to create the file getnflash_johnlewis_rom.sh: Read-only file
    Warning: system
    100 5548 100 5548 0 0 7901 0 –:–:– –:–:– –:–:– 9021
    curl: (23) Failed writing body (0 != 5548)

  9. I own a Lenovo Yoga 11e Chromebook.
    Is there a way to install ubuntu or archlinux on the eMMC (16gb kind of ssd) and run them from boot.
    crouton runs okay, but I dont need chrome os!

    I would be very thankfull. Really need this device for study.
    I need to run an ide like eclipse. It runs with crouton as chroot but I would prefer an standalone linux. Also because I study informatics. :)

    Perhaps I can create a fimrware dump or something like that to add coreboot. But I also read that the Problem is that coreboot can’t boot from eMMC :-(
    Read here: http://www.reddit.com/r/chromeos/comments/25bgf0/intel_bay_trail_questiontheorypotential_nonsense/

    I would be very thankfull for answers.

    Greetings by Daniel from Hamburg

  10. I really searching for a solution to run Ubuntu instant (without chroot) on my Lenovo Yoga 11e Chromebook with 16gb eMMC.

    I think the eMMC ist the problem, because of problems with the coreboot or SeaBIOS.

    Is there a fix possible?

    Greetings by DanielfromHamburg

    1. coreboot supports eMMC but SeaBIOS mostly doesn’t. There have been some patches added to ChromiumOS SeaBIOS which enable eMMC support, but I have been unable to test them. I’ve made a preliminary replacement RW_LEGACY section of the ROM, which *might* work on all Baytrail devices. It’s at https://johnlewis.ie/clapper-seabios.cbfs and you apply it the same way the ASUS fix is (look at the ASUS users rejoice article). Let me know if by some miracle it works.

  11. Hi John,

    i try, like danielfromhamburg, to install linux on my thinkpad yoga 11e. as a “noob” i started to read through different blogs/how-to-sites , got in devmode, even succesfully tried crouton and chrubuntu, but i could never get to enter seabios.
    Now, after i added your clapper-seabios.cfg i think im able to get in seabios with ctrl l (before that i got only a “beep” when hit ctrl l), but the screen stay black, seems like it gets stuck…
    i thought maybe you could give me an advice or point me in the right direction (id like to install linux mint, not neccesarily on the sd, on the internal sd would be fine, but i cant boot from usb to install…).

    greets from austria
    merk

    1. You can try flying it “blind”, as it may just be a video problem. After hitting CTRL+L, press ESC and then 2. Make sure a USB stick is inserted, and make sure it’s a dd’ed Fedora/CentOS ISO, as that’s the one known to work above all others. Let me know if that works.

  12. hi, thanks for the help.

    tried as you adviced, but it seem that the usb-stick isnt even running (the read/write-led isnt blinking).

    waited several minutes, tried both usb-ports… only black screen …

    (sorry for the bad englisch, more into hungarian/german)
    and thanks again for the help.

  13. merkb please write me a E-Mail!
    here is my adress:
    MEINVORNAMEABERNURMEINVORNAMESIEHEUNTENminusforenATZEICHENgmxPUNKTkomm

    And did you enable the devrom with cronos shell.(like decribed in the black text I allways ignore :D ) I could start yesterday chromium from sd-card. My first success!

    John did you got my post from yesterday or is it lost?

    Greetings by DanielfromHamburg

  14. I am in a twist…
    I am scared that I can brick my Lenovo Yoga 11e Chromebook.
    Or is this “not” possible?
    I read that I can restore the changes of RW_LEGACY slot with a Chrome OS recovery media. Is that true?

    Here h titiPiS johnlewis.ie/asus-chromebox-owners-rejoice/ is something written about:
    (you don’t need hardware write-protect disabled)
    but did I have to disable the software write protection?
    Cos when I make:
    sudo bash
    flashrom –wp-status
    I got:
    flashrom v0.9.4 : 3ba6a31 : Aug 16 2014 05:27:16 UTC on Linux 3.10.18 (x86_64), built with libpci 3.1.10, GCC 4.8.x-google 20140307 (prerelease), little endian
    Mapping BYT IBASE at 0xfed08000, unaligned size 0x200.
    Mapping BYT IBASE at 0xfed01000, unaligned size 0x200.
    WP: status: 0x0094
    WP: status.srp0: 1
    WP: status.srp1: 0
    WP: write protect is enabled.
    WP: write protect range: start=0x00600000, len=0x00200000

    So I try to backup my rom/seabios:
    flashrom -r old_firmware.bin
    I got:
    flashrom v0.9.4 : 3ba6a31 : Aug 16 2014 05:27:16 UTC on Linux 3.10.18 (x86_64), built with libpci 3.1.10, GCC 4.8.x-google 20140307 (prerelease), little endian
    Mapping BYT IBASE at 0xfed08000, unaligned size 0x200.
    Mapping BYT IBASE at 0xfed01000, unaligned size 0x200.
    Block protection could not be disabled!
    Reading flash… SUCCESS

    And he really create rom backup! I thought he would not cos of “Block protection could not be disabled!”, but he do.
    Here is it (i hope it is not stupid to upload here!): h titiPiS mega.co.nz/#!f4JhlI4T!sslhLDXwV6RQDc60I5JGZCmwMtjWTB_8LzlxyIfCFqU

    Is this backup of my bios without disable the hardware write-protect nor the software write protection, a valid one?

    After that I try:
    flashrom –wp-disable
    I got:
    flashrom v0.9.4 : 3ba6a31 : Aug 16 2014 05:27:16 UTC on Linux 3.10.18 (x86_64), built with libpci 3.1.10, GCC 4.8.x-google 20140307 (prerelease), little endian
    Mapping BYT IBASE at 0xfed08000, unaligned size 0x200.
    Mapping BYT IBASE at 0xfed01000, unaligned size 0x200.
    w25q_disable_writeprotect(): error=1.
    FAILED

    “Warning: If you do not disable the write protection before setting the GBB flags you endanger wiping out the RW-LEGACY part of the firmware (i.e. SeaBIOS) and your system might not boot (should be recoverable with Chrome OS recovery media). Updated versions of set_gbb_flags.sh won’t let you set the GBB flags without disabling the write protection.”Source: h titiPiS wiki.archlinux dot ORG/index.php/Chromebook#Enabling_SeaBIOS

    The last thing I did was to do so under terminal:
    chronos
    chromeo-firmwareupdate –mode=todev

    Then I load chromium and put it with win32diskimager to an sd and it bootet up with CTRL+U !

    After that I try to install ubuntu on ssd (mmcblk0), but I still boot and boot again into chromeos and never into ubuntu.
    WHY?!
    Following take no effect:

    Boot Default auf Chrubuntu: sudo cgpt add -i 6 -P 5 -S 1 /dev/mmcblk0
    Boot Default auf ChromeOS: sudo cgpt add -i 6 -P 0 -S 1 /dev/mmcblk0

    I follow a little bit thos how to here:
    pcpro co uk /features/381394/how-to-install-ubuntu-on-a-chromebook/2

    Would be very happy to hear from you or another user here.

    Greetings by DanielfromHamburg

    1. tldr;

      The RW_LEGACY slot hasn’t got anything in on the Baytrail Chromebooks, no. That part of the ROM is writable even with write protection enabled. No, it won’t brick your device, and will certainly work no worse than the empty slot. Any remaining questions after my reply, please ask again, but try to keep it succinct.

  15. Just wanted to say thank you in this forum – along with my paypal donation.

    I spent the last week converting the used HP chromebook 14 laptop that I recently purchased into a very nice ubuntu laptop.

    FYI: I used your rom, installed KUbuntu 14.10, upgraded to latest 3.17 kernel, added the magic “echo -n “00000:00:1d.0” > /sys/bus/pci/drivers/ehci-pci/unbind in rc.local, and tweaked some synaptics settings. At this point everything works (including suspend/resume and the free 4G Tmobile data plan).

    I still need to add some power tuning tweaks from powertop, but once those are in it seems like 6+ hours of battery life should be no problem for my normal workload (web browsing + remote access via x2go).

    I even have a windows VM available to run via VirtualBox.

    P.S. I did upgrade to the 128GB SSD (which was fairly straightforward but lots of steps to get access to the underside of the motherboard).

    Anyway, thanks again for providing the ROM!!!

  16. hello my friend.
    got this error when installing windows 7: “the bios in this system is not fully acpi compliant”. help me

  17. My friend:
    My model is c710-2833 and the bios is “coreboot-parrot-seabios-040914.rom”, the bios was downloaded with the code you wrote above.
    when I turn on the laptop appears “seabios (version 1.7.5-040914-10:53-johnlewis.ie)
    press ESC for boot menu.
    Select boot device:
    1.- ACHI/0: ScanDIsk SSD U100 16GB ATA-9 Hard-DIsk
    2.- Payload (jeltka)

    Help Me Please

  18. Hey John,

    I came to notice that your script does not download the highest version of seaBIOS on your server but the one which was last modified. In case of the Acer C270 this is version 040914 (last modified 04-Sep-2014) even though you already host version 310714 (last modified 11-Aug-2014).

    Is this behavior intentional? If not: Is ist possible to update to a newer version manually after installing Ubuntu without losing your data?

    Thanks so much for providing this custom rom! I don’t have paypal but will grab some bitcoin to donate some money to you. I read about it in the script… I also were at auch a point at some time in the past… But an intelligent guy like you will fight through it!

    1. Thanks very much, Fanami.

      There *may* be newer ROM’s in the directory listing, but they either don’t work as well or don’t work at all. So, as is stated in at least one place on these pages – don’t manually upgrade unless you know which ROM you want, and you need it for a specific purpose. To date, the only ROM I think people *may* want to upgrade manually to is the old C710 “Windows” compatible ROM from October ’13.

  19. Hi,

    Can someone share original image or mrc.bin (original ~102KB size)for chromebox 3 (stumpy)?

    regards
    Dominik

  20. my friend
    I can not fix the problem, I can not install my windows 7 and not load the ChromeOS.
    thank you.

    I am that I have problems with acpi

  21. My friend:
    My model is c710-2833 and the bios is “coreboot-parrot-seabios-040914.rom”, the bios was downloaded with the code you wrote above.
    when I turn on the laptop appears “seabios (version 1.7.5-040914-10:53-johnlewis.ie)
    press ESC for boot menu.
    Select boot device:
    1.- ACHI/0: ScanDIsk SSD U100 16GB ATA-9 Hard-DIsk
    2.- Payload (jeltka)

    Help Me Please

  22. Hello, I am attempting to run the command on the download page and it keeps throwing the following error

    0Warning: Failed to create the file getnflash_johnlewis_rom.sh: Read-only file
    Warning: system
    100 5760 100 5760 0 0 3478 0 0:00:01 0:00:01 –:–:– 4324
    curl: (23) Failed writing body (0 != 5760)
    bash: getnflash_johnlewis_rom.sh: No such file or directory

    I have read the previous comments with other people having the same error, however I have made sure that I am copying the full command: cd; rm -f getnflash_johnlewis_rom.sh; curl -k -L -O https://johnlewis.ie/getnflash_johnlewis_rom.sh; sudo bash getnflash_johnlewis_rom.sh

    Any ideas what could be the issue here? and if possible any fixes?

    1. That’s your problem. When you run sudo -s you are interactively running as root. When you then copy and paste my command, it changes to the home directory, which for root is “/root”. ChromeOS doesn’t allow you to write to any part of the system partition, only the *normal* user directories under /home which are mounted as part of the stateful partition. You should only be in the shell (denoted by green writing) *not* root shell (denoted by red) when running this command. I’m sure other people have come across this problem but then they just ran it under the user shell instead, and got through.

  23. Thank you so much! You’re a gentleman and a scholar.

    These two things the got me stuck for hours: DON’T run the command as super user (which I figured out by reading your reply to someone else’s question) and unmount the usb drive using umount /dev/sda before running the command (it kept throwing up the “read only device” error).

    Also, I’m sending money.

  24. So I flashed one of your earlier ROMs and I gotta say thanks a bunch. Does this script have Windows support or should I try one of the earlier ones?

  25. Hi, first of all many thanks for your custom coreboot. Runs pretty well here on acer c720 with xubunut 14.04 After trying to workaround the stupid thermal mangement of the c720 (continious fan on/off) it seems I found an issue with the embedded controler (ec) firmware while runnig the custom coreboot image: it seems the ec runs with failsave factory RO firmware instead of the actual RW firmware which was updated by google, see:
    http://www.chromium.org/chromium-os/ec-development

    https://docs.google.com/presentation/d/1Xa_Z5SjW-soPvkugAR8__TEJFrJpzoZUa9HNR14Sjs8/pub?start=false&loop=false&delayms=3000

    Maybe looks like some checksum/hash issue.

    If you do:
    # sudo ectool version
    RO version: peppy_v1.5.113-2d79820
    RW version: peppy_v1.5.129-cd1a1e9
    Firmware copy: RO
    Build info: peppy_v1.5.113-2d79820 2013-10-18 14:51:34 @build121-m2

    Normally it should use the RW firmware like in ChromeOS:
    RO version: peppy_v1.5.113-2d79820
    RW version: peppy_v1.5.129-cd1a1e9
    Firmware copy: RW
    Build info: peppy_v1.5.129-cd1a1e9 2014-03-07 17:18:27 @build120-m2

    So it actually uses the old RO version 113 instead of the updated version 129, means fixes to the embeded controller (like improved thermal mangement) are not working while running the custom coreboot. Do you know a way to fix this?

    Thanks,
    Henrik

    1. You could try building your own EC firmware and flashing that using the instructions on the EC development page.

      The problem is, the custom firmware has no notion of the EC having an RO/RW firmware – it doesn’t do anything with it.

  26. Yeah, but is I dont realy understand how this works :) I just wonder why with the original coreboot the ec uses the RW firmware while booting with modified coreboot ist uses the old RO firmware. Maybe its related to enabled develope mode or something like this?

    1. It’s something ChromeOS specific. These ROM’s have ChromeOS support removed, otherwise suspending doesn’t work in Linux.

      It’s probably some CMOS setting that the U-Boot portion of the original ROM manipulates, or something like that. If you can overwrite the RO portion of the EC with the newer version, problem solved.

    2. BTW, where did you run ectool from to get that output? I’ve tried running it from within the coreboot git “util” directory and it doesn’t recognise that option. Presumably in ChromeOS?

  27. Hi! I just disabled write protection (removed screw) on my Acer c720. How do I get to a Crosh shell to flash the bios? I have already installed Linux and wiped out my Chrome OS partitions.

    When I boot up now I can’t use Ctrl+L to legacy boot, it just beeps as me. I can only Ctrl+D and that gets me the ‘Chrome OS is missing or damaged.’ screen.

    Did i miss something? Thanks!

    1. Sounds like you’ll have to put ChromeOS back on there before you can proceed, I’m afraid. Did you disconnect the battery at any stage? If the battery runs flat (or is possibly disconnected) the GBB flags are reset. It’s a known Chromebook bug with some of the Haswell models.

  28. The ectool is from util dir in the ec firmware git (https://chromium.googlesource.com/chromiumos/platform/ec/). Yes, its uboot/vboot that sends a reboot RW command to the ec. Found it after diving into the uboot source. So with seabios this is not happen and ec remains running in old RO firmware.

    Its possible to reboot to RW with ‘ectool reboot_ec RW’ from shell with linux kernel is running but the kernel gets confused (ghost keycodes, battery empty message).
    But after this the fan control seems to be improved, no more on/off.

    Yeah, overwriting RO portion with RW would fix this, but Im afraid of doing this without debug board. If this fails I think it will not boot again and I need jtag to flash the lm4f ec.

    Would it be possible to include the reboot to RW command in coreboot instead?
    Maybe use some of the battery backed up NV flags to decide boot to RO/RW.

    1. I’m sure it’s possible, but I’m not a dev and I wouldn’t know how to do it.

      Flashing the EC using ChromiumOS Flashrom is going to be no more scary than flashing the coreboot ROM – they both generally use 8 pin SPI chips, so if something goes wrong a BBB/RPi/BusPirate + connecting wires + SOIC clip is the order of the day. Just make a copy first (I think the EC firmware is included in the shellball ROM anyway).

      I can try building one for you. I have a HP Chromebook 14, which is the same hardware, so I can test it on mine first.

  29. Hmm, on the c720 it looks like the ec firmware is stored in the ec controller embedded flash itself (1st half RO and 2nd half RW), at least it looks like there is no 2nd SPI flash. That scares me a little as ist more difficuilt to reanimate after death.
    Maybe I play a little bit with this tommorow…

    1. Maybe you should let me do the messing. I know for a fact that my son’s HP Pavilion Chromebook has a second SPI of 512k. That means I can safely test my theory on his device before trying a HP 14/C720. I expect that the first 256k of the ROM is the RO firmware, the second 256k RW. So, if I dd the second half onto the first half and see whether it boots, we’ll find out if my assumptions are correct.

    2. Well, there’s nothing like an SPI that doesn’t want to be written to to get your heart going, especially given I have more or less completely bricked the Lenovo N20p I purchased recently. Luckily, attaching 3.3v to the WP pin disabled the block protection, and did the trick.

      Okay, the older Sandybridge Chromebook EC’s have a slightly different structure to the newer Haswell based ones. I have chosen the Dell Chromebook 11 as that’s what I have at hand, and they are all more or less the same (based on the same reference board). If you look at the output from fmap_decode, below, you’ll see that the EC_RW area is some bytes bigger than the EC_RO area (this is not the case for the HP Pavilion, both are identical). Question is, do we want to risk just taking the the amount of bytes the EC_RO requires and end up with a potential permanent brick? It’s only 2k smaller than EC_RW, but if we miss off the wrong 2k (either at the start, or at the end) we’re banjaxed.

      fmap_signature=”0x5f5f464d41505f5f” fmap_ver_major=”1″ fmap_ver_minor=”0″ fmap_base=”0x0000000000000000″ fmap_size=”0x40000″ fmap_name=”EC_FMAP” fmap_nareas=”7″
      area_offset=”0x00000000″ area_size=”0x0001f800″ area_name=”EC_RO” area_flags_raw=”0x05″ area_flags=”static,ro”
      area_offset=”0x00000000″ area_size=”0x0001f800″ area_name=”FR_MAIN” area_flags_raw=”0x05″ area_flags=”static,ro”
      area_offset=”0x00000254″ area_size=”0x00000020″ area_name=”RO_FRID” area_flags_raw=”0x05″ area_flags=”static,ro”
      area_offset=”0x00010d00″ area_size=”0x0000015e” area_name=”FMAP” area_flags_raw=”0x05″ area_flags=”static,ro”
      area_offset=”0x00000000″ area_size=”0x0001f800″ area_name=”WP_RO” area_flags_raw=”0x05″ area_flags=”static,ro”
      area_offset=”0x00020000″ area_size=”0x00020000″ area_name=”EC_RW” area_flags_raw=”0x05″ area_flags=”static,ro”
      area_offset=”0x00020254″ area_size=”0x00000020″ area_name=”RW_FWID” area_flags_raw=”0x01″ area_flags=”static”

    3. I think the safest way of doing it is to run the ectool command to switch to EC_RW, and then kexec the kernel. You would effectively be booting twice but it should work. Maybe you could set a script to do this as the init for the kernel at the kernel cmdline so it’s not doing a whole init twice.

    4. Having looked at the ROM with a hex editor, you can see that the FMAP area is part of the RO EC firmware. I also wouldn’t be confident of separating/splicing that, and for it to work.

      FWIW, ectool on my machine says this:

      RO version: falco_v1.5.113-2d79820
      RW version: falco_v1.5.113-2d79820
      Firmware copy: RO
      Build info: falco_v1.5.113-2d79820 2013-09-30 20:35:40 @build122-m2

  30. Hi, yeah, I also think it would not work to just copy RW to RO.

    I can confirm that for C720 and maybe for the other hashwell chromebooks the ec firmware is stored direct in ec itself and runs direct from flash. That makes it more difficult to recover, not worth the hassle. I soldered JTAG/SWD to the debug port an could connect with winIDEA debugger and some diy interface (http://imgur.com/a/q1hjz/all)
    The code dumped via JTAG was the same as from the ectool dump. For some reason it was not possible to flash code. Stupidly then I played with the HW flash protection registers of the lm4f with the result that my ec is completely locked(write protected) now. Not possible to update it in future any more. But at least its still alive :)

    So going the kexec way sounds like a goot idea…
    Meanwhile I started some coding for a simple auto fancontrol from usersace, to at least get rid of this annoying fan behaviour.

    Hmm, it seems on your machine there is no updated RW firmware, runs the same old version.

    1. Sounds like a close shave. Well done on getting the debugging wires soldered there, looks like fiddly stuff!

      Yeah, I guess the HP 14 didn’t have the same problem and they left it alone.

  31. Hi John:

    In the flash rom guide, you mentioned “making sure you are only in Crosh shell *not* the *root* Crosh shell”. I am confused about this statement, because obviously your script needs root privilege to run.

    Could you please explain the difference? Thank you very much for your work and time.

    1. Hi Michael,

      Some people have erroneously been running “sudo -s” in the Crosh shell before pasting my commands. This runs an “interactive” root shell. The problem with that is it also changes the environment the chain of commands run under, and the commands need the user’s directory to be writeable (otherwise the script cannot be downloaded). As you may know, root’s user directory is usually “/root” by default, in Linux/ChromeOS, and ChromeOS doesn’t allow the system partition to be writeable (just the stateful partition where “normal” users’ home directories reside). This means that the script has to be executed via a straight “sudo” *after* download (you’ll notice sudo in the command you paste). Hope this explains things successfully for you.

  32. Hi John

    I am trying to flash my Acer c7. I have been able to follow the instructions so far and I have made sure the write protection is off. But every time I try to run the script I get the message below. Can you tell me what Im doing wrong?

    *** Backing up existing ROM to current directory ***

    flashrom v0.9.4 : cbaba9c : Sep 23 2014 06:28:52 UTC on Linux 3.4.0 (x86_64), built with libpci 3.1.10, GCC 4.8.x-google 20140307 (prerelease), little endian
    The Flash Descriptor Security Override Strap-Pin is set. Restrictions implied
    by the FRAP and FREG registers are NOT in effect. Please note that Protected
    Range (PR) restrictions still apply.
    SUCCESS
    flashrom v0.9.4 : cbaba9c : Sep 23 2014 06:28:52 UTC on Linux 3.4.0 (x86_64), built with libpci 3.1.10, GCC 4.8.x-google 20140307 (prerelease), little endian
    The Flash Descriptor Security Override Strap-Pin is set. Restrictions implied
    by the FRAP and FREG registers are NOT in effect. Please note that Protected
    Range (PR) restrictions still apply.
    Reading flash… backup-041214.rom: Read-only file system
    FAILED.FAILED
    *** Reading ROM failed, exiting … ***

  33. The boottime on my c720 is now 7sec on arch and 8 sec if you include starting X.
    Have had arch installed for a while on the laptop now and i didn’t need to do anything else than just run the script and it works wonders. Thanks alot!

    Will go ahead and send you 5€, even though i’m a poor student i think you’re worth it! Good job!

  34. Hi,

    I have a cromebook 5 550 with celeron cpu, I would like to know if is possible install the seabios on it.

  35. Works like a charm. Lenovo Chromebook X131e, after John’s script easy boot from live USB Tails OS.

    1. Thank you, Pavel. Ooooh, ultra-secure you. How do you find it runs from USB? I’ve only one partition running from encrypted USB, and I find it slows down a lot if more than a couple of things write to it at once (the USB key obviously can handle concurrent writes)?

  36. I downloaded and installed installed the new SeaBIOS-Version on my Chromebooke C720 (it downloaded “coreboot-peppy-seabios-181114.rom”). After that i rebooted and now I can’t boot anything.
    I can see the following:
    SeaBIOS (version 181114_13:34-johnlewis.ie)
    Press eSC for boot menu.
    Booting from Hard Disk…
    early console in decompress_kernel
    KASLR using RDRAND…
    Decompressing Linux… Parsing ELP… Perfoprming relocations… done.
    Booting the kernel.

    And at that point my CB will freeze and I have to turn it off. When I try to enter the Boot-Menu I can’t see the USB I plugged in. I can see my SSD and some other option I cant remember. Right now I cant even enter the Boot-Menu anymore and I don’t know why.

    How can I fix that? How can I boot from USB again? How do I get my CB working again?

    Thanks.

    1. The output you’re getting is consistent with SeaBIOS trying to load the ChromeOS kernel. So, there’s something wrong with your USB. Please dd a Fedora ISO image to the drive and try that. Please note you cannot run ChromeOS in the conventional way after flashing one of my ROM’s …

  37. I tried different distros (really slow internet, so I wanted to test it with ISOs that I already have) and they all worked (except the first). Now they all work without me changing anything so I guess my USB wasn’t formatted properly or something…

    Thanks though

  38. I was asking about how i would update the the BIOS to one that can run Windows. I have one of the earlier ROMs and am running Ubuntu 14.10. Every time i try to run the Windows installer the screen goes black. I’m assuming that if i upgraded to a later version that would solve my problem. Could you assist me as to how I would go about that.

  39. On the bootup screen it says rel-1.7.3-84-g8744e15. Thanks for all the help you’ve given the CB community. Wish i could donate but I’m only sixteen and have no way of getting income.

Leave a comment