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.

Supported Chipset Matrix

     
SANDY/IVYBRIDGE RW_LEGACY FULL ROM
  ONLY ON 1ST GEN PIXEL YES
HASWELL RW_LEGACY FULL ROM
  YES MOST MODELS
BAYTRAIL RW_LEGACY FULL ROM
  YES NO
BROADWELL RW_LEGACY FULL ROM
  YES NO
BRASWELL RW_LEGACY FULL ROM
  YES NO
SKYLAKE RW_LEGACY FULL ROM
  YES NO
     

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

1272 Comments

  1. hello.
    I know you said you’re not supporting new updates to your tool, but I figured I would post since I’ve spent several days on my issue now.
    I bought a new cheap chrome OS laptop from walmart ($160) it’s a Lenovo ideapad 3. My whole plan was to use this hardware to boot chrome and a Linux bootable USB I already have.
    But it feels like that’s impossible. Your tool says “lick is currently not supported at all”. The mrchromebox tool all the options are greyed out and it says my device isn’t supported.
    I have developer mode on, write protect off… when I bootup and press CtrlU it just beeps at me and does nothing.
    Is there any other firmware or methods of booting from a usb?

    1. If mrchromebox hasn’t done it, chances are there isn’t any other available firmware for it, at this time.

      The good news is, it is definitely an Intel CPU, so should be possible “in theory”.

      However, even if you bought the bits so you could debug (which might not be possible, depending on model type) and reflash the chip as necessary, and finally got something that worked, there’s a fair chance that not all the hardware, like maybe soundcard, will work under Linux.

      So, in summary, I’m saying it’s possible, but you have a lot of hurdles to jump through, and it almost certainly won’t work perfectly.

  2. Hello, I have a Acer Chromebook 311 (BOBBA). When I run the script 1 hour ago, it tells me “bobba is not currently supported at all using this script”. So what I can do then?

  3. Hello there ;)
    I am using stout (x131e) – i’ve flashed it long time ago. Ever singe i’ve happily used it as a linux machine, however then-flashed version was found buggy (it sets date to year 2170 when power is lost, amongst others).
    My question is: is there a way to flash updated BIOS bundle (u-boot/ coreboot/ seabios) while running linux, or am i forced to get back somehow to Chrome and then run flasher with apropriate firmware?
    And hey – thanks for all hackery that you’ve made, even if you discontinued your project, your legacy will stay here forever :)

    1. Hi :)

      You should be able to run the script under straight linux too, and it will (hopefully) complain if commands are missing. I haven’t ran the jenkins job to create new firmware, for a while, so if you try the latest and it doesn’t improve things, can give you a newer build in the hope that might do something good with a newer version of seabios.

      The time being reset to a stupid value is actually a “feature” ;) of Chromebooks – to save every penny, they don’t have a cmos battery, so when the main battery drains down, arbitrary stupid value is generated (which can stop network manager from connecting wireless network). All good fun, lol

      You’re welcome. It’s a shame I don’t find Chromebooks especially compelling, any more. :)

Leave a comment