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,
    Dear ,
    johnlewise

    Dear i have chrome book c710,
    i have to done all work perfect, but 2 issue very disturb 1, my keyboard & 2, mouse pad both are not work plz give me solution about this problem many many thank to you
    AND I want to more coreboot rom what is possible? or not
    because i cant download the other rom THE page error found

    1. There isn’t one. If you’d read the FAQ page you would know that there is no Windows driver for the Google i2c device (which handles mouse and keyboard). You’re stuck with external keyboard and mouse.

  2. So I flashed that ROM , but now I get no display. Its cool though i’ll boot an Ubuntu server like you said and try again. Thanks Again.

  3. Hi John, I used the script to flash the ROM, but I can’t get my Acer C720 to boot at all now. SeaBIOS starts and prompts me to press ESC for the boot menu (which I need to do with an attached external keyboard since it doesn’t seem to detect anything otherwise). I select 2 to boot from my USB drive, but then I get a message staying “Could not find kernel image: 2”.

    Any ideas or tips you could give me? The USB drive has the latest Fedora OS on it, and I’ve used it in my other PCs without a problem. Thanks for any help you could provide!

  4. Well that was dumb… Needed to use the F2 key, not 2. Looks like everything is working now, thanks for the work you’ve put into this!

  5. Hi John.

    I ran your script on Acer c720 (i3), then installed Mint 17.1. Updated kernel to 3.17.7, everything works great – with one frustrating exception. The system will often refuse to shutdown/reboot.

    I press the keyboard power button – no shutdown menu appears. Same result from power button on main menu. The system does not freeze and otherwise seems to continue working fine.

    If I shutdown from terminal – system will appear to logout but then hang on the mint splash screen indefinitely.

    Haven’t been able to find a solution on any forums. I’ve also wiped and reinstalled mint numerous times with the same result.

    Any idea whats going on here?

    thanks.

  6. I am getting the infamous “You MUST run this script whilst a valid USB stick is inserted” issue on an ASUS Chromebox.

    I have tried four different usb drives and none of them show up as mounted in /media/removable

    Is there something I am missing about how chromeos mounts usb drives? I read through the FAQ and the documentation twice and couldn’t find anything about this. Am I blind?

  7. Hi John,

    Thanks so much for this. I think you’re helping out a lot of people, which is great. I’m having a slight hiccup, however, and was wondering if you might have any advise.

    I’m running an Acer 720. I ran through your steps and succeeded in flashing the BIOS. Now when I turn it on I press Esc upon prompting, my usb is listed and I select it, but then it gets hung up. I’ve tried a few different Ubuntu 14.04 iso images using three different usb drives (2 PNYs and 1 Kingston). Every usb is giving me a different hiccup.
    On one it just returns ‘Booting from Hard Disk’ on the drive selection screen.
    Another tries to boot but returns a screen: ” ‘Invalid or corrupt kernel image’ boot:…,” and if I wait I’m brought to the screen with the usual options “Try without installing, Install Ubuntu, Check disc,…,” but a popup warns ‘/casper/vmlinuz.efi:file not found” “No Texts!” and selecting all of the options on the screen return that same popup.

    Do you think this is still a problem with my usb/iso? Little nervous that I bricked my unit.

    Thanks for your time/thoughts!

    1. Yes, it sounds like a problem with the way the USB key is written, or the key itself. As a baseline I always tell people to dd a Fedora ISO to the USB key and try booting that. If it doesn’t work then, it’s something USB key specific.

  8. Hi John,

    I’ve installed the ROM on my C720. I can boot the jeltka payload right from the boot menu or choose to boot from the SSD, which quickly runs through some start up lines. It’s too fast to read. When it stops, the top line is “Freeing unused kernel memory….” It starts logging, init’s the entropy gen, sees the USB ethernet adapter, starts the network, and finally displays a Welcome to Buildroot message. It shows some USB and hub lines, then stops completely at “Switched to clocksource tsc.” At this point it just sits there until I touch a key and it puts me at a Jeltka login.

    I ran jeltka.sh with these options e, u, 6, and the current mirror (archive.ubuntu.com).

    When the script runs, it throws two wget errors on ubuntu.com. archive.ubuntu.com/ubuntu-releases is a good address. After that, jeltka says “Cannot read /tmp/kernelNothing has been loaded.” Note that there is no space between kernel and Nothing (script typo ;-) ).

    I tried the RIT.edu mirror with the same results.

    I’m not at all certain what’s happening now. I was able to boot from USB to run the ubuntu installer from USB and successfully complete an installation. Lilo was placed on sdb1.

    On reboot, I end up in Jeltka no matter what.

  9. I also had problems getting my USB stick mounted, but were able to proceed and flash successfully with the following trick:

    I simply formatted my USB stick to ext2 after having trouble with a few other filesystems, created directory
    /media/removable/sdb1, and mounted the media there manually before running the script.

    The only problem left is that my ASUS Chromebox won’t boot without display (HDMI), any known workarounds for this?

  10. Hello,

    I’m interessted by your script.

    I’ve an chromebook acer cb3-111 and I read on arch wiki website that model dosn’t have a seabios. But I don’t see this model in your list. Is he supported by your script ?

    Thanks :)

  11. I need to run windows for work, which I will be using a keyboard and mouse. Do you have an updated coreboot for the acer c710 IVB that is windows compatible?

  12. I followed your instructions for the Acer C720 ROM and I’ve since changed my mind about going down the Linux route – would like to get it back to stock Chrome OS. Where do I start to get the stock ROM back on so I can restore my backup of Chrome OS?

    Thanks!

  13. At the risk of asking a very stupid question, when I tried to run the command in the crosh terminal, I get an error saying that cd isn’t a valid command. Any thoughts on what I’m doing wrong?

  14. I have the asus panther chrombox, I used the script and it showed no errors. However, when booting it just sits at “Booting the kernel.” I have been pressing escape like crazy to try booting from a USB device, but the ESC key never seems to register. Any suggestions?

    1. The EC has got itself in a knot. Perhaps the easiest thing to do would be plug an external DVDROM in, as it will favour that as a boot device above internal storage.

      Don’t hit the button like crazy, and power off for at least 30 seconds, if the keyboard’s not responding.

  15. C710 Reflashed with these instructions. ArchLinux will not boot from USB. Failed to load ldlinux.c32. Tried several different things. Still cant get it to install. Not sure how to use Jeltka since there I cant find any info on the web. Cant even mount the USB using Jeltka. Help? Thanks a lot for all your hard work!

  16. Hello there ,
    I tried to flash the rom on my chromebox ( Samsung Series 3 i5 from google IO) , and i got the following errors :
    http://jpst.it/vDxa
    I also tried to do flashrom –wp-disable , with no luck .
    same errors arises , is there any other way to achieve it ?
    thanks alot.

    1. You may well be waiting a long time then! It’s been up for months and no one has tried it. All I can say to you is, there’s a reasonable chance it will work, being Haswell based – all the Haswell devices are based on the same reference board, which is got working with coreboot first. Baytrail is a completely different kettle of fish, because a SeaBIOS ROM for a Baytrail Chromebook is quite far removed from the tried and tested ChromiumOS coreboot codebase the devices’ ROM’s were built from.

    2. Not sure what happened to my comment – you could be waiting a long time, it’s been up for months with no takers. It should work being another Haswell based device, but there are no guarantees. You’d be helping a great deal if you just bought the thing anyway, and tried the damned ROM out. Tis up to yourself …

  17. I might be convinced to try the chromebase. If it turns out it doesn’t work, how bricked will my machine be? I don’t mind using my arduino and/or raspberry pi and some wires to do low level flashing if necessary.

    1. Yes, you can use an RPi to debrick. You will need a Pomona 5250 SOIC clip and some female to female jumper wires, the former could cost as much as €30 including delivery, depending on where you live. There are cheaper Chinese alternatives, but I can’t vouch for any of them. Avoid the 3M clip.

  18. I have a Chromebase, but it seems there is no information on where the write protect screw is located. I’m willing to help out however I can.

  19. LG Chromebase- I took apart the Chromebase. Not Easy! You need to remove the stand, insert your screwdriver in the bottom near the LG logo, and use a plastic spudger to separate the back from the monitor. Carefully open it, then remove the entire motherboard from the case. My guess is that the screw near the Ethernet ports is the correct screw, although it does serve the purpose of adding additional support for pushing in and pulling out the USB ports. Under the screw is a piece of black tape that is very hard to remove. I’m not sure if it matters, but I removed it just in case. I put it back together, ran the script, and it finished without errors. The LG Chromebase works. Do not do this if you are uncomfortable with wires and internals. The way it’s cramped in there is very anti-consumer upgradeable. Oh, and the 1 RAM slot is easily accessible once you get that far. Have it ready if you want to upgrade.

  20. OK, I apologize in advance if I have missed something, but I feel I have taken days enough to read and comprehend this the best that I can…….that being said, I will add that I know just enough to be dangerous! lol

    I have a c710 PARROT. I have been running chrubuntu on this since day 1 when I received it 12/24/13. It has worked as well as expected, but THIS is the solution I have been looking for……..

    My ultimate question is this: am I correct in assuming that I am in developer mode when I press Ctl-D to boot into Chrubuntu? And if so, can I simply run your script from a terminal window (of course assuming I have already moved the jumper for write protection in the case) within Chrubuntu, flash my coreboot, then load a ‘real’ distrib from a USB thumbdrive?

    And to play devils advocate, lets say hypothetically, I wanted to run Windows Media Center (I plan on running mythtv, XBMC, and my HD Homerun Prime tuner), but if I DID want to run Windows Media Center with an external keyboard and mouse, could I again run your script from within Chrubuntu and have a USB drive with Win7 install setup?

    Thanks for all your work, and again I sincerely apologize if I am asking somethign that has already been answered….

    Thanks!

    1. Yes, you should be able to run it from within ChrUbuntu, but then why bother when the script runs perfectly well in ChromeOS?

      ChrUbuntu will effectively be gone once you run the script the first time, since you won’t be able to boot the ChromeOS kernel to get into ChromeOS/ChrUbuntu any more.

      It’s okay, they’re near enough to valid questions. ;)

  21. Hey, I think mine just bricked. Have not restarted yet, have no clue how long that will last when I *need* a working computer.

    I can’t copy & paste, so this is transcribed.

    flashrom v0.9.4 : a6f9c4a : (today’s date/compiler, ect)
    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.
    ———-

    *** Assuming you didn’t get any errors you may reboot. Otherwise, do not reboot under ANY circumstances, and seek help on the G+ community! ***

    I can give more details on each line, I have a photo because I’ll likely restart at some point to try again or at least settly the mystery of my having a brick now. I am so sick of this, I just wanted to work in Mint… now I am likely a victim of losing a computer!

    I won’t even know until I receive a response… That G+ community you mentioned? Well, I would certainly love to know which as G+ is a rather big place.

    1. No, you haven’t bricked it, you just haven’t disabled write-protection properly. Bricked your what anyway i.e. which model?

      Perhaps if you looked through the menu there, you might see the G+ community?

  22. Ha, figured out which community from this site and you’ve responded there. Thanks so much again. I got so stressed and whiny over nothing!

  23. Does anyone know which screw is required to be removed in order to disable write protection on the LG Chromebase?

    1. I’ll be able to tell you if you post a picture of the motherboard. I don’t know exactly where it is, or even what the Chromebase MB looks like, but they are all the same sort of thing, these days – a screw with a broken copper/metal surround.

  24. Hi there,

    I’ve been using this scripts since a long time ago to convert all of my “Panthers” fully to Ubuntu. After I got the first Ubuntu boot, I used to ran this script and viola! I would have an Ubuntu machine. That is not the case anymore…

    I have 4 Panthers completely stuck on “Booting from Hard Disk” after running the script. Any ideas on how to get my Ubuntu back? Maybe some sort or workaround using Jeltka…?

    Thanks,

    1. If you accidentally press ESC twice, it will boot off the first available device. I take it you are able to get to the SeaBIOS boot menu?

      Yeah, you can use Jeltka to load a distro, or boot off an external DVDROM (as SeaBIOS favours that first).

  25. Thanks for the quick reply. Indeed I can get to the boot menu, and after about 10 minutes, Jeltka boots up. I there anywhere you can point me to on how to work with Jeltka? Any idea what went wrong between running the getnflash script in Ubuntu and the fact that I can’t boot anymore? I’m guessing that maybe running the script as root has something to do with it…

    Thanks!

    1. Run jeltka.sh and follow the prompts. Nope, the script doesn’t go near boot sectors, are you sure that nothing else was changed apart from running the script, as part of an administration cycle? I guess if support for the SATA controller were missing in SeaBIOS, then you might get this sort of behaviour, but I doubt very much it’s that. If Jeltka is taking 10 mins to boot, then there’s something definitely wrong. What does dmesg output in Jeltka say?

  26. Dmesg in Jeltka sees the Sata controller. Here’s what I did from the start:
    – Ran the whole Developer Mode/chronos / http://goo.gl/s9yrd cycle for the first time
    – After reboot, ran the script again to install Ubuntu 14.10
    – When rebooted, entered Ctrl+D to boot into Ubuntu
    – When got Ubuntu up, logged in / opened terminal / got sudo privileges / ran the getnflash script
    – After reboot… no more life

    P.D.: jeltka.sh gave me a “Direct firmware load with error -2” after selecting Ethernet connection

    1. Sounds like Jeltka doesn’t have the driver needed for the ethernet card. Do you know what model it is in Panther?

      You will need to boot off something and chroot into the Ubuntu install, then rewrite the MBR with Grub2, and see if that helps.

      Well, obviously having the same MAC is going to cause collisions on your network, so we can’t have that. You’ll need to set an alternative address. To do that in a statically configured interface stanza would be like “hwaddress ether 01:02:03:04:05:06”.

  27. Well… it’s all screwed up. Jelkta will connect to Ubuntu servers, but when it says “Loading new Kernel”, it will reboot and get me again to the boot menu. Before running Jeltka I could boot from an USB; that’s not the case anymore. I am still wondering what could have gone wrong with this guy to get in such a bad shape.

    Is there a way that I can change some flags or something from Jeltka?

    1. You can mount the HD from Jeltka and edit text files from there using Vi, but I don’t think chroot is included. Well, again, Jeltka doesn’t do anything to USB boot sectors either. Try dd’ing a Fedora ISO to the USB stick instead – that always works. It looks worse than it is. You haven’t lost anything, yet. ;)

  28. Hi Guys, i have a hp chromebook 14 and i don’t want to hit ctrl+l anymore to boot ubuntu. Aside from this i want to be able to use the whole 16gb for my ubuntu installation. Is this possible with this bios? or is that also possible with write enabling the seabios ?

  29. Hi there,

    I’ve narrowed down the issues down to one Panther that still doesn’t boot. Using Jeltka (after a 10-15 minutes boot wait), I can only “summon” Fedora; all of the other choices just reboot the box and get me back to the boot menu. This will be fun.

    On the other hand, I have a question: is there a way I can enable booting from a USB (say, Clonezilla) after I have ran the script and have my Ubuntu running on the box?

    Thanks,

    1. If booting from USB didn’t work before, it’s not going to work now. As I probably said, I always get people to dd a Fedora ISO image, as a baseline, because that pretty much always works. Also, make sure you don’t accidentally press ESC twice, as that will cause it to default to the first available device. If you can’t get USB to boot, for whatever reason, I can only recommend an external DVDROM, as SeaBIOS will favour that by default.

  30. Do you have any support for the samsung xe303 exynos dual ARM chromebook? I have the TMP firmware read-only error and cant do any booting off SD/USB. Even developer mode refuses to read external boot devices.

  31. i used your script to update my chromebook using a bootable USB but now i want to be able to run an OS when i don’t have my usb stick on me.

  32. Hello there. after using this script i got my chromebook to boot roms(elementry OS) off of a live usb but im trying to figure out how to run an unbuntu or another OS on the internal memory because i cant log into chromeOS anymore. and i cant do anything with my chromebook without carry around the USB stick as well. thank you!

    1. You should be able to boot an Ubuntu USB stick and then install it from there. Try to avoid making it with Unetbootin, etc. as SeaBIOS doesn’t like those kind of images, much.

  33. Thank your for the reply john! can you link me to somewhere or tell me how to manually flash an OS to the iternal SSD on my c720, i have your seabios running and it works with booting live USB images but when i boot the main SSD is just stays on “booting kernel”

  34. Dear John, thank you very much for your work on these ROM!
    I downloaded and install it on my Acer C720P and it works well.
    I have two questions:
    1) The boot menu stays less than a second, so I cannot choose where to boot from, even if I press ‘esc’. What can I do?
    2) The install of fedora on this laptop has many issues, so I am thinking at reverting back to the original ROM. How is it possible to go back to the original seabios ROM by google? (I have a backup of it on a usb key)

  35. I have many issues with the installation of fedora 21 on the Acer C720P and I would like to revert back to chrome os.
    How can I revert back to the original ROM (I do have a backup of it on an USB key)?

    1. cd into the directory the USB is mounted on and run “./flashrom -w backup.rom” where backup.rom is the name of the backed up ROM, and you’ll be able to recover ChromeOS.

  36. John are you able to do this recovery method using the chrome OS recovery tool that google provides? It’s the only backup I did of chrome os.

    1. When you used the script to flash the custom ROM it would’ve made a backup of the existing ROM to whatever USB you inserted. If you’ve lost that do a search for “extracting” in the search box above, and follow the instructions in that article.

  37. THIS IS MY MAJOR PROBLEM FOR THE DOWLOAS SITE Sir’

    coreboot-parrot-grub2-good-23102013.rom
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    its keeps telling me
    Not Found
    It looks like nothing was found at this location. Maybe try a search?
    please please and please if the site is not working refer me where I can get it even its buying there is nothing on it please aboved is my e-mail sir

  38. Hi I need help please regarding Fedora install on hp chrome box as in I get to the install page and press the tab key to sort out space issue and I can’t seem to go any further. I am a novice with this done lots of iphone jailbreaks but never any bios commands before. Don’t know how I managed to get this far !
    Thanks in advance

  39. Hi John, I tried flashing back the original ROM as you explained.
    However, I have two problems. I don’t see any flashrom exec neither in Jeltka nor in the USB key where my backup is saved. Moreover, I cannot mount the USB key in Jeltka. I tried:
    “mkdir /media/usbkey
    mount -t fat16 /dev/sdb1 /media/usbkey”
    but then it complains the device does not exist (despite the fact that /dev/sdb1 *exist*)

  40. OK, I now understand you have to flash back the rom from your linux distribution, and not from jeltka. But then the question is: where can be found the flashrom utility? I don’t see it on the backup usb key. Does it have to be downloaded from somewhere?
    Thanks for your help.

    1. No worries. The reason that statically linked flashrom won’t work in Jeltka is because Jeltka is uClibc based, and that flashrom is Glibc based. Alternatively, if you hadn’t got a distro installed, or available on a USB stick, you could always use an Arch rescue environment from Jeltka – the Arch installer doubles as one, and it’s only a couple of hundred megs in size.

  41. Hi John,

    Is the ROM Archive updated as new ROMs are released with the changelog? Just curious. Thanks.

    – Ian

    1. No. It’s just a place-holder for the old download page. There is no change-log as such, except differences mentioned in release announcement. If you want fancy-schmancy change-logs, get a Thinkpad X60 and stick Libreboot on it. ;)

  42. I decided to flash my other chromebook this morning, both of my chromebooks are acer c710. I went about the same way as the first one, but on the first one I don’t recall getting any errors, this time I got one.

    I freaked out cause I thought I was going to have to get a bus pirate or at least a soic for my RPi to fix it, and that it’d probably be coming from china and take a month or more to get to me………. I tried the flash a few times re downloading the rom each time and kept getting the same error. I was dead tired and afraid to go to sleep cause at the bottom of that message it said that it had failed and not to shutdown or reboot

    I thought it would never boot again but it did and its installing fedora atm. Is there something I need to do once I get an OS on the machine, or something I should have done before since I got that error? I was so tired i had fell asleep shortly after getting the error, when I woke up a familiar bios message and a failed boot from hard drive were on the screen.

    It was a huge relief that I was able to boot from usb and I jumped right into my fedora install, hope Ivdidn’t get a head of myself

    1. It’s “normal” to get a verify error from Flashrom at 0x62, as that’s part of the firmware descriptor which isn’t over-writeable. Really, unless you have a specific reason to flash manually, you should just use the script to flash, as that takes care of ensuring everything’s consistent before flash (as well as suppressing that error which scares the crap out of everyone, and also causes a lot of unnecessary traffic to the Flashrom mailing list).

Leave a comment