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. Hi,

    I get a LG ChromeBase but failed to execute your script :

    w25q_disable_writeprotect() : error=1″
    FAILED

    Block protection could not be disabled!”

    I think I found the screew that enable harwre wrtie protection bu removing it doesn’t solve the problem.

    Where can I post some photographies of the main board ?

    Regards

  2. Hi

    I ran the script on a Thosiba chromebook (LEON), and the flashed to your costum ROM, however I can’t boot into SeaBoot with Ctrl + l . Legasy and USB boot was and is enabled with crossystem.
    I ended up recovering ChromeOS and still cant boot into Seabios. Should I try to flash the bios one more time ?

    1. Well, something went wrong because you are still running the stock BIOS – if you’re running one of my ROM’s the dev screen doesn’t appear at all any more. Try again, and post the output or I can’t help you.

  3. Hardware protection has been removed before the flash:

    flashrom v0.9.4 : 69c31b8 : Oct 31 2014 00:56:08 UTC on Linux 3.8.11 (x86_64), built with libpci 3.1.10, GCC 4.8.x-google 20140307 (prerelease), little endian
    Block protection could not be disabled!
    Reading current flash chip contents… spi_block_erase_52 failed during command execution at address 0x0
    Reading current flash chip contents… spi_block_erase_d8 failed during command execution at address 0x0
    Reading current flash chip contents… spi_chip_erase_60 failed during command execution
    Reading current flash chip contents… spi_chip_erase_c7 failed during command execution
    Uh oh. Erase/write failed. Checking if anything changed.

  4. Nice job on these ROMs, extremely helpful! Setup on a Lenovo X131e I just got today for this purpose. A little buggy on the keyboard at boot, but it does seem to be working with a little finesse. At the SeaBios prompt, I have to enter “ESC” and the number of the selection I want within about 250-500 msecs, after that the keyboard will stop working. I removed the mSATA and used that as a workaround to boot Tails via USB for the first few tests after the flash was done, but eventually I figured out that I could get the boot menu to work if I was lightning fast. It also works after a warm reboot. The GRUB menus, etc will not (usually) work either on a cold boot (nothing works until after a kernel init). I’ll be installing an SSD tomorrow and messing with some OS installs.

    1. Yes, unfortunately I don’t have one of those Chromebooks to debug issues like that. As long as it works “enough” i.e. you don’t have a brick, I’m reasonably happy.

  5. Hi, I’m looking for the ASUS-C200-RW_LEGACY.cbfs ROM… did you remove it? If so, why?

    Thanks,
    Moritz

    1. Good man, Christian! I’m not sure if some of the Chromebooks are shipping without the conductive sticker or whether it just tends to get stuck to the screw and come off by default more often that not, but most people aren’t having to remove it. I think it’s probably now the most likely explanation for anyone who still can’t write after removing the screw.

  6. Mate, help me.
    On your site, says it supports the Samsung series 5 550. I have the series 5, without the 550. Can i use the “550” bios?
    Orther question
    If took out the sdd and format in another computer, then put it back on the chromebook, will it work?

  7. Hi i flashed your rom, and now it wont boot into chrome os it says something like “booting the kernel.” how do i get back the backed up rom? (dont know if this matters but my write protection screw is still out) Chromebook model acer c720

  8. Sorry if this isn’t the best place to ask this.. I have a Toshiba CB30-A3120 “Leon.” So far suspend hasn’t worked very well, it seems like this ROM can help that. The only issue I’m having is figuring out how to open up my Leon for the write-protect screw. Ironically I replaced the LCD screen no problem with this thing, but I can’t seem to find any directions about opening up the bottom panel.

  9. i have asus chromebox m004. I used your script to flash the custom rom. Everything went fine and rebooted the box. Now i am unable to boot any distribution from a usb. I tried different flash drives, tried dd, tried unetbootin, tried universal boot. All gave me the same result it just says booting from hard drive and wont display the boot menu when pressing escape

    Please advise and thanks

  10. Hi John,
    I’d like to update the coreboot in my HP chromebook 14 in case there are any improvements in the last version. I’m on OpenSuse Linux now with already coreboot installed. How can I update please? THX

    1. Hi,

      The “improvements” (if there aren’t regressions/introduced bugs) will generally come from newer SeaBIOS versions. If you run the script it will automatically choose the latest version I have compiled.

  11. Thanks John I was able to install ubuntu. I used external dvd which was detected as the first boot device and so started install. Also it seems that some keyboard is not detected and so I changed the keyboard and now boot menu is displayed

    One other question my chromebox does not detect gigabit connection only fast ethernet and whenever i try to force it i loose the connection

    Thanks for your hard work and advice

  12. So I thought I’d give this a try on my Acer C720. I removed the write protection screw entered Dev mode. So far so good.

    Entered the command to run the script and it started but then fails with:

    Reading flash... backup-080415.rom: Read-only file system
    FAILED.FAILED
    *** Reading ROM failed, exiting... ***

    Does this mean write protection is still active?

  13. Using ASUS Chromebox CN60 with write protection screw removed.
    Went through flashing ROM process – no errors.

    Trying now to boot from USB stick with ubuntu server on it.

    It never gets to the legacy stick – It keeps coming up to
    Booting from Hard Disk
    early console in decompress_kernel
    KASLR using RDRAMD\\Decompressing Linux… Parsing ELF… Performing relocation… done.
    Booting the kernel.

    and there it sits. never to move again.

    Can’t boot with or without a stick
    did I make a brick?

  14. hey john, how do I flash back to stock chrome OS. just so you know, I DID back up my original rom

    1. Insert the USB stick you have the backed up ROM on (along with the version of flashrom from my site, which the script downloads). CD into if from the command line and type “sudo ./flashrom -w backup.rom” where “backup.rom” is the name of the backup. Then reboot.

  15. Used this method to flash my C720 a few months ago., and had been using Ubuntu 14.04.

    Experienced a kernel panic, and when I attempted to reboot, I can no longer access my kernel/partitions.

    I can launch into JELKA, and I can plug in a a usb and run Ubuntu just fine without installing.

    Although it would be great ot recover my data, I realize it may be lost. At this point, I’d simply be happy with installing a new copy of Ubuntu, but when I try to install, the system cannot find any partition to install on and gets hung up when I try to search.

    While I’m no Linux expert, I’m usually able able to figure things out with the help of Google. This time I feel as if I just don’t know what to search. So far, I have tried Gparted, but that couldn’t find the partition either.

    Any ideas/ advice would be much appreciated. Like I said, either recovering my data or deleting and reinstalling would be optimal at this point.

  16. Can you please give me a link to the flashrom download, I looked all over your website and I can’t find it, also there are 2 roms back up, one is called “backup-240315.rom”, the other is called “coreboot-peppy-seabios-181214.rom”. Wich one do i use?

  17. The script didn’t work for me on linux kernel version 4.00
    I get a critical error saying that /dev/mem doesn’t exist
    Can you fix that?

  18. Hello,

    thanks for your script. it work wonderfully to finally get Linux Mint running on acer c710..

    Any hints on how to get the touchpad working? I cant get the script to download the drivers. It fails at “can’t find file to patch at input line 5”.

    I’ve come as close as to this patch option https://github.com/hugegreenbug/xf86-input-cmt. However I have no idea where to find the drivers for Linux mint 3.17.0. I appreciate any help..

    1. You need to confirm the kernel module for the touchpad is loaded, before you go messing with drivers – lsmod |grep cyapa – if you get output, it’s loaded.

  19. i have flashed coreboot-parrot-seabios-020914.rom on acer c710 chromebook, it boots but i get read error when booting from hard disk, and unaligned pointer 0x1 when trying to boot from usb ..

    \i think i need some help ;))

    1. Why did you flash that particular ROM? Did you even know from something someone else wrote that it works? Search for “grub usb” using the search facility above, so you can boot from a live USB.

  20. Is there a way to keep chrome os or reinstall it to the computer after flash the rom.

  21. John, awesome work, one question, any chance your ROM supports the ACER Cheomebook 15 or will in the future?

  22. Step #3 of your script description is a bit confusing since you don’t mention a USB drive/stick anywhere prior in your article; I think that could be improved.

  23. e: **GUIDE** Install Windows 8 on the Acer C720 [ Edited ]

    Since we have so many models of the Acer C720, I’m releasing the keyboard part as a DSDT patch which you can apply to your own DSDT. (If you’ve hackintoshed before, you’ll know what a DSDT is so most of this should be similar).

    Note: These steps are designed for Windows 8.1. If you’re running a different version, the last steps may be a bit different.

    Tools Required:
    1. DSDT Editor – http://www.insanelymac.com/forum/topic/287011-how-to-extract-and-compile-dsdtaml-with-dsdt-editor/
    2. asl.exe from Windows 8.1 Driver Kit
    64 Bit Download: https://www.dropbox.com/s/ne1r6v8x06i5smi/asl.exe?dl=0
    32 Bit Download: https://www.dropbox.com/s/pq8elbqa35gs9bk/asl.exe?dl=0
    3. CrosKeyboard DSDT Patch: https://ghostbin.com/paste/ukc9c
    4. CrosKeyboard2 Driver: https://www.dropbox.com/s/j58b3pxjrhzf5qx/croskeyboard2.zip?dl=0

    Steps:
    1. Save asl.exe to your Desktop
    2. Open DSDT Editor
    3. Click File > Extract DSDT
    4. Click Patch > New
    5. Paste in the contents of the patch from the ghostbin link (make sure you copy all of it)
    6. Click Apply and then Close
    7. Click IASL > Compile
    8. A box should show up. Warnings, Remarks and Optimizations are ok. Just make sure there are no errors. If there are, repeat steps 3 through 7.
    9. Close the compile window and click IASL > Save AML As
    10. Navigate to the Desktop and save as “dsdt.aml”

    11. Right Click on the Start button and click “Command Prompt (Admin)”
    12. In Command Prompt type in (without quotes): “cd %userprofile%\Desktop” and press Enter
    13. In Command Prompt type in (without quotes): “bcdedit -set TESTSIGNING on” and press enter
    14. In Command Prompt type in (without quotes): “asl -loadtable dsdt.aml” and press enter
    15. Make sure it says “Table overloading succeeded.”
    16. Reboot

    After Rebooting:
    1. Open Device Manager
    2. Search for an “Unknown Device” with a Hardware ID of “ACPI\GGL0303”
    3. Right click on the device and click “Update Driver Software”
    4. Select “Browse my computer for driver software”
    5. Browse to the folder where you saved croskeyboard and install.
    6. Press the “Search” key on your keyboard and hopefully if everything went right, you should be on the Start screen Smiley Wink

  24. Thank you !! I was able to install ubuntu onto my X131E, is nice booting right into ubuntu.

  25. Cannot write to ‘md5sums.txt’ (Success).
    *** For some reason download of coreboot-peppy-seabios-181214.rom failed. Please remove coreboot-peppy-seabios-181214.rom from the current directory and try again later ***

  26. Correct me if I’m wrong but all you have to do if I understand correctly is run the crosh script listed and then you are ready to go?

  27. Yes I have read it a few times and I am just making sure I understand so I do not brick my device.

    1. Quote “You need to be in dev mode and disable write-protect by enabling a jumper/removing a screw (located somewhere on the main board). Disabling write-protect is not necessary on the two legacy slot only models.” Which part of that is unclear? It’s not *just* a case of running the script, is it.

  28. Hey John. I have an acer c720 running on your ROM. I saw on your FAQ page that you said it is possible to run Arnold the Bat’s Chromium OS buils on your ROM. I followed the instructions on Arnold the Bat’s website on how to put his build on a flash drive, but it will not boot on my chromebook. Please help

    1. Well, I guess something must’ve changed then. I haven’t tried it on the C720 anyway. You’re going to have to give me more detail than it won’t work/boot, like what exactly is happening.

  29. Hi John, thanks for all the work! I have used your legacy slot mode on my Acer chrome book 15 and it worked fine. However I am kinda curious about why this model can only use legacy mode? Is the problem on the hard disk or somewhere else? Thanks!

    1. It’s not that it can *only* use legacy mode, it’s that there’s no compelling reason to go through the risk of a completely new ROM. VMX is enabled by default, and the scary screen only appears for a second if you’ve set GBB flags to 0x489. There’s no risk of wiping your install out, so I can’t think of a good reason to make a full ROM.

      However, I have been working on something over the last week – a way of getting the best of both worlds – relatively low risk, but still gets rid of the horrid screen and to all intents and purposes de-Chromifies the device. I may get a new script out today.

    1. Hi,

      Not especially, no. Doesn’t the legacy slot already work on the Pixel 2? If you want an alternative legacy slot, the C910/C740 slot I made should also work on the Pixel 2. What would be the great reason behind the fiddling?

  30. Hi again,

    My Pixel 2 can’t no longer access the SSD. It shows up at Seabios menu, but can’t boot from it. I’ve tried diagnosing from an USB Arch Linux, but it doesn’t even show up in the dev folder. All I can figure out is an error message in dmesg that says it’s frozen.

    Others, who had the same problem on different machines, have reported that updating the bios helps. So going in their direction I’ve ended up here.

    Your flashrom works in Pixel 2, but all I need now is a working up-to-date working coreboot with Seabios.

    1. I think updating the entire ROM is a bit drastic, and very likely unnecessary. I’ve updated the script to look for Pixel 2 (Samus) and flash it’s legacy slot, so you get different/updated SeaBIOS. I’m dubious over whether that will fix your problem, though. It sounds to me like the SSD itself is probably the problem. FWIW, the 32GB SSD in my Chromebook 15 died after only 2 weeks.

  31. You’re right it didn’t help :/

    Looks like I need to run on USB from now on.

    But thanks for the help, really appreciated!

  32. It will unfortunately not work. They’ve hardwired the SSD in the Pixel 2 and there isn’t an open slot like the one in the first…

  33. Hi John,
    Great work on this.

    I just flashed it to my Toshiba CB30 Chromebook. I have a USB drive with Arch Linux on that I want to boot off. But now when I reboot, it says ‘Press F12 for boot menu’ (there is no F12 key) then about two seconds later:

    Booting from Hard Disk...
    early console in decompress_kernel
    KASLR using RDRAND

    Decompressing Linux... Parsing ELF... Performing relocations...done
    Booting the kernel.

    Which seems about right, I assume it’s booting Jeltka or something. But this is followed immediately by a blank screen without so much as a blinking cursor. I then have to power off.

    This wouldn’t be as much of a problem if I could boot off USB, though!

    1. Actually, don’t answer that, I deduced you ran option 1. I somehow missed adding the correct boot-menu files to that cbfs, so you’ll need to use an external keyboard to do the F12. Once you have something booted, if you run the script again, and choose option 1 again, the cbfs will be updated to use ESC as the menu key. HTH.

  34. Yes, it was option 1. I don’t know why it didn’t even occur to me to plug a USB keyboard in. It’s booted now =)

    Thanks for the help.

  35. Flashed option 4 this time. Now I have Jeltka. This is great. Thanks!

    I’m a bit skint at the moment but I’ll try and donate something next month when I have the cash. =)

  36. btw when I flashed option 1 before, obviously it wasn’t booting Jeltka, it was trying (and failing) to boot Chrome OS.

  37. Let me start by saying thank you for giving us a way to make use of a chromebook! I followed your instructions on a c7 parrot and had no issues(except for a write protected thumb drive). So now im attempting this again on another c7(Parrot Coffinfish??) but when I check the status with flashrom Im getting
    wp: status: 0x98
    wp: status.srp0=1
    wp: status.srp1=0

    never had a srp1 before???
    c710 2856

  38. hi John, first much thanks for your great work. I could no longer stand chrimeos so my Acer has been running your bios for 4 months now.

    but it intermittently won’t find the hard drive, looks like a connector problem to me. but, is there a way of booting into seabios ? tried all the f keys and ctrl-l. nothing

    thanks

    1. Hi,

      I’m not sure what you mean by “booting into SeaBIOS”. If you mean a setup screen, there isn’t one. If drive detection is intermittent, it’s most likely a drive issue.

  39. I flashed my rom to my dell chromebook 11 to coreboot ubuntu 14.04. I got the error “not enough memory to boot image”, and after pressing tab I was able to change the memory value to mem=2024m and this worked to installl ubuntu. However, my hardware has 4GB of memory and ubuntu is only showing 2GB. When I tried the change the memory value to mem=4036m the system crashes and I cannot install ubuntu. Is there a way to get my ubuntu bios to see all my memory?

    Thanks

    1. Apparently, memory recognition problems like that are generally an issue with Syslinux. So, once you have Ubuntu installed, and are using Grub2 to boot, the issue should disappear. Have you tried that?

  40. I have an Acer C720 -2844 which comes with 4GB of RAM. Does your firmware work on the 4GB model? How is your custom firmware differ from the stock SeaBIOS?

    Thanks for all your work!

  41. Another question. How do I actually install your custom firmware? Does it just require running the command in a Chrome OS terminal window?

Leave a comment