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. On my c720 I enabled Developer Mode and in ChromeOS I only ran your flashing script followed by crossystem dev_boot_usb=1 dev_boot_legacy=1 and rebooted

    I forgot to remove the write protect screw first.

    Yet your ROM loads and I’m able to boot into jeltka.

    Why is the write protect screw necessary if the flashing succeeded? And now that I’ve removed the screw do I need to reflash your ROM again (somehow?)

  2. Hi John, I hit a mystery failure on trying to disable write-protect:
    https://imgur.com/gH9z1ta,xrc6oIq
    – that was my last effort after several attempts with Al foil or Cu wire inside, this time using a short jump lead held in by friction with the case hanging open while typing, thereby being absolutely certain that contact was made.

    I tried asking Stefan and so far got the same response you just gave someone else, but as far as I’ve seen from motherboard diagrams and wiki descriptions, there’s only a jumper to worry about on the c710, no write-protect screw. Am I mistaken, or could this be a manufacturing fault… or something else entirely?

    1. It’s a jumper on the C710. The impression I have is that foil is tricky to use. I used a small watch screw-driver wedged carefully between the pins, others have used cut down HD jumpers successfully.

  3. I don’t mind having the option to use ChromeOS for web apps (and also as a front to the true potential of my Chromebook). What I would like to do is to USB boot into KALI linux for penetration testing purposes. Any suggestions?

  4. Just letting everyone know that I’ve tried the last rom release on my dell chromebook 11 and everything worked fine, no errors or problems encountered. I already had arch installed so I didn’t try
    Jeltka.

    John, thank you for your work and taking the time to do this, I’ll be donating soon.

  5. and i don’t know if the backup is save in the usb drive or the pc because i have erase the usb drive.

    1. If you’re using a shellball ROM you can change the HWID to any of the ones listed by linux_recovery.sh when you run it (without using any search terms) and that will at least allow ChromeOS to update.

    1. If you want to go back to stock (or as near as possible when you haven’t got a backup), you’ll want to get a shellball ROM, using the link I provided earlier, and stick a hardware ID in it, then flash it. You can also optionally add a serial number and MAC address.

  6. So i take an hardware id at random ? No risk to brick chromebook ? No problem with chromeos ? and what is in detail the shellball rom ?

    1. Preferably one for a C720, but in theory any should be okay. No, very little risk. If you don’t change the MAC it’s theoretically possible you could come across someone else who has done the same thing, and then you’ll have network “collisions”. The shellball ROM is a factory Google ROM which doesn’t have the bits previously mentioned in.

  7. Acer C720, latest 9/04 ROM

    Any plans on fixing suspend issues? When I suspend, sometimes the computer will reboot. This happens when I suspend longer than an hour or two. I no longer suspend because there is always the chance that the laptop will reboot on its own.

    Furthermore, when the computer doesn’t reboot and I resume successfully, the computer sometimes reboots after a few minutes anyways. I cannot reliably replicate the issue, but it only happens when on battery.

    1. Unfortunately, as I am not a C or firmware programmer, my options for “fixing” things are somewhat limited – I am mostly at the mercy of changes the coreboot devs make. Having said that, I can try different options. I can make a build using the firmware branch of ChromeOS coreboot which the HP Chromebook 14 was released with, test it doesn’t brick my device, and then let you try that?

  8. I have install chrome os but there are two problems:
    – i don’t have chrome os update
    – my chrome os is in 32 bits

    1. You need to add a valid hardware ID to the ROM. It’s something like gbb_flags.sh –hwid *yourhardwareid* Valid ID’s can be found by running the Linux ChromeOS recovery script and not entering any search terms, whereby every ID of every Chromebook model gets printed. Choose one of those.

  9. Hi John!

    First of all thank you! You’re doing a great job!
    I want to ask you two questions. I would appreciate if you answer them.
    I have a HP Chromebook 14 (Falco) and Ubuntu 14.04 with your latest bios on it. Sometimes (not always) I have an issue when trying to wake my laptop from sleep mode. It just doesn’t boot. Is that a common issue and is there a way to fix that?

    Also my second question is a little bit offtopic. I’ve heard you own the Falco too. How do you manage non-availability of del button? :)

    Thanks in advance!

    1. Hello Alex,

      Thank you. Are you using suspend or hibernate?

      I have home, end, delete, pgup and pgdn mapped to brightness up, brightness down, mute, lower volume, and raise volume respectively. The systemd keyboard mapping for HP Chromebook 14 can be found in /usr/lib/udev/hwdb.d/60-keyboard.hwdb and you then need to run udevadm hwdb –update and reboot for it to take effect.

      There are some interesting xbindkeys/skhcd settings on the Arch wiki which more or less get the keyboard to act as it does in ChromeOS, but I haven’t tried them.

  10. $30.00 coming your way.

    I have tried to run the script and it connects to your site and downloads some data. It creates .bash_history file and also a getnflash_johnlewis_rom.sh script on the system. When I do a lsusb it shows a valid usb drive inserted in Bus 002 Device 004: which is a usb 2.0 1GB PNY stick. It does not matter what port I try I get an error “You *MUST* run this script whilst a valid USB stick is inserted. Please insert one and try again *** The stick has been formatted fat/fat32/ext2 and still the script does not detect it. I have the write protect plug shorted on the motherboard with foil and I am in developer mode under chronos login.

    I have a C710 Parrot Aruana A-E 8667 with the 16GB SD installed. Can you get me going.. thanks.

    1. I already alluded to that – run the linux_recovery.sh script (available on the ChromeOS recovery site), don’t enter and search terms and it will list every HWID. Pick one. The command to change the ID is something like gbb_utility.sh –hwid yourhwid. Exact syntax almost certainly varies, so you’ll need to do a little work yourself there. Try the command and look for other commands in /bin /usr/bin /sbin /usr/sbin that begin with gbb if that doesn’t work. If the command line switches are wrong, run with –help and look for hwid to get right syntax. Post syntax back here so I can repeat to other people who ask. :D

  11. chronos@localhost ~$ /media/removable
    chronos@localhost /media/removalbe $ ls -al
    total 0
    drwxr-xr-x 2 root root 40 Sept 25 00:14 .
    drwxrwxrwt 4 root root 80 Sept 25 00:14 ..
    chronos@localhost /media/removable $

  12. does it need any particular filesystem on it?? NTFS/Fat/Fat32/Ext2. I can use SD Formatter to format it or Mini Tool Partition Wizard or any win-based formatter you may suggest… if not I could use a livecd and boot into linux and run some commands that way if you have any suggestions then please let me know how you would do it

    1. I think ChromeOS is restricted to FAT/NTFS/EXT/ISO filesystems. I’ve had it do strange things when formatting too, so I would recommend doing it in another machine, and also confirm you can successfully copy things to it before trying it on your Chromebook. You may also want to reboot the Chromebook before you stick the USB stick back in – I found it does some sort of caching of what filesystem it expects to be on a previously inserted stick, which can also bugger things up.

  13. The syntax of your command is wrong so i have type gbb_utility in the terminal and found these command (i’m not sure):
    “gbb_utility –hwid=PEPPY A2A-A2E-A5W” and
    “gbb_utility –set –hwid=PEPPY A2A-A2E-A5W” but when i type these command i have the error:
    “A2A-A2E-A5W: No such file or directory
    error: cannot load valid BIOS file: A2A-A2E-A5W”.

  14. I get the following error” 0Warning: Failed to create the file getnflash_johnlewis_rom.sh: read only file” when trying to flash the bios patch on a acer c720. I’ve got the write screw removed, though I’m not sure this is the problem.

    1. If you had copied and pasted the command on the web page completely you would be in a writeable directory, which you are not. Please do it again and make sure you preserve the “cd” at the start.

  15. In reading the FAQ I see the following:
    No keyboard / trackpad. (USB keyboard / mouse only)

    The Trackpad on C710 is not the best but I got used to it
    Is there anyway to get Keyboard / Trackpad working after flashing the Bios?

    TIA Dave

    1. That is in relation to running Windows, and is under the question “Q. Can I run Windows?”. No, there is currently no way to get the Google i2c device, and therefore the keyboard/mouse working under Windows, unless you can write a Windows driver. I think the FAQ is quite clear about that.

  16. Running your latest BIOS on a C710-2833 (Acer’s first chromebook with an SSD) with 4GB of ram. Linux Mint 17 and kernel 3.17 RC7. Suspend works every time using the lid switch, but never works due to inactivity. Thanks for all of your hard work.

  17. Hello, first I just wanted to say thank you for all your hard work! I wish I found this earlier.

    I was able to successfully install this on my Samsung series 5 550 (aka lumpy) and installed Ubuntu 14.04.1 Everything works great so far except for the touch pad.

    I know you said in the FAQ that the touch pad may not work due to static but it seems that my OS isn’t able to detect the touch pad hardware at all via “cat /proc/bus/input/devices” or “xinput list”. Or will grounding the touch pad fix that?

    I wasn’t sure if it was something wrong with my OS, coreboot, seabios, drivers, kernel, or the grounding issue that you mentioned. I was just wondering if you had any advice or pointers on what to do or where to look. Thanks again!

  18. Acer C720, 9/04 Seabios

    I still am experiencing problems with suspending, and I’ve even noticed that sometimes the computer turns on by itself after I’ve shut it down.

    John, you mentioned a week ago: “I can make a build using the firmware branch of ChromeOS coreboot which the HP Chromebook 14 was released with, test it doesn’t brick my device, and then let you try that?” I’d just like to follow up.

  19. Hi Dude,

    I tried this is in dell chromebook. Everything is work fine expect the driver. So I use external keyboard and mouse. But the problem is after some time external keyboard and mouse also not working.

    Kindly help me to resolve this.

    I have the chromebook BIOS backup. Can I install it back ?

    Kindly help me as soon as possible.

    1. You either need to use a script to compile the necessary modules (which will vary based on which distro you’re using) *or* compile your own 3.17 kernel (which already has the drivers in).

      Which distro are you using?

      You can install it back, but, you’ve come this far, why give up now!

  20. I have been trying to download the firmware for my acer c720 but I keep getting this message:

    Any idea’s?

  21. localhost / # cd; rm -f getnflash_johnlewis_rom.sh; curl -k -L -O https://johnlewis.ie/getnflash_johnlewis_rom.sh; sudo bash getnflash_johnlewis_rom.sh
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    0 0 0 0 0 0 0 0 –:–:– 0:00:02 –:–:– 0Warning: Failed to create the file getnflash_johnlewis_rom.sh: Read-only file
    Warning: system
    100 5548 100 5548 0 0 1370 0 0:00:04 0:00:04 –:–:– 1405
    curl: (23) Failed writing body (0 != 5548)
    bash: getnflash_johnlewis_rom.sh: No such file or directory

  22. Hello, i need a link to download a flashing room for my bios. I wanna instal windows 7, i have a acer chrome c710-842g32ii, need help plz.

  23. I flashed the BIOS on my HP Chromebook 14 and installed Elementary OS but it’s running really hot and the battery is really reduced. I’ve installed something called TLP but I can’t find a way to fix it. It’s really warm on my lap when ChromeOS wasn’t; it’s made it unusable for me. How can I flash the original BIOS back and get back ChromeOS? Thank you in advance :)

    1. Firstly, I would suggest you try to find out what is using high CPU in Elementary OS – I’ve used Fedora and CentOS 7 with these ROM’s and there isn’t much heat or fan. If you aren’t able to fix that, then maybe try another distro.

      Have you got the ROM backup the script made?

  24. I will most likely try to tinker with it some more in a month or 2 but I have a short trip coming up and would like to return to ChromeOS just for the ease of everything while I’m away.

    I made a backup during the script on a USB stick but didn’t realise that USB stick already had Ubuntu booting files on it (I had previously installed Ubuntu 14.04 with it) so yes I do have the backup but I will need to figure out which files are the bios backup files so I can delete the Ubuntu ones off it I guess? Aha

    1. The “file” will be called “backup-ddmmyy.rom” where ddmmyy is the date the backup was made.

      If you happened to run the script twice on different days, the stock ROM backup will be the oldest one.

    1. Flash the file manually back I.e. “sudo ./flashrom -w backup-151014.rom”

      That is assuming you also still have the static flashrom binary in the same location as the ROM backup.

  25. Do I just type what you said into the terminal? I tried it and it says “sudo: ./flashrom: command not found” Sorry I’m new to this kind of thing

  26. Initial testing on another HP Chromebook 14 (Falco). Looks good! Boot process is clean, was able to use Jeltka to clone the SD card I was booting ubuntu from onto the internal SSD and boot without issue. Was shocked at how easy it was to the the 3G modem working. Still tinkering to nail out the sleep issues though (get quite a few crash notifications at boot about sleep related items).

    1. I don’t think the version of SeaBIOS you will have in that ROM supports SD card. The good news is that ChromiumOS SeaBIOS ToT has SD/eMMC support, so that will be an important upgrade once I get around to it, in the coming weeks.

  27. Hi John, I’m still struggling to use the ./flashrom command to flash the backup BIOS. It says command not found and I’m unsure how to get it working. Any help would be greatly appreciated :)

Leave a comment