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. Hello Jhon! The script doesn’t work on my acer c710, or it seems like I don’t use it well, could you give me so helps please?! everytime I run it, it gives me a message like: curl: (23) Failed writing body (0 != 5414)
    bash: getnflash_johnlewis_rom.sh: No such file or directory

  2. Hello Martin L! the board name (HWID)for C710-2487 is : “PARROT AMAGO C-E 2487” Without quotation marks.
    I hope it’s helpful. So, as you were already flash your c710 could you tell me the process of using the script or could you provide a rom if you had an old build for the c710? thanks in advance.

  3. Now I feel dumb. I fiddled with the thing for a day or two, trying to manually kexec into a USB drive. Eventually I noticed the USB showed up on reboot. This time, the USB was not formatted in EXT4, as it had been for my kexec attemps. Just rebooting from JELTKA, the USB then showed up in my bootable list. Boots up just fine.
    Maybe this will come in handy for anybody else as bumbling as I.
    Expect a donation for your improved ROM, soon.

  4. I will be willing to try the experimental ROM as long as it does not pose additional risk of bricking my Chromebook.

    1. The C720 and HP Chromebook 14 have pretty much identical internals, so I’m now testing the C720 ROMs on my HP Chromebook 14 before upload. That means there’s pretty much zero chance of a brick, unless I forget to do something. I’ll make a post when I finally get some new ROMs out.

  5. In France we only have the NX.SHEEF.002 model with 2 GB of RAM and 16 GB of storage. It seems to be the French version of NX.SHEAA.002 (or C720-2848). Do you know if the ROM works on it? Thanks!

  6. I wish I would have read your last comment before I ran the script on my Acer c710 parrot. Now all I get is a black screen.

  7. yes i have tried cold booting, along with hitting 2 with and without a usb drive with Ubuntu. the backlight comes on but that is all.

    1. So, you hit the power switch, wait 3 or 4 seconds, then hit ESC, then hit 2?

      The backlight coming on indicates that the ROM is probably okay, but the graphics is wrong. I take it you have a 1007u based C710?

      I tried this ROM on my son’s 847 based C710 earlier on today, and it worked fine.

    1. Okay. So, username is root and no password. Type “j” and press tab to bring up “jeltka.sh” and enter. Then follow the prompts and choose your poison (distro). Once you have a distro installed you can flash the ROM I just updated (using the script) to fix the graphics.

  8. Yes that is what i did. Took a couple tries. Yes I have the ivy-bridge model. Now I’m logged in and trying to set up from jeltka. But in not getting anything on the wireless.

    1. Yeah, I’m getting the same. You’ll have to boot from USB stick to install. It must be the frame-buffer driver. I’ll have to take it out again, which is a shame as it was a selling point to be able to initialise the display without valid ROM.

  9. I’m downloading an Ubuntu iso in case my install drive was bad. Then try booting from the thumb drive again.

    1. I take it you’ve taken all the usual precautions i.e. making sure the USB stick boots on another machine as is? I always recommend people dd a Fedora ISO to their USB stick as a default baseline. Perhaps you could try that?

  10. Could not get the USB to boot, so I tried installing arch again from the script. I waited about 30 minutes and it finally loaded the kernel. So I did a minimum install of arch, loaded my old firmware and flashrom on a thumb drive and reflashed. All is well now.

    1. BTW, it was the Intel frame-buffer driver causing Jeltka to not boot the kernel, because kexec doesn’t like Kernel Mode Setting (which is the bit that initialises the display even without video ROM). That’s the end of that so!

    2. If you choose “Setup Network” in the Arch installer menu, then exit once connected/switch VT’s, you can download flashrom plus a ROM from my site without having to install anything to the drive. That is now my preferred method of reflashing from Jeltka – upstream Flashrom won’t flash a Chromebook chip *unless* it’s previously been programmed with an external programmer, and I can’t easily compile ChromeOS flashrom for uClibc, so that’s the best option, IMO. That’s probably also the best way to run a rescue environment, as it contains testdisk, and much more complete driver/utility support.

  11. I’m confronted with the ‘Starting new kernel’ hang as well. Could you please explain to me how I can boot a USB-device? When I stick it in, then press escape and then the number for the USB it seems to load all kinds of stuff, but then it just shows the Jeltka login prompt as usual. (The one where you type in Root). Help would be appreciated, as of right now I’ve got no idea how I can load an OS onto my C720.

    1. Apparently, if you leave it for half an hour, it will finish loading the new kernel. The KMS part of the i915 driver doesn’t agree with kexec, I have since found out.

      To use USB, make sure that the drive boots on another machine first and dd a Fedora ISO to it if it still won’t work on the Chromebook itself. I’ve found that’s a failsafe combination that always boots.

      If the USB stick is in and bootable, you’ll see 3 entries in the list, the USB drive being the second.

  12. so i have a acer c720p and when the rom tries to download md5sums.txt there isnt enough space available in the location is trying to put it. OEM is where its trying to go. /media/removeable/OEM

  13. I’m glad to let you know that a new USB-disk resulted in a successful installation of Ubuntu. Suspend didn’t seem to work at first, but worked after I removed the two TPM lines from Grub, which I thought were still necessary to fix suspend. I thank you very much for your wonderful rom!

    1. Thank you!

      Those lines are necessary with stock, but aren’t necessary with my ROM’s because TPM support is disabled in them.

      There’s a newer ROM with the Intel framebuffer removed from Jeltka to fix the kernel-loading, if you want to try it.

  14. I have updated to that latest rom, although I am happy enough with a working installation of Ubuntu 14.10! Although, I did notice that I can’t change brightness anymore, which seems to be a known problem? Anyway, Xbacklight doesn’t work and can’t register nor change any brightness. I am confident that you will be able to fix this in the near future though!

  15. Acer C720 (2GB)

    Flashing the “coreboot-peppy-seabios-040914.rom” has fixed the issue of the laptop turning on when plugged into AC. However, when I open the lid, the laptop still does not turn on. It appears to briefly turn on and then immediately turns off.

    1. Yes, it does that to me, also. I don’t think I’ve ever been able to build a Falco ROM that *doesn’t* do that. Guess it might be something to do with the virtual dev switch code which relies on the ChromeOS code which is unselected in the build. It’s a minor annoyance. Awww. Shucks.

  16. Anyway, I have no problem with the touchpad driver, as the driver I linked is a port of the Chrome OS driver and is simply awesome :) But concerning the backlight? Is there a fix?

    1. The “fix” was to include the subsystem vendor ID’s in the ROM, which then allows the Linux kernel to apply a quirk enabling the backlight (the way the kernel handles backlights changed during 3.15). I have been including that fix since 010914.

      Please confirm you are running the correct version of the ROM by posting *all* of the SeaBIOS string.

      Other than that, I did notice that coreboot are doing something with “generic” backlight code at the moment. Perhaps that will address the issue in a kernel friendly way from the firmware side.

  17. It actually says ‘SeaBIOS (version 1.7.5-260814-09:51-johnlewis.ie), which is weird, because I uses ‘cd; rm -f getnflash_johnlewis_rom.sh; curl -k -L -O https://johnlewis.ie/getnflash_johnlewis_rom.sh; sudo bash getnflash_johnlewis_rom.sh’ as recently as yesterday. Please help me in getting the september 4th version :) Thanks for your quick responses up until now by the way.

  18. No need, it ran this time, and it has been updated to 0409! Brightness works perfectly now! I’m almost too ashamed to say that I didn’t understand that the chicken sounds meant that the sentence wasn’t copied right, I figured it was a funny way of displaying flash progress. I would like to thank you again for your ROM, and your kind and patient support. I will be sure to send a little money your way in a little while.

  19. disculpe, ya se encontró una solución para el teclado y el mouse en windows en una ACER C710 con chromebook ?

  20. Hallo John,
    my problem is, I can’t start my chromebook (acer c720) from usb, even in developer mode and with crossystem dev_boot_usb=1 dev_boot_legacy=1, and all done without write-protect. Any usb-sticks I produced with different linux-iso’s don’t start regularly.
    What else can I do?
    I only succeded with crouton and lubuntu/lxde installed on an external sd-card. But I still have to start ChromeOS first…
    Regards,
    Peter

  21. Acer C720, Seabios: “coreboot-peppy-seabios-040914.rom”

    The laptop still sometimes turns on when plugged into AC. I cannot reliably replicate the scenario though. Just today, the laptop had been off for around 7 hours. I took it out of my backpack, plugged it into AC, and then the laptop turned on! I then turned the laptop off, unplugged the laptop from AC, waited a few seconds, and then plugged it into AC. This time it did not turn on.

  22. Hi, I’ve a C720.
    What the FAQ didn’t explain or I just did not get:
    What are the benefits of having this custom rom instead of activating the pre-installed version of SeaBIOS from Google?
    Thanks!

    1. Gets rid of the dev screen.

      Faster boot.

      Removes TPM from DSDT meaning no TPM work-arounds in Linux.

      Won’t wipe out your GBB flags if the battery is flat (because there are no GBB flags).

      Anecdotally, makes your Chromebook run faster.

      Contains an embedded Linux (Jeltka) which will allow you to install 5 or 6 of the big distro’s without media.

      Same embedded Linux contains ext utils and USB/SD support for rudimentary recovery/filesystem resizing.

      Same embedded Linux allows use of Arch installer as full-featured recovery (containing things like Testdisk).

      Probably other things I’ve forgotten about.

      I might add an entry, although this is partially covered on the ROM download page.

  23. Hi John,

    Thanks for all your work, it helps me a lot. I manage to reinstall CrOs after Ubuntu. I followed your tutorial “shellball” to reinstall the stock bios.

    But one issue remains: my Acer C720 is now detected as “X86 TEST PEPPY 4211” as the model (when booting in dev mode). I think that make the whole system unable to update: it stucks on Chrome 36.

    Do you have any idea of where it comes from?

    Thanks

    1. Hi Zack,

      You need to change the hardware ID in the firmware using something like “gbb_utility –set –hwid=’Insert Valid HWID’ bios.bin newbios.bin” where bios.bin is a shellball ROM (you can extract it from within ChromeOS if you haven’t got the copy you extracted previously). Then write that to the device using Flashrom.

      You can find a valid ID for you device by running the Linux recovery script and not specifying a model, whereby it will print every valid HWID for every model on the screen. HTH.

  24. Acer C720, Seabios: “coreboot-peppy-seabios-040914.rom”

    Just as a detail to note, sometimes when I turn on my laptop, the time is wrong. Either the firmware is causing an RTC error, or my hardware RTC might just be bad for some reason.

    1. The only time I ever have problems with the hardware clock is after the battery has been disconnected – it gets a ludicrous date in the future, and I have to use timedatectl to reset it. Not sure how you’re supposed to do the same thing in an upstart based disto.

  25. Hello John,

    Thank you for your tutorial. I followed your instructions and everything went well.
    I deleted all my hard drive.
    But I have a problem. After installing Windows 7 ultimate 32 bit, the mouse and keyboard do not work.
    I need your help.

    ACER C710 intel celeron 847
    You use corboot-parrot-seabios-27…rom

    thank you

  26. I used this coreboot-parrot-seabios-windows-27102013.rom
    Who should market windows.
    What to do because the mouse and keyboard do not work

  27. Hi John,

    I employed your script to initiate the ROM download for my HP Chromebook 14 Falco. The text scrolling down the screen gave me encouragement that all was going along satisfactorily. But, it did not last. I will attempt to send photos of the screen shots I took so you will have the information I had. Your thoughts and suggestions are invited.

    Thank you for any input you can give.

    regards,

    Marc
    file:///home/z/Documents/Linux on Chromebook/John_Lewis_rom_1.JPG

    file:///home/z/Documents/Linux on Chromebook/john_lewis_rom_2.JPG

  28. Connecting to johnlewis.ie|37.187.3.40|:443… connected
    HTTP request sent, awaiting response ,,, 200 OK
    Length: 8388608 (8.0M) [text language=”/plain”][/text]
    Saving to : ‘coreboot’-falco-seabios-040914.rom

    43% [===================> ] 3,628,788 819KB/s

    Cannot write to ‘coreboot-falco-seabios-040914.rom’ (Success).

    – – 2014-03-17 12:51:46 – – https://johnlewis.ie/Chromebook-ROMs/md5sums.txt

    Resolving johnlewis.ie . . . 37.187.3.40
    Connecting to johnlewis.ie|37.187.3.40|:443 . . . connected.
    HTTP request sent, awaiting response . . . 200 OK
    Length: 6359 (6.2K) [text language=”/plain”][/text]
    Saving to: ‘md5sums.txt’
    Hi John,

    I tried setting up an account on that Imgur site but their cryptic recognition screen input didn’t want to abide. So I’ve typed in the text below that was on the screen shots I meant for you to see.

    0% [ ] – -, -K/s

    Cannot write to ‘md5sum.txt’ (Success).
    *** For some reason download of coreboot-falco-seabios-040914.rom failed. Please coreboot-falco-seabios-040914.rom from the current directory and try again later

    Chronos@localhost ~ $

  29. Hi I was reading the discussion on the ASUS C200 here – https://bbs.archlinux.org/viewtopic.php?id=185789 – after I found out that it didn’t want to boot any legacy OS. I’m interested the work here in this respect, only the links to this website have become 404’s and that discussion ended somewhere last month just at the time when the C200 was shipping. So I’m wondering if there is any special reason why that is so (something with this chromebook/firmware?). I’d like to do a little more with it the run Crouton (and also wouldn’t mind some testing if that can help). Greets!

    1. SeaBIOS and Grub2 don’t currently support the eMMC card inside the Baytrail Chromebooks. I’m thinking of getting Jeltka to scan the eMMC and kexec the kernel on the eMMC. However, I had a hard-drive failure early this week and I’m still recovering from that, so, although I’ve purchased a Lenove N20p to test on, I haven’t done anything with it since then. It should only be a matter of time though.

      The 404’s are there because I released test ROM’s which don’t work. I’ll let you know when I have something for the C200 worth testing.

    1. I already answered you yesterday –

      SeaBIOS and Grub2 don’t currently support the eMMC card inside the Baytrail Chromebooks. I’m thinking of getting Jeltka to scan the eMMC and kexec the kernel on the eMMC. However, I had a hard-drive failure early this week and I’m still recovering from that, so, although I’ve purchased a Lenove N20p to test on, I haven’t done anything with it since then. It should only be a matter of time though.

      The 404’s are there because I released test ROM’s which don’t work. I’ll let you know when I have something for the C200 worth testing.

  30. Hi, John!
    Thank you for your work!
    But I need your help. I’m kind of suck on attempt to start your script on HP Chromebook 14. I’ve disabled write-protect status.
    The error says “Warning: Failed to create the file getnflash_johnlewis_rom.sh: Read-only file system”.
    How can I manage that?
    Thanks!

  31. Thank you for quick answer! Yeah, it was my mistake. Thanks!

    So I’ve installed the latest seabios to my falco. A the moment I’ve also installed Ubuntu 14.04. I’ve found your script for my falco’s devices here https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/cros-haswell-modules.sh, run that. Currently my touchpad is working but there is an issue. I don’t know how to explain… It takes the whole finger (not just only the part of it like before) be on touchpad to move the cursor, so it is a little bit difficult to move it. So I guess touchpad has become way less sensitive than it was in ChromeOS. Is it a common behavior? And if it’s not how can I fix it?

    Thanks in advance for answering that!

  32. Hi John,

    Foremost, I have achieved success in installing your ROM into the BIOS on my HP Chromebook 14 (Falco).
    For the benefit of your viewers, it was not as smooth and seamless as your video with Alex suggests. My experience was fractured and disjointed. It seemed that every step was stumbled through. I will allow my internet service isn’t the best in the world and that did nothing positive for all this.
    I attempted all of the options for distributions (distro’s) as Ubuntu was my least favored of them, but as it turned out it’s the ONLY one that succeeded at completing the download!

    So as I pointed out at the beginning, most importantly I am now freed of the operational environment of a developer mode and the risk of having all my files trashed by the inadvertant startup with an erroneous keystrike. That makes all the work I went through and implementation of your scripts worth the man weeks of time this effort has cost me.
    Thanks again for your offering of these ROM scripts, without them, I wouldn’t advise anyone to consider a Chromebook for any off line use. I hope others will also make their monetary contributions to your cause, you’ve earned it!

    Keep up the good work if you can and if you are able to add Linux-Mint to the distro offerings, that would be great!

    Cheers,

    Marc

    1. Thanks for that, Marc. It helps to choose a URL closer to your physical location, when it asks you. Otherwise you can get stuck with a really slow download. Glad you got to a reasonable place, anyway. The Fedora/CentOS options don’t work because I omitted filesystem creation, which requires another update. I hope to get that out soon.

  33. Thank you for putting all this together! Installing the new BIOS on my C710-2847 was flawless. Although the on screen messages were different, it worked great. Now I’ve got Lubuntu 14.04 running smoothly.

    One note on the touchpad, after installing Lubuntu it didn’t work at all. I did some googling and tried several things. In the end, all I had to do to make it work was edit /etc/modules making it look like the following:

    loop
    lp
    rtc
    i2c-i801
    i2c-dev
    chromeos-laptop
    cyapa

    I noticed that the Fn key doesn’t register as a key press but installed xbindkeys-config and xbacklight and then used the magnifying glass key in conjunction with the function keys to add the capability for dimming/brightening the screen. Hopefully this helps someone.

    Thanks again!

    Mike

Leave a comment