You haven’t seen any Chromebook firmware stuff here, honest!

This is an ex-Chromebook firmware guy – I simply don’t have the time or the willpower to do stuff with Chromebook firmware, any more. I’ll leave the various pages here for posterity, in the event that it helps someone informationally, or that one of these firmware/legacy slots fixes a problem that the various firmware providers, don’t.

I want to thank everyone at coreboot (and by extension, Google), especially Ron Minnich and Stefan Reinauer, for their moral, technical, and financial support, over the last 6 years – it was definitely a mind-blowing experience going to the coreboot meetup in 2014, and I’m fairly sure I would probably not otherwise have my current job, either directly or indirectly, had I not decided to scratch my itch and get involved in the small way I was capable.

Please also note: this website, and my exploits therein, have absolutely no association with my employer.

Thank you & happy computing.

Join the conversation

54 Comments

  1. i need help please, i thought i knew what i was doing and i feel like a idiot. now my 7 yo son is so mad i screwed up his xmas gift…please help

      1. well i he had a hp chromebook 14 the blue 1 i thought i was doing everyting correct until it wouldnt boot up into windows or os i freaked out and got win loaded on it, and i got nervous cause nothing was working and in the windows start up i deleted all the partitions and all…i loaded the rom i thought was correct from here seabios ver rel-1.11.0-3gdf46d10-25/11/17-johnlewis.ie it says 3 choices 1. ahci.0 hard disk
        2. usb device i have installed but it wont read it
        3. payload jeltka,

        im so lost and embarrased

          1. i used rufus and had it saved but during my freaking out i formatted it like a idiot i thought it saved it on the hd of the chromebook or i was under the impression i could go on gg and just make a recovery img….and boot up with that…i was so wrong i have no idea i have read so many different things on what to do my head is spinning. i have Ubuntu loaded on the usb stick now i read it can be fixed that way to boot to that but it wont and i done it with rufus like it said to…im so lost

            1. Can you therefore confirm what the current problem is, and what you want your next immediate step to be?

              From your previous posts, it looks like you can’t boot from that Ubuntu USB – if that’s correct, either try another USB stick or use Etcher instead.

              I also therefore assume that you haven’t got the backup binary files, in which case, you will need to find a valid hardware ID from somewhere to flash onto the device, or you won’t be able to update once you’ve put ChromeOS back on there.

              If any of my assumptions are incorrect, please let me know.

              1. u are 100 percent correct on everything, if you could be so kind to guide me…at the point im at now i dont know were to go or the first step to take, and what to download….

                1. Well, I kinda already did guide you – make sure you’ve checked the Ubuntu image you’ve downloaded against its checksum, then write it again (assuming it’s correct), either using another USB stick, or using Etcher (that I linked to in a previous reply).

            2. The gbb_utility section in this document will be useful to you when you come to putting a valid HWID in there (will only be able to do this when back on ChromeOS):

              https://www.chromium.org/chromium-os/2014-firmware-summit/2014%20Chrome%20OS%20Firmware%20Summit-%20Overview.pdf

              In fact, the mentioned “Peppy” ID should be okay for you to use, since both the Acer C720 and HP Chromebook 14 (at least initial version) are pretty much the same hardware.

  2. ok i made another usb using the other program and it loaded on the chrombook so now im running ubuntu on it and have terminal up and running, what would be my next step….i thank you so much for the help

    1. You’re welcome.

      Run the script as directed on the ROM Download page and choose the option to flash a shellball ROM. You may have an issue with Flashrom getting access to the memory it needs, but we’ll cross that bridge if we come to it …

  3. ubuntu@ubuntu:~$ cd;bash <(curl https://johnlewis.ie/flash_cb_fw.sh)
    The program 'curl' is currently not installed. You can install it by typing:
    sudo apt install curl
    ubuntu@ubuntu:~$ sudo apt install curl
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    The following additional packages will be installed:
    libcurl3-gnutls
    The following NEW packages will be installed:
    curl
    The following packages will be upgraded:
    libcurl3-gnutls
    1 upgraded, 1 newly installed, 0 to remove and 327 not upgraded.
    Need to get 323 kB of archives.
    After this operation, 340 kB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    Get:1 http://security.ubuntu.com/ubuntu xenial-security/main amd64 libcurl3-gnutls amd64 7.47.0-1ubuntu2.5 [184 kB]
    Get:2 http://security.ubuntu.com/ubuntu xenial-security/main amd64 curl amd64 7.47.0-1ubuntu2.5 [138 kB]
    Fetched 323 kB in 0s (511 kB/s)
    (Reading database … 194399 files and directories currently installed.)
    Preparing to unpack …/libcurl3-gnutls_7.47.0-1ubuntu2.5_amd64.deb …
    Unpacking libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.5) over (7.47.0-1ubuntu2.2) …
    Selecting previously unselected package curl.
    Preparing to unpack …/curl_7.47.0-1ubuntu2.5_amd64.deb …
    Unpacking curl (7.47.0-1ubuntu2.5) …
    Processing triggers for libc-bin (2.23-0ubuntu9) …
    Processing triggerubuntu@ubuntu:~$ cd;bash <(curl https://johnlewis.ie/flash_cb_fw.sh)
    The program 'curl' is currently not installed. You can install it by typing:
    sudo apt install curl
    ubuntu@ubuntu:~$ sudo apt install curl
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    The following additional packages will be installed:
    libcurl3-gnutls
    The following NEW packages will be installed:
    curl
    The following packages will be upgraded:
    libcurl3-gnutls
    1 upgraded, 1 newly installed, 0 to remove and 327 not upgraded.
    Need to get 323 kB of archives.
    After this operation, 340 kB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    Get:1 http://security.ubuntu.com/ubuntu xenial-security/main amd64 libcurl3-gnutls amd64 7.47.0-1ubuntu2.5 [184 kB]
    Get:2 http://security.ubuntu.com/ubuntu xenial-security/main amd64 curl amd64 7.47.0-1ubuntu2.5 [138 kB]
    Fetched 323 kB in 0s (511 kB/s)
    (Reading database … 194399 files and directories currently installed.)
    Preparing to unpack …/libcurl3-gnutls_7.47.0-1ubuntu2.5_amd64.deb …
    Unpacking libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.5) over (7.47.0-1ubuntu2.2) …
    Selecting previously unselected package curl.
    Preparing to unpack …/curl_7.47.0-1ubuntu2.5_amd64.deb …
    Unpacking curl (7.47.0-1ubuntu2.5) …
    Processing triggers for libc-bin (2.23-0ubuntu9) …
    Processing triggers for man-db (2.7.5-1) …
    Setting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.5) …
    Setting up curl (7.47.0-1ubuntu2.5) …
    Processing triggers for libc-bin (2.23-0ubuntu9) …
    s for man-db (2.7.5-1) …
    Setting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.5) …
    Setting up curl (7.47.0-1ubuntu2.5) …
    Processing triggers for libc-bin (2.23-0ubunt

    it loaded i believe

  4. ok im at the chrome os is missing or damaged screen up in the left hand corner it says

    gbb.flags is nonzero
    read-only firmware id google_falco.4389.92.0
    active firmware id google_falco.4389.92.0

    it wont let me past there do i go to google now and create a recovery usb for the hp chromebook 14

    1. Yes.

      You may also need to change the GBB flags back to zero to get past the dev screen without hitting ctrl + D, but you can sort that out at the same time you set the HWID. Just get ChromeOS back on there first.

  5. ok its up and running now it boots up a little awkward but im happy it even booted up…im thankful….is there anything else i need to do…is there a rom that i could install specifically for this chromebook sense we used the acer to get it up and runing…i want to thank you for you time and patience…

    1. Yeah, well if we change the GBB flags from 0x489 to 0x0 (and you disable developer mode), boot will go back to stock.

      A ROM for what exactly? Even though the hardware of Haswell Chromebooks is virtually the same, it’s still different enough between models that you could end up with a brick.

      I don’t provide any support for Windows, as is noted in this article. There may be places you can find that, but I’m not going to advertise for them, as they did nothing except try to make me look bad and feed off the community I had built during their time their.

      As I think you may have discovered, even if a ROM will let you install Windows, you will be missing driver support in Windows. Again the same place(s) referred to above can at least provide some help, but it is not exactly easy to get everything working, and running the device that way will have foibles.

      If you haven’t already, you should apply that HWID so your device will update, assuming you’re not going to try going down the Windows track again …

      1. i understand and i am definity not going down the windows road ever again lol… you have been fantastic and thats a shame that there are haters out there…you have a great thing going on here and i have learned allot from you these past few hours thats straight facts and im greatful…. you have done so much and im thankful… could you be so kind and guide me to change the
        HWID so it will update correct for me….and i will not try it again. just buy a regular laptop lol.

        1. They’re not exactly haterz, more not so subtle detractors and shameless self-promoters.

          Good move. ;)

          So, in that PDF I posted there’s a gbb_utility example, which alludes to what you might be able to do e.g:

          flashrom -r bios.bin
          gbb_utility --get --hwid bios.bin
          gbb_utility --get --flags bios.bin
          gbb_utility --set --hwid="PEPPY E6A-B3G-A3I" bios.bin
          gbb_utility --set --flags=0x0 bios.bin
          flashrom -i GBB -w bios.bin

          I think the info might be a little out of date, so let me know if there’s an error (or better still post all output so I can check it) before you run the last command. I have a feeling it could fail at a couple of stages.

  6. im in chronos@localhost and i type in the commands but it says no suchfile or directory i dont know what im doing wrong gosh this is frustrating….

  7. crosh> shell
    chronos@localhost / $ sudo flashrom -r bios.bin
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    Calibrating delay loop… OK.
    coreboot table found at 0x7f77a000.
    Reading flash… bios.bin: Read-only file system

    this is what it says when i type in the first line

    1. You need to type “cd” before running the first command, otherwise you won’t be in a directory you can write to.

      Notice the “/” in the prompt, which indicates you’re in the root of the drive, which you definitely won’t be able to write to.

  8. 1/20/2018 root@localhost:/
    chrome-extension://nkoccljplnhpfnfiajclkommnmllphnl/html/crosh.html 1/1
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    Calibrating delay loop… OK.
    coreboot table found at 0x7f77a000.
    Reading flash… bios.bin: Read-only file system
    FAILED.FAILED
    chronos@localhost / $ # flashrom -r bios.bin
    chronos@localhost / $ shell
    bash: shell: command not found
    chronos@localhost / $ sudo shell
    sudo: shell: command not found
    chronos@localhost / $ sudo
    usage: sudo -h | -K | -k | -V
    usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
    usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [comma
    usage: sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=v
    usage: sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-u user] file ..
    chronos@localhost / $ sudo bash
    localhost / # flashrom -r bios.bin
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    Calibrating delay loop… OK.
    coreboot table found at 0x7f77a000.
    Reading flash… bios.bin: Read-only file system
    FAILED.FAILED
    localhost / # gbb_utility –get –hwid bios.bin
    ERROR: Unable to open bios.bin for reading: No such file or directory
    localhost / # gbb_utility –get –flags bios.bin
    ERROR: Unable to open bios.bin for reading: No such file or directory
    localhost / # flashrom -i GBB -w bios.bin
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    Calibrating delay loop… OK.
    coreboot table found at 0x7f77a000.
    bios.bin: No such file or directory
    FAILED
    localhost / #

  9. localhost ~ # sudo flashrom -r bios.bin
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    Calibrating delay loop… OK.
    coreboot table found at 0x7f77a000.
    Reading flash… bios.bin: Read-only file system
    FAILED.FAILED
    localhost ~ #

    i put the cd in and it took the / away and put – in its place am i imputing it correct it gives me the same fail

  10. localhost u-7c4f4e7fcc052c46e746f121366f9189e2fbe51d # flashrom -r bios.bin
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    flashrom v0.9.9 : 312b318 : Oct 12 2017 07:09:35 UTC on Linux 3.8.11 (x86_64)
    Calibrating delay loop… OK.
    coreboot table found at 0x7f77a000.
    Reading flash… SUCCESS
    localhost u-7c4f4e7fcc052c46e746f121366f9189e2fbe51d # gbb_utility –get –hwid bi
    hardware_id: X86 FALCO TEST 0289
    localhost u-7c4f4e7fcc052c46e746f121366f9189e2fbe51d # gbb_utility –get –flags b
    flags: 0x00000489
    localhost u-7c4f4e7fcc052c46e746f121366f9189e2fbe51d # gbb_utility –set –hwid=”P
    successfully saved new image to: bios.bin
    localhost u-7c4f4e7fcc052c46e746f121366f9189e2fbe51d # gbb_utility –set –flags=0
    successfully saved new image to: bios.bin
    localhost u-7c4f4e7fcc052c46e746f121366f9189e2fbe51d #

    ok we in buisness it went thru is this correct this is what you want before i do the last command woohoo

  11. i want to first say THANK YOU i am so thankful you took the time and guided me to getting my sons chromebook to work again, not only did you get it working but i learned allot today too it was a great class thats for sure. I will be sending a blessing your way for my gradtitude and i encourage anyone else if John takes his time and helps you in anyway were you would be lost with out his knowledge and patience, i urge you to donate. again thank you for everything your a great individual…Have a bless day..

    1. So, will be a week tomorrow since you said you were going to send me a donation, and nada so far. I find that the people who “say” they’re going to donate, often don’t. If you were going to do it, you would just do it, and not announce it to the world as though for the cheap thrill of kudos you have not earned …

  12. Hello. My chromebook is xe503c12 .. Samsung chromebook 2 (2014)
    developer mode > ctrl+alt+t > shell > your code > but it’s error..
    error is “is not currently supported at all using this script.”
    how to fix this? help me. i want UBUNTU… amraa.888@gmail.com

  13. First, I should preface my comment with a warning. I likely will not make a donation, at least right now. Funds are tight, and I haven’t much to spare. I have a C201P I would like to get a non-chromeOS Unix OS on. I’ve used Chroots, and don’t like them, I’m hoping for a clean install. I don’t expect you to put more work in just on my account, I’m more than willing to learn, and see if I can build on what you’ve already done to get it working for myself. (I’m a junior in a Software Engineering major, and would like to think that I could figure it out if you could point me in the right direction) Any help would be appreciated, and I’m grateful for what you’ve already contributed to the community.
    Regards,
    LJ

      1. Fair point, I failed to consider architecture with regard to the BIOS (don’t ask me how I missed that one). Linux support on ARM is patchy, but I’ve had success in the past (after getting a kernel running) compiling binaries myself where necessary. As I mentioned, I somehow overlooked BIOS architecture compatibility. I hope you’ll forgive my naivety, and thank you for redirecting me!

        1. Well, the other thing to consider is, that with ARM chips, just because a distro is compiled for “ARM”, doesn’t mean it will work with all ARM chips – it’s not like x86 where an x86 distro will work on any Intel or AMD CPU.

          You may also struggle to use any hardware acceleration of GPU’s even if you can find/get a distro which will work, because the kernel/distro won’t contain the necessary binary blobs.

          Anyway, seems like the free software community has already done the heavy-lifting for you – see https://wiki.debian.org/InstallingDebianOn/Asus/C201 and enjoy. :)

  14. Clearly I need to brush up on processor architectures, I was assuming that ARM was ARM and that’s all there was to it…

    Thanks again for your help! I am indeed grateful!

    1. Yeah – even between things like a BeagleBone Black, and an older RPi, one has hard floating point, the other doesn’t, even though they’re both ARMv7 (I think). Bit of a minefield, to be honest.

  15. Hello i need help please
    i have chromebook hp 14 g5
    model number SNAPPY E25-C2B-O2Z-M7Z-X3Q-A8Q
    i need to install win 10 on it and i can’t modify my firmware to uefi full just legacy so please help me how to install it

  16. Thank you very much for having done this work in the first place and also keeping it available. I just successfully reflashed an Acer C710 last night so that I could install Debian. It was still a perfectly useful computer except that ChromeOS was no longer supported for it and popular sites would fail to load as a result.

    I think it’s wonderful that you’ve offered the potential to save so many computers from the e-waste bin. Thanks again!

  17. I ran into this error after running curl command …. error : phase is not currently support at all using this script ?

    Any hints

  18. It’s a shame this is not being updated any forther. I had a message that “Snappy” was unsupported. At the moment, without a real OS, my (brand new) Chromebook is of more use as a fishing weight. I might have to send it back to the store :(

  19. Hi, since any years ago. I flashed my chromebook acer C720 like
    cd; rm -f flash_chromebook_rom.sh; curl -L -O https://johnlewis.ie/flash_chromebook_rom.sh; sudo -E bash flash_chromebook_rom.sh
    It works fine and I installed my favorite linux distri.

    Now my chromebook lost power and the eeprom is deleted. Is there a way to flash it again with your firmeware anyway, maybe usb. I have no succes to my distri now. It dont boot anymore.
    I dont wont to buy a new one, I like this chromebook.

    thanks

    1. The eeprom hasn’t been deleted, it’s just lost values like date and time. Normally, if battery power is completely drained on a chromebook, you will need to set the date and time manually (timedatectl in systemd based distro’s) before the chromebook will be able to connect to network again (don’t ask me why it fails to connect to wireless when date/time is wildly wrong, blame devs).

Leave a comment