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 John,

    Following up on my previous post…

    I reflashed my C710, Option 5, for a complete replacement of the bios. HDD is now found and boots my Ubuntu. So, one may conclude a key difference between BOOT_STUB and the older method, is that BOOT_STUB method fails to detect this C710 HDD.

    By the way, thought I’d need to install flashrom, but I see that you download the ChromeOS flavor of flashtom in your script. Nice.

    Doug

    Doug

    1. It’s actually down to the version of SeaBIOS that’s packaged, as I alluded to in my previous reply. My BOOT_STUB’s are getting a bad press. ;)

      Yeah, it’s needed for some operations (like disabling the software write-protect regions) that upstream Flashrom doesn’t do.

  2. Hi, for the “RW_LEGACY” models this flashes a “generic” seabios image?, would be possible to flash another payload? e.g. GRUB2
    Thanks

    1. Somebody on the community was working on trying to fit a Grub2 payload into the RW_LEGACY slot. Take a look on there and see if you can find it.

      The slot is semi-generic – it will work on Haswell/Broadwell Chromebooks but *not* Sandybridge/Ivybridge/Baytrail.

  3. hello john, I have a problem in my boot chromebook acer c7.
    I did all the procedures that you teach, installed the SeaBios.
    but do not start anything of error.
    already I switched to HD, but the problem continues.
    appears GNU GRUNB VERSION 2:00 ..

    … unaligned pointer 0x1
    aborted …

    when I finally managed to boot, windows soon appears, but then it gets all dark screen …. but not out of it …

    help me please

  4. can you help me uninstall the seabios and return back to the chrome bios on a c710. I installed seabios and kodi, but want to return it to chrome. I tried to understand your shellball but it is over my head somewhat.

  5. Yes I have developer screen off and I want it back on so I can run chrome os again I don’t like ubuntu and I want the stock os back

  6. Hello John, I would like to know how to return the boot of the Chrome instead of SeaBeios?

  7. Hi, John.

    I’m glad to see that you had a breakthrough with the baytrail chipset. I really have been looking forward to that :-)

    I own a Toshiba Chromebook 2 (Swanky) which I would like to “set free” and install Arch Linux on, and I should be ready to go as I already have put it into developer mode and removed the hardware write protection of the bios. Which I have verified by:

    localhost / # flashrom –wp-disable
    flashrom v0.9.4 : e6a7ca8 : May 12 2015 18:14:00 UTC on Linux 3.10.18 (x86_64), built with libpci 3.1.10, GCC 4.9.x-google 20150123 (prerelease), little endian
    Mapping BYT IBASE at 0xfed08000, unaligned size 0x200.
    Mapping BYT SBASE at 0xfed01000, unaligned size 0x200.
    SUCCESS
    localhost / # flashrom –wp-status
    flashrom v0.9.4 : e6a7ca8 : May 12 2015 18:14:00 UTC on Linux 3.10.18 (x86_64), built with libpci 3.1.10, GCC 4.9.x-google 20150123 (prerelease), little endian
    Mapping BYT IBASE at 0xfed08000, unaligned size 0x200.
    Mapping BYT SBASE at 0xfed01000, unaligned size 0x200.
    WP: status: 0x0060
    WP: status.srp0: 0
    WP: status.srp1: 0
    WP: write protect is disabled.
    WP: write protect range: start=0x00000000, len=0x00000000

    However, I’ll just make sure that I’ve got everything right and ask you if it is correct that all I need to do now is to execute the above mentioned shell commands / script in order to get rid of Chrome OS? Is the script “self guiding” or are there any preparations that I should make first (besides inserting a USB drive for installation of the new OS)?

    … and of course, if this turns out to be a bad idea – can I undo it all? Will I be able to just “flash back” my original ROM (I’ve already dumped the current ROM with “sudo flashrom -r bios.bin”) and everything will be back as it is now? Well, except from any data stored on the chromebook – I suppose that will get wiped :-)

    I would also like to ask you if you have any experience if this operation will have any negative effect on the battery runtime and in that case, how much? This is a bit like comparing apples and oranges, I know, however if we assume that I create a small/light installation which does not run any other applications but a webbrowser, just like chrome OS, will I the runtime be about the same?

    Cheers,

    Thomas

  8. Hey John,
    So I installed Ubuntu 15.04 on C720.So when I tried to run your command it says the software write protect could not be disabled and that this usually means hardware write protect was still enabled.But I removed it to install ubuntu.So any suggestions as how to proceed would be great.Thanks

  9. Hello john,
    first i just want to thank you for your amazing work here,
    second i have a c710, and i used your rom/bios on it about 1 year ago, my seabios version says its 1.7.5, and everything has been good, i have ubuntu running without issues (that i know), i only use it as a backup/travel laptop. What i want to ask if is the recent updates will benefit me, maybe there is improvements or fixes. what you think?

    Thank you for your time

  10. hi john, this project look’s great! i have a question before installing your firmware on my HP 14 (Falco), does it have a negative impact on battery life?

    thanks in advance <3
    (sorry for my english, it's not my native language)

    1. No, the negative effect on battery life will come from the alternative OS. Having said that, as long as you keep the brightness down suitably, and make sure nothing is eating CPU, it shouldn’t do that much worse.

  11. Hi !
    I think I just bricked my asus c300.
    I flashed with your bios then tried to restore with the usb key google utility but the laptop crashed and now the screen just splashes when I turn it on.
    Do you have any idea how to “unbrick” it ?
    Thank you so much in advance.

  12. Sure !
    So I enabled the developper mode, then removed the protection screw, then opened a shell and used your script ” cd; rm -f flash_chromebook_rom.sh; curl -k -L -O https://johnlewis.ie/flash_chromebook_rom.sh; sudo -E bash flash_chromebook_rom.sh ”
    then I chose choice number 2.
    I made via windows an xubuntu usb key, booted on it, installed it, but when the chromebook restarted I got this kind of screen : https://upload.wikimedia.org/wikipedia/commons/b/b5/Qemu%2BSeaBIOS.png?1439202907429
    So I searched on the internet how to put grub on the usb stick in order to get a functionnal laptop but without success.
    So I decided to restore the chromebook to use only crouton, so I went on : http://www.codeapex.com/restore-an-acer-c720-chromebook-to-stock-after-installing-linux-on-it/
    I made the google utility restoration key, booted on it, a message poped then disappeared right away and since then I’m stuck with the video you saw.

    Thank you so much for your help ! :)

    1. +10 points for flashing successfully.

      -20 points for not reading the Baytrail Release page (linked on the Download page) and realising you can’t boot off the eMMC as things currently stand.

      +10 for searching.

      How did you manage to boot the ChromeOS Recovery USB when you wouldn’t have been able to get the “ChromeOS is missing or damaged” screen up because of the modded firmware?

  13. Thank’s for your answer.
    When I say “i booted on ChromeOS Recovery USB” I just plugged the USB key, turned on the chromebook, press enter on Seabios and the message poped and here I am now.

  14. A quick message I couldn’t read sorry.
    I have a RPi do you have a tutorial to repair my chromebook ?
    Thank you so much for your help !

    1. Well, I’d really like to know how you managed to bugger your C300 up, so, if you do manage to debrick can you try the same thing again and see what the message said?

      You’ll need some female to female jumper wires and a Pomona 5250 SOIC clip. Huan Truong has a tutorial on the community. Search for it. I should also point out that it might just be an extremely coincidental hardware failure.

  15. Thank you for answering me. I don’t think I have the required skills to do The tutorial, and the pomona costs over 40euros here in France.
    I think I will try to use Amazon Warranty.

    About the message, I really can’t remember it was really quick, but I think the progral may have tried to replace the bios and failed I don’t know :( I should have plugged my GoPro !

  16. Yes I might have seen like a decompression line, I’m really really not sure.
    For the future, because I will get another asus c300, how should I proceed in order to install xubuntu ? Should I wait for an update of your work?
    How was I supposed to restore the bios back then ?

    1. Until there’s an update, you will need to install the boot-loader plus maybe /boot on a USB key. The root filesystem can then exist on the eMMC. If you get one of those really low profile USB sticks, it will only stick out about 3 mm.

      Use the script and press option 3 to restore the BOOT_STUB. ChromeOS recovery would then work as normal.

  17. So I flashed the rom, but it won’t allow me to press the esc key to get boot menu? have you seen this issue?

    Thanks

  18. Thank you so much for your help !
    Do you have a good tutorial please about how to put the bootloader and the /boot on the usb drive ?
    I tried it last time and I ended up with a grub rescue because the hardware ID of the eMMC was apparently not correct.

    1. Nope. You can try asking on the community if you like. However, it might be better to wait a few days, as I think we’ll probably have the eMMC working with upstream SeaBIOS in that time and using USB for Grub2 won’t be needed.

  19. After entering cd;bash <(curl https://johnlewis.ie/flash_cb_fw.sh)
    the process runs and in the end I get:
    Block protection could not be disabled!
    erasing and writing flash chip…SUCCESS

    The laptop reboots (coldboot) to the "OS verification is OFF" screen. I let it give it's two beep and it loads a sign-in.

    At this point, how do I install Ubuntu 14.04 from usb to completely replace the Chrome OS? I am not sure I replaced the Chrome OS with seaBIOS.

    Your assistant is humbly appreciated.

    Thank you and Happy New Year
    Tom G

    1. What do you mean by “loads a sign-in”?

      You just need to make a bootable USB stick as you would for a “normal” laptop. Preferably using dd or Rufus depending on the writing operating system, and preferably not using uNetbootin or similar.

      Depending on the model of Chromebook, it might not be wise to load an old version of Ubuntu like 14.04. Additionally, some models will experience the best hardware support if you instead load GalliumOS.

      Same to you,

      John.

      1. Hi jhon,
        I have already executed the script that you left several times

        cd; bash <(curl https://johnlewis.ie/flash_cb_fw.sh)

        but when executing it I get the following:

        flashrom v0.9.9: 831c609: Nov 30 2017 02:04:47 UTC on Linux 3.18.0-16503-ge33b03ba1f58-dirty (x86_64)
        flashrom v0.9.9: 831c609: Nov 30 2017 02:04:47 UTC on Linux 3.18.0-16503-ge33b03ba1f58-dirty (x86_64)
        Calibrating delay loop … OK.
        Error accessing low megabyte, 0x100000 bytes at 0x0
        / dev / mem mmap failed: Resource temporarily unavailable
        Failed getting access to coreboot low tables.
        Mapping BYT IBASE at 0xfed08000, unaligned size 0x200.
        Mapping BYT SBASE at 0xfed01000, unaligned size 0x200.
        Erasing and writing flash chip … SUCCESS.

        and when restarting the computer and pressing crtl + D on the recovery screen, I get the image of chrome, as if nothing had happened.

        How can i fix this? or is there something that is wrong?

        1. Okay – 3 things I notice.

          1. You haven’t told me what model you’re using.

          2. You seem to be running a custom kernel (one of the kernel opts could be stopping you getting access to the necessary memory).

          3. Have you tried hitting “ctrl + L”?

    1. BOOT_STUB isn’t supported any more, so if you use it, do so even more at your own risk and I won’t fix any problems with it.

      It goes by the codename of the board – if the codename is in the script (the one you see at the dev boot screen), then it’s supported. If not, let me know and I will add it.

    2. hi again jhon
      the model of my chromebook is the Samsung chromebook 3 ‘(celes)

      I researched online and I saw that you have to execute the following script:

      crossystem dev_boot_usb = 1 dev_boot_legacy = 1

      Once you run it and restart the chromebook, press Crtl + L and if it appeared the seabios.

      Anyway, thanks !

  20. I used your script to install your full ROM on my daughter’s C710-2847 a couple of days ago. I read on these pages that your son has a C710 so I figure you might be able to help me. Your script worked perfectly. (Frankly, running your script was much simpler and faster than your WP mining captcha that I had to endure to get in here even.)

    I’m working on a wiki for the MX-Linux forum and community. MX Linux is Debian-based but it uses Sys V init. I’d like to get suspend working with MX-17 GNU/Linux on my daughter’s C710. Suspend is the only thing that is seriously not working. Everything else has worked turn-key. I’ve done a lot of online research and TPM and ehci_pic seems to the at the root of most problems. I’ve tried a number of fixes from your pages here and elsewhere too. Even though your comments indicate it should be fixed, I get one suspend then and the next one causes a black screen hang, requiring a power cycle reset. I see an error 38 in dmesg ([ 206.014679] tpm tpm0: Error (38) sending savestate before suspend).

    https://lkml.org/lkml/2014/8/25/29 says (under the first paragraph #3, WRT to your ROM):

    It will not be reboot on resume (unlike stock SeaBIOS), presumably since the firmware is not interacting with the TPM. But because an error 38 is returned during the selftest issued on resume, its functioning will degrade over suspend/resume cycles until the machine refuses to enter suspend,

    The 38 error snippet from my dmesg follows. Any ideas?

    Thanks,

    -Cal

    [ 115.074460] PM: Preparing system for sleep (mem)
    [ 115.074691] Freezing user space processes … (elapsed 0.001 seconds) done.
    [ 115.076682] OOM killer disabled.
    [ 115.076684] Freezing remaining freezable tasks … (elapsed 0.001 seconds) done.
    [ 115.077953] PM: Suspending system (mem)
    [ 115.077989] Suspending console(s) (use no_console_suspend to debug)
    [ 115.078390] wlan0: deauthenticating from 68:c4:4d:40:31:d8 by local choice (Reason: 3=DEAUTH_LEAVING)
    [ 115.164457] sd 0:0:0:0: [sda] Synchronizing SCSI cache
    [ 115.164822] sd 0:0:0:0: [sda] Stopping disk
    [ 116.008298] PM: suspend of devices complete after 930.559 msecs
    [ 116.020515] PM: late suspend of devices complete after 12.193 msecs
    [ 116.033598] PM: noirq suspend of devices complete after 13.077 msecs
    [ 116.034041] ACPI: Preparing to enter system sleep state S3
    [ 116.034157] ACPI: EC: event blocked
    [ 116.034158] ACPI: EC: EC stopped
    [ 116.034160] PM: Saving platform NVS memory
    [ 116.034161] Disabling non-boot CPUs …
    [ 116.040993] smpboot: CPU 1 is now offline
    [ 116.042945] ACPI: Low-level resume complete
    [ 116.043013] ACPI: EC: EC started
    [ 116.043014] PM: Restoring platform NVS memory
    [ 116.043320] Suspended for 9.976 seconds
    [ 116.044613] Enabling non-boot CPUs …
    [ 116.044737] x86: Booting SMP configuration:
    [ 116.044739] smpboot: Booting Node 0 Processor 1 APIC 0x2
    [ 116.048171] cache: parent cpu1 should not be sleeping
    [ 116.048788] CPU1 is up
    [ 116.050852] ACPI: Waking up from system sleep state S3
    [ 116.066328] mei_me 0000:00:16.0: Refused to change power state, currently in D3
    [ 116.126708] PM: noirq resume of devices complete after 72.421 msecs
    [ 116.129013] PM: early resume of devices complete after 2.257 msecs
    [ 116.129243] ACPI: button: The lid device is not compliant to SW_LID.
    [ 116.129265] ACPI: EC: event unblocked
    [ 116.140038] genirq: Flags mismatch irq 0. 00000080 (mei_me) vs. 00015a00 (timer)
    [ 116.140068] mei_me 0000:00:16.0: request_threaded_irq failed: irq = 0.
    [ 116.140076] dpm_run_callback(): pci_pm_resume+0x0/0x90 returns -16
    [ 116.140079] PM: Device 0000:00:16.0 failed to resume async: error -16
    [ 116.144153] sd 0:0:0:0: [sda] Starting disk
    [ 116.153205] tpm tpm0: A TPM error (38) occurred continue selftest
    [ 116.493192] usb 2-1.2: reset full-speed USB device number 3 using ehci-pci
    [ 116.493228] usb 1-1.1: reset full-speed USB device number 3 using ehci-pci
    [ 116.571379] usb 1-1.1: device firmware changed
    [ 116.636161] usb 1-1.3: reset high-speed USB device number 4 using ehci-pci
    [ 116.888496] PM: resume of devices complete after 759.486 msecs
    [ 116.888793] PM: Finishing wakeup.
    [ 116.888795] OOM killer enabled.
    [ 116.888796] Restarting tasks …
    [ 116.891106] usb 1-1.1: USB disconnect, device number 3
    [ 116.894915] done.
    [ 116.958183] usb 1-1.1: new full-speed USB device number 5 using ehci-pci
    [ 117.038206] usb 1-1.1: string descriptor 0 read error: -22
    [ 117.038223] usb 1-1.1: New USB device found, idVendor=0489, idProduct=e04e
    [ 117.038227] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 118.696329] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
    [ 118.700949] ata1.00: configured for UDMA/133
    [ 118.757535] usb 1-1.1: firmware: direct-loading firmware ar3k/AthrBT_0x11020000.dfu
    [ 118.806178] usb 1-1.1: firmware: direct-loading firmware ar3k/ramps_0x11020000_40.dfu
    [ 118.957072] usb 1-1.1: USB disconnect, device number 5
    [ 119.032967] systemd-logind[2445]: Operation ‘sleep’ finished.
    [ 119.130177] usb 1-1.1: new full-speed USB device number 6 using ehci-pci
    [ 119.210693] usb 1-1.1: string descriptor 0 read error: -22
    [ 119.210712] usb 1-1.1: New USB device found, idVendor=0489, idProduct=e04e
    [ 119.210716] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 120.804419] wlan0: authenticate with 68:c4:4d:40:31:d8
    [ 120.818692] wlan0: send auth to 68:c4:4d:40:31:d8 (try 1/3)
    [ 120.822593] wlan0: authenticated
    [ 120.823228] wlan0: associate with 68:c4:4d:40:31:d8 (try 1/3)
    [ 120.838867] wlan0: RX AssocResp from 68:c4:4d:40:31:d8 (capab=0x431 status=0 aid=1)
    [ 120.839049] wlan0: associated
    [ 205.771137] PM: Syncing filesystems … done.
    [ 205.889512] PM: Preparing system for sleep (mem)
    [ 205.889732] Freezing user space processes … (elapsed 0.002 seconds) done.
    [ 205.891879] OOM killer disabled.
    [ 205.891880] Freezing remaining freezable tasks … (elapsed 0.001 seconds) done.
    [ 205.893171] PM: Suspending system (mem)
    [ 205.893206] Suspending console(s) (use no_console_suspend to debug)
    [ 205.893661] wlan0: deauthenticating from 68:c4:4d:40:31:d8 by local choice (Reason: 3=DEAUTH_LEAVING)
    [ 205.984009] sd 0:0:0:0: [sda] Synchronizing SCSI cache
    [ 205.984355] sd 0:0:0:0: [sda] Stopping disk
    [ 206.014679] tpm tpm0: Error (38) sending savestate before suspend
    [ 206.014690] dpm_run_callback(): platform_pm_suspend+0x0/0x40 returns 38
    [ 206.014695] PM: Device tpm_tis failed to suspend: error 38
    [ 206.239986] PM: Some devices failed to suspend, or early wake event detected
    [ 206.249418] sd 0:0:0:0: [sda] Starting disk
    [ 206.405105] PM: resume of devices complete after 165.109 msecs
    [ 206.405500] PM: Finishing wakeup.
    [ 206.405502] OOM killer enabled.
    [ 206.405504] Restarting tasks … done.
    [ 206.948747] systemd-logind[2445]: Operation ‘sleep’ finished.

  21. Thanks for the prompt reply, John. lsmod reveals that tpm modules are not loading. I tried blacklisting all of them, but they never load, AFAIK so it’s pointless. If I try to suspend without kernel options I actually don’t get the 38 error but the system hangs on the 2nd suspend attempt. With tpm_tis.force=1, I get the error 38 but at least the computer doesn’t hang and it keep it from needing to recover the filesystem journal after power cycling, though it appears to panic on an ugly shutdown.

    tpm_tis.interrupts=0 only creates a couple of IRQ mismatch errors or something and doesn’t appear to help with suspend at all (despite what my previously linked kernel.org thread says).

    This thread is also on the right track:

    https://mail-archive.com/linux-kernel@vger.kernel.org/msg1571259.html

    However, the python3 test command only completes successfully when I boot with tpm_tis.force=1 (though the result doesn’t impart a fix). Without tpm_tis.force=1, I get:

    FileNotFoundError: [Errorno 2] No such file or directory: ‘/dev/tpm0’

    Obviously tpm elements are built into the kernel and not loaded as modules and they are incompatible with your ROM. Unless someone more knowledgeable about Linux TPM handling has some suggestions, I think I’ll need to rebuild a kernel. Sadly, most MX-Linux (or just about any other Linux but Gentoo ;)) users are unlikely to rebuild a kernel for their Chromebook!

    https://communities.intel.com/thread/102721

    1. Well, this is what I get on mine:

      root@c710:~# dmesg |grep -i tpm
      [ 1.703939] ima: No TPM chip found, activating TPM-bypass!

      Also, if you extract the config file from the ROM, you’ll see there are no TPM options set. If you look at the config options set on the Jenkins server for the SeaBIOS payloads, you’ll also see there’s no TPM support enabled there.

      So, I don’t know what your suspend problem is, but it’s not down to the TPM, as the firmware is not enabling it.

      tpm_tis used to be loaded as a module – I’m not sure when that changed, but it must’ve been at some point in the last 3 or 4 years.

      1. >root@c710:~# dmesg |grep -i tpm
        >[ 1.703939] ima: No TPM chip found, activating TPM-bypass!

        That’s what I get too, John. Thanks for checking.

        During wakeup, I always (kernel option or no kernel option) get:

        [ 178.784354] genirq: Flags mismatch irq 0. 00000080 (mei_me) vs. 00015a00 (timer)
        [ 178.784388] mei_me 0000:00:16.0: request_threaded_irq failed: irq = 0.
        [ 178.784396] dpm_run_callback(): pci_pm_resume+0x0/0x90 returns -16
        [ 178.784399] PM: Device 0000:00:16.0 failed to resume async: error -16

        So maybe the smoking gun lies in those errors.

        However, even though no TPM modules are loaded, I get TPM error messages in dmesg (when I use the force=1 kernel option workaround suggested in the kernel.org thread). Thus I know the kernel contains some vestiges of TPM code baked-into it (which inspires mistrust, given how many people have reported the same symptoms along with error 38.!

        After 1st suspend attempt:

        [ 197.203607] tpm tpm0: A TPM error (38) occurred continue selftest

        After 2nd suspend attempt (there is no 2nd attempt dmesg without the kernel option, because its hangs):

        [ 420.190800] tpm tpm0: Error (38) sending savestate before suspend
        [ 420.190813] dpm_run_callback(): platform_pm_suspend+0x0/0x40 returns 38
        [ 420.190819] PM: Device tpm_tis failed to suspend: error 38
        [ 420.428599] PM: Some devices failed to suspend, or early wake event detected

        I’ll link this comment page to the MX Linux forum and see what the kernel gurus suggest.

        1. You’re welcome. Okay, well this is happening in Ubuntu 16.04 on kernel 4.4.0-116. I’m pretty sure the C710 was one of the less problematic Chromebooks in terms of power-saving (didn’t have to do things to workaround ehci-pci as you did on Haswell). I would recommend you boot different kernel versions to compare and contrast, and then you might be able to narrow down where this regression was introduced. I would even go back to kernel 3.x just as a test.

          Yeah, I think I’m seeing pretty much the same errors too – that one is related to the Intel Management Engine.

          I’m pretty sure that unless the TPM is initialised in some way by the firmware it will just sit there like a dumb eejit. The Management Engine, with its proprietary version of Minix, really is the one you should worry about. ;)

          Best of luck with it.

        2. I also note that removing mei_me and mei (modprobe -r) makes suspend a lot cleaner (no real error messages, although mine comes straight back to life almost, for some reason). Sounds like a good first step.

  22. Bingo! You were right, John. Woowhoo!! Disabling mei did the trick. I could not do it with modprobe -r, because mei was in use so I used the grub editor and temporarily added the kernel option

    modprobe.blacklist=mei,mei_me
    (with no spaces)

    during boot and it worked. Now I’ll put it in grub and do a

    sudo update-grub

    I worked for Intel for over 20 years as a Sr. Hardware Engineer and all I can say is, gee Intel, let’s have some more of your wonderful TPM, AMT, MEI and other features we don’t want and can’t (fully) decline or disable so you and your globalist partners and spooks can own the chips and PCs we pay-for!

    I’ve been a PayPal almost as long as there’s been PayPal and this is the first time I can’t logon, despite two password resets. I keep getting an error on the paypal logon screen (from your “Donate” link or otherwise). I promise that when they get it fixed, I’ll donate 16 EU / ~ 20 bucks U.S. to you and I hope others from the MX community make it over here and donate too. I’ll be linking this page and discussing whether a kernel.org bug report is in order. I much prefer to donate cash to you than endure bitcoin mining! You’d have my 20 bucks already, if PayPay would have let me logon!

    1. If you remove me_mei first, it will work, since that’s what’s using mei. Of course, you’re going to blacklist anyway, so it doesn’t matter.

      Amen – scary, scary shit they’ve done. They need to cop on.

      You could just donate as guest without an account, although I recognise the link to do it isn’t entirely obvious on the donate page, and thank you!

  23. Donation completed. It turns out that apparently PayPal considered the act of clicking on your “donate” button to be an abnormal transaction for me (maybe because it was Euros?) and locked-down my account. It took 20 mins. on the phone to straighten it out, answering “security” questions from as long as over 20 years ago! Maybe just letting you mine on my machine awhile is actually a better method. :(

    The donation is also on behalf of the MX Linux users group and forum. Except for the mei de-fanging to get suspend working, MX Linux is a turn-key installation using your ROM.

    -Cal

    1. I appreciate the donation, and I understand people have a big psychological problem with mining, but the fact is that the vast majority of users who come here don’t contribute anything, they just take.

      The other added benefit of the mining (in terms of the captcha) is it has zeroed the amount of comment SPAM I’m now getting. I may well decide to disable the auto-miner on the main page in favour of just using captcha, as the amount of money it’s earning is derisory. But I do want to get something from the silent majority who just come to the page, take what they need, and leave. If you have any better ideas on how to achieve that, I’m all ears. Donations have understandably gone down over the last months and years, so there is no way I’m earning enough to buy new models as things stand, and I’m certainly not going to fork out £30 quid a month for a decent unmanaged server on the internet, like I was (hence the C710 serving the website from my own internet connection) …

  24. Yes–of course! modprobe -r mei_me needs to happen first, because lsmod did, in fact, show that it was using mei. Thanks! I guess it was getting late for me but no matter–I just made it persistent right from the start with the kernel blacklist option, as you noted. Blacklisting using an /etc/modprobe.d file would probably work too, I guess.

    Also thanks for your thoughts and considerations regarding donations. I can see the upside to the mining. I inadvertently “triple paid” I think, because I unwittingly kept restarting the mining captcha to comment. That’s okay though, and I don’t mind paying (donating), except when the price is my patience! ;) Philosophically I love crypto currencies. I just wish crypto had realized its inherent benefits as money, instead of mostly realizing the world’s largest casino! Maybe someday, but people obviously love casinos more than they love sound money!

    Here’s a link for anyone who wanders here and decides to “LinuxBook” away their ChromeOS:
    https://forum.mxlinux.org/viewtopic.php?f=104&p=437144#p436964

    There may be a formal guide in MX Wiki > Hardware someday too.

    1. Believe it or not, I have to do the captcha to login as admin – most times I have to do it at least twice, because I hit enter in a rush! :P

      It’s been a pleasure, and thank you for kinda understanding – wish I could say the same for the guy who contacted my work in regard to the mining …

  25. full rom install which was choice number 5 for me.

    $ inxi -M
    Machine: Device: desktop System: Google product: Parrot v: 1.0 serial: N/A
    Mobo: Google model: Parrot v: 1.0 serial: N/A
    BIOS: coreboot v: 4.0-6588-g4acd8ea-dirty date: 09/04/2014
    harry@biker:~
    $ inxi -S
    System: Host: biker Kernel: 4.15.5-antix.1-amd64-smp x86_64 bits: 64
    Desktop: IceWM 1.4.2 Distro: antiX-17_x64-full Heather Heyer 24 October 2017

    I will donate with paypal

  26. Hi, my chromebook c7 is no longer supported by google, so I would like to install ubuntu on it, but I do not want to use crouton. I ask, can i use your full ROM on it to install xubuntu 16.04? Please, let me know. Thanks. Sid.

      1. Not yet, i am afraid to brick my chromebook, so, i asked you because you have far more experience.

        1. The script is there to take as much guess work out of it as possible. That ROM is pretty well tested so just go for it. I’m not aware of any bricked C710’s.

  27. Hi John,

    Does your SeaBIOS support Apollo Lake Chipsets? I am trying to find a Chromebook that has USB Type-C Charging and has a 15.6 in screen and I have only found one but I don’t know if I should buy it yet because I don’t know if SeaBIOS full ROM is supported with that Chipset yet. If you could get back to me ASAP I would be very grateful.

    Model: Acer Chromebook 15 CB515-1HT-P39B
    Proccessor: Pentium N4200

    1. Hi,

      The bigger problem would likely be distro driver support, since it’s patchy for Braswell/Skylake and newer. It may already come with a working RW_LEGACY slot. No guarantee I would be able to make an RW_LEGACY slot that works.

      1. With the RW_LEGACY can you make it were it boots straight into the Linux distro or does it have to boot into the ChromeOS dev page and then go through the “Ctrl + L” then go through SeaBIOS to get it to boot Linux? Maybe a script to make it boot right up into the Linux distro?

        1. With RW_LEGACY, you can reduce the dev screen to a short wait, disable the space bar from wiping anything, and it go automatically into the RW_LEGACY slot – you need to change the GBB flags to 0x489 for that to happen. In case I didn’t make that clear enough – yes that will boot straight into the Linux distro without intervention.

          1. How exactly would I go about doing that? Is how to change the GBB flags in the script you have written, if not where can I find how to do that. I will purchase one of these Chromebooks and see if the RW_LEGACY slot works with SeaBIOS and post my findings on here so you have at least one person with data on this model. What I have read on the distro is that it would just be speakers that are interfered with and what I am going to be using these for I do not need to speakers.

  28. Hi John,

    Has anyone tried your script on an Acer Chromebook 15 (CB3-532) – Banon yet?

    BTW, your Monero mining captcha is pure genius.

    1. Hi,

      I think a few people have tried it with Banon with success. Think there are still probably some driver issues with Linux but {shrugs}.

      Well, I don’t know about that – the way Monero keeps falling it’s definitely a futile enterprise. But, it definitely keeps the spammers away. :)

  29. If anyone has /dev/mem issues, or gets an “Operation not permitted” error try what is mentioned (at your own risk)

    I used your script a year ago or so on my Acer Chromebook 15 (Auron-Yuna) and wanted to update it so I ran the setup script from my Bunsenlabs install (Debian Jessie) I was first met with a dependancy issue with LIBPCI 3.3. After updating that I had an issue with not being able to write to /dev/mem. It seems that on newer kernels, (running 4.9) the kernel option iomem=relaxed needs to be used in order to write to hardware.

    Also, I have never been able to get run many Boot CDs correctly on this Chromebook. Some work, like Clonezilla. But others like Hirens Boot CD and others don’t.

    The most common issue is when I load one up, the video is incorrect, and is only drawn on the top 1/10th of the screen. I get this same behavior in my actual Linux install when booting at the boot/kernel options screen. I went into defaultgrub configuration and changed video mode to 1024×768 and that fixes the boot/kernel options menu on boot, however I was wondering if you knew of a way to get USB Bootable utilities to work?

    1. I don’t, TBH. It’s probably down to the RW_LEGACY slot reusing the coreboot framebuffer for resolution, etc. It depends on what each respective utility is using for actual boot. For instance, I know that some versions of syslinux have issues with this. If you could respin the utilities that do use syslinux, and don’t work, with a newer version of syslinux (say the one used to Ubuntu 18.04, or similar) I think it would be a good test.

      I haven’t tried Hiren’s boot CD, or Clonezilla, in such a long time, I honestly don’t know how they (or what they use to) boot.

  30. Hey John.
    I was wondering if perhaps you could help me. I downloaded coreboot , the ‘23102013.rom’ version, for my chromebook, acer c710 with Celeron 847 processor.
    I followed the steps shown by Johnny Phung to flash the acer (https://www.youtube.com/watch?v=m5crPfEAhvs&t=1s). Everything seemed to work. But when I booted back up I get the following:

    SeaBIOS (version rel-1.7.3-26-g915f64a-dirty-20130902_202533-john-samsung-550-chromebook)

    Press F10 for boot menu.

    Booting from Hard Disk…
    [1.546378] Kernel panic – not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    [1.546594] Pid: 1, comm: swapper/0 Not tainted 3.4.0 #1
    [1.546682] Call Trace:
    [1.546738] [] panic+0x80/0x171
    [1.546811] [] init_post+0xa3/0xa3
    [1.546970] [] ? start_kernel+0x328/0x328
    [1.547056] [] kernel_thread_helper+0x6/0x10
    [1.547153] panic occured,switching back to text console

    : So I rebooted, and pressed the forward key to stop at the Grub menu. GNU GRUB version 2.00.
    I get only two options:
    1)*Load SeaBIOS
    2) Scan for OS on internal HDD

    I have a live usb with Ubuntu 18.04 on it, and I tried changing between iso, and DD images, but it still won’t show up on the menu. And when I select either of the options above I get:
    ‘unaligned pointer 0x1
    Aborted. Press any key to exit.’
    However, no matter which key I press, I can’t get off this screen. My only option is to restart the pc, and start over.
    I can access the GNU grub command line though.
    Please help me figure this out. I’ve written everything I know about the problem.

    1. That’s a really old video, and the version of SeaBIOS in that ROM hasn’t been updated in an eon.

      Have you tried taking one of the memory sticks out of your C710, to see if that makes a difference?

      Failing that, if you run:

      insmod ahci
      insmod part_msdos

      From the grub cli, that might tell us more.

      1. ‘unaligned pointer 0x1
        Aborted.’ is the only return I get after running both commands.
        I’ve only got one memory stick in there, and I don’t know what would happen if I take it out.

        1. Actually, I’m going about this completely the wrong way – SeaBIOS loads, so this is our way out of the mess.

          The USB stick isn’t appearing because it’s taking too long to initialise and announce itself on the bus – you therefore need to use a different USB stick.

          If that isn’t an option, the other way around it is to install Linux on the C710’s HD via another machine, then put it back in the C710 – you’ll then boot from the HD.

          Lemme know what worked and which way you went.

          1. I’ll let you know if it works. I’m sorry for dragging you into this problem. It’s just that this computer is my very first experience with coding and customising. It represents out of the box thinking for me. I’ve had it since 2013. Before that, I hadn’t had much experience besides Windows XP(which is ancient by now). Would be a shame if I lost it.

            1. You’ll be fine – the fact you can boot into SeaBIOS means it’s not completely bricked. Even if it were, you could still unbrick it with an RPi Zero or above, some jumper wires, and a Pomona 5250 SOIC clip, which is a fun exercise. ;)

              1. haha. Yeah, Always fun.
                You know, I’d love to learn more about how you created all of this. I, myself, only have experience with c++ programming, and started learning a little Java.
                I’m 20, and I’m still pondering what I wanna do with my life. So, if you ever in need of a student with a keen interest in learning more about computers, let me know.

                1. Okay, so just to correct you a bit here (I did mean to do this the other day) – although I have a programming background, and can script BASH/Python and stuff, tweak PHP/CSS templates for WordPress, even make very minor mods to C for kernel/coreboot, I’m not a programmer, per se. All I have done (as have at least 2 others) is compile coreboot ROM’s, etc myself, and make them available for other people to use. The real stars are the coreboot developers, who actually make this stuff – I just did the last mile for the less initiated and in a “hey, it’s cool to run Linux natively on Chromebooks” (and it’s also more “open”) kind of way.

                  Anyway, if you want to get a feel for compiling a coreboot ROM, either go look at coreboot docs, or take a look at the article I did on compiling a coreboot ROM for the Samsung 5 series 550 Chromebook back in 2013. Other stuff will be gleaned by reading other articles on my site, and subscribing to the coreboot mailing list. Compiling a coreboot ROM is very much like compiling the Linux kernel, except it’s more likely not to make your machine boot at all. ;)

              2. I have installed Ubuntu onto the hard drive using the ubuntu installer, and I put it back into the Chromebook. When I start it up, it says: ‘booting from hard drive,’ and nothing further occurs. It just stays there until I unplug the laptop.

                  1. I think it’s sda. I partitioned the hard drive, with swap, home, and root partitions before I started the install, but all those partitions we’re created under /dev/sda

                    1. Only the chromebook hard drive, and the usb I dual booted Ubuntu off of.

                    2. I made sure I install ubuntu to the right drive by checking the disk space, about 320 GB’s.

                    3. Well, what I think has likely happened, is that the Master Boot Record on the 320GB drive doesn’t contain Grub. When you installed Ubuntu, it will have asked you if you want to install Grub, and will probably have defaulted to /dev/sda.

                      You can write it to the MBR after the fact, by running, “grub-install” e.g. “sudo grub-install /dev/sda”.

                      Either that or perhaps the boot partition isn’t marked as “active”. Both will result in SeaBIOS appearing to hang booting.

                      Did you confirm you can boot from the 320GB in the surrogate machine, after you installed it?

                    4. No. But I’ll see if I can boot from it, and if it doesn’t work, I’ll do the sudo grub-install.

                    5. I checked to see that everything boots up perfectly from the hard drive, and everything is a go.
                      Which leaves me with a question…
                      Whenever I boot up Ubuntu on the surrogate pc, I see a much more updated grub manager. Grub version 2.02.
                      But the chromebook starts up with grub version 2.00.
                      Could they be conflicting with each other?

                    6. I don’t think so – I think it may actually be a reporting error, as the Chromebook/SeaBIOS will be using “legacy” booting, whereas the surrogate PC may well be using UEFI. Either that or the relevant “legacy” area of the disk (mbr), didn’t get updated with the newer version during install, and the older version is an artifact.

                      If you reinstall grub while booted on the Chromebook, you may find it has an effect on the version number, in the case of the latter e.g.

                      sudo grub-install /dev/sda

  31. Hi John,
    I run the script”cd;bash <(curl https://johnlewis.ie/flash_cb_fw.sh)" on my Lenovo N42 Chromebook(The CPU is INTEL N3060 braswell), there are two problems.
    The first, under the latest Chrome OS 64-bits, you site(https://johnlewis.ie/)'s SSL link doesn't work, it's seemed that the SSL certificate is invalid. I downloaded the "flash_cb_fw.sh", and modified all https links to http links, the first problem is solved.
    The second, after downloaded the firmware, the script told me the MD code was error and try run it later. After several times tries, I gave up and write this comment.

    1. I can assure you the certificate is valid – check the time under ChromeOS.

      “MD code was error”? Can you post the actual error you got because that doesn’t make sense.

  32. Hi

    I have a toshiba chrome book 2 and ran the above script which completed ok. I was able to run the live usb from seabios and all looked fine. Upon rebooting I did Ctrl l to get back into chrome which left me at the os is missing screen. I tried another reboot but escape is not working now nor is ctrl l. I have also tried the recovery utility which unsurprisingly is not recognised. Is my only option now a hardware flash or is there anything i am missing. I built the recovery using a windoze pc and the google utility, oddly i cannot see the contents on a windows machine it just prompts for format, I assume that is normal and the usb is not duff and being misreported by the utility

    Thanks in advance.

    James

    1. When you had booted from the LiveUSB, had you tried to install Linux?

      Well, it would’ve been “ctrl + D” to get back into ChromeOS, that’s of course assuming you changed the GBB flag to 0x489? If you didn’t, you wouldn’t need to hit anything to attempt ChromeOS boot.

      Do you get the white dev screen? Does SeaBIOS start automatically? Which model of Toshiba Chromebook 2 is this? What does the dev screen report the model name as?

  33. Will this work on Apollo Lake chips? I have a new HP Chromebook 14 G5 coming in the mail and would like to install Ubuntu on a flash drive to boot from. The specific processor is the Intel Celeron N3350. I read in another comment that the issues were mostly with distro support. Would this mean that it would likely succeed in the bios mod, but not be able to work with Ubuntu or something?

    1. I’m not sure. If you tell me the model name (from the dev screen) when you get it, I can add it to the script, and we can go from there. Might also be a good idea to tell me what the PCI ID’s of the graphics card are, so I can check what the chances of you getting graphics output in SeaBIOS are. :D

      Yes, you may well have driver issues in Linux, but some chipsets came with better support that others. As a general rule, the more “mobile-like” the chipset is, the worse the hardware support will be. YMMV, etc etc etc.

  34. Hi, trying on ASUS Chromebook Flip C302C and it throws this error:
    “ERROR: cave is not currently supported at all using this script.”

      1. Sorry it took so long to respond, My cpu is Intel(R) Core(TM) m3-6Y30 CPU @ 0.90GHz and my model is CAVE D25-A4C-E2E-33A.

        1. No problem – I could also do with “lspci -vnnn” output too.

          I’ll add it to the script, but the chances of graphics working are reasonably slim unless I make sure the right PCI id’s are in the firmware mod, for the graphics card.

  35. I have been trying to run the commands on my C731 (Braswell) and the curl command downloads an html file rather than a shell script. I have tried the same commands on different computers and get the same result. Am I doing something wrong? Thanks

    (Sorry if I screwed up somebody’s thread with this post).

    1. When I ran the script”cd;bash <(curl https://johnlewis.ie/flash_cb_fw.sh)"
      on my Lenovo X131E Chromebook it downloaded the file and then gave this error:

      100 147/dev/fd/63: line 1: syntax error near unexpected token 'newline'- 0
      /dev/fd/63: line 1:'’
      19 0 14719 0 0 5500 0 –:–:– 0:00:02 –:–:– 7960
      (23) Failed writing body

      I have done the hardware work on the write protect and turned off write protect by command. It seemed to be working fine to access the ROM. I have checked my time and date. I am stumped now.

        1. Yes to all of those questions.
          It just says it can’t run the “DOCTYPE html” document as the error.
          This has been very disappointing. I have wasted two days of effort. I wanted a small, lightweight linux box to carry in my work truck. I HATE Chrome OS. I will toss this into a box somewhere and forget it. Wasted money and time.
          You are doing great work. Thanks for what you have done.

  36. Samsung Series 3 XE303C12 2012 Chromebook is not supported at all. If it could be supported in at least being able to modify the RW_LEGACY slot, that would be much appreciated. Thank you!

    1. There’re a couple of small problems with doing that – firstly, it’s got an ARM processor, and secondly the firmware on that device doesn’t contain an RW_LEGACY slot to begin with. So, good luck with that. :P

  37. Hi John,
    I’m having some trouble booting to SeaBIOS with the ASUS C300MA-RO005 (Baytrail). I’ve removed the write-protection screw and enabled dev mode (it has been enabled for a while as I used to have a crouton on the laptop). The script seems to run as expected in shell (non-sudo) with (1) RW_LEGACY selected:

    “`
    flashrom v0.9.9 : 3fc9f2f : Jul 27 2018 21:39:58 UTC on Linux 4.4.141-14563-g78fd9f781aae (x86_64)
    Calibrating delay loop… OK.
    coreboot table found at 0x7ae6e000.
    Mapping BYT IBASE at 0xfed08000, unaligned size 0x200.
    Mapping BYT SBASE at 0xfed01000, unaligned size 0x200.
    spi_block_erase_52 failed during command execution at address 0x0
    spi_chip_erase_60 failed during command execution
    spi_chip_erase_c7 failed during command execution
    Erasing and writing flash chip… SUCCESS

    INFO: Good, your quawks’s RW_LEGACY slot was written successfully.
    You can hopefully, safely reboot!
    “`

    However, rebooting results in the usual chrome dev ‘OS verification is disabled’ screen.
    ‘Ctrl-L’ with a bootable USB produces a beep with no result. I don’t know if the spi erase commands failing is to blame here?

    Should I try manually flashing? Any recommendations would be much appreciated.

    Cheers.

  38. i have a Acer Chromebook 14 CB3-431 with Intel processor and really want to install Ubuntu on it. I ran into a problem when I did the CTRL + ALT + forward key,, and just got a dark screen. Powered down the computer repeated the step CTRL + ALT + forward key, still same dark screen. What do I do?

    1. So, why did you hit that key combo?

      Basically, when you hit that key combo, the system will try to run ChromeOS recovery, but because you’ve removed that part of the ROM during your presumed write of BOOT_STUB, ChromeOS recovery no long exists and you just get a blank screen …

      I think there may be some funny key combo/incantation you can do to bring it back, or, failing that, just disconnect the internal battery.

      It’s also probably a good idea for you to tell me what the hell you put on there, to begin with, if you want me to help – writing BOOT_STUB hasn’t been supported by the script now for a number of years …

  39. Hey John,
    I am on a Lenovo X131e.

    I was dumb and did the full OS removal before flashing the legacy drive. I was getting errors flashing the legacy drive and then later on I stupidly turned off my system. Now when it turns on SeaBIOS shows up and if I don’t press anything it boots from the hard disk, then shows only a black screen. If I press escape I can get to the boot menu and I can see the recovery drive I made, but I can’t select any options. I’m completely stuck.

    Did I brick it or is there still some way I can fix it?

    Thanks

    1. I was able to fix the issue by plugging in an external keyboard… Should have read a bit more before posting. Anyways thanks for your work, and have a great day!

      1. Yeah – I don’t think there’s a keyboard problem with the X131e (Stout), but SeaBIOS will get its knickers in a twist if you press escape too many times, and too early. Glad you found a workaround anyway.

  40. am I in trouble?

    before running the script:
    – RW screw removed
    – vpd mlb_serial and serial changed
    – RO_VPD and GBB bin files saved in safe place

    Ran script, option 5 FULL ROM:

    ##################################### 100.0%
    ##################################### 100.0%
    flashrom v0.9.9 : 266087c : Nov 20 2018 01:07:48 UTC on Linux 3.8.11 (x86_64)
    coreboot table found at 0x7f782000.
    SUCCESS

    INPUT REQUIRED: About to flash your zako’s entire ROM, repeat
    ‘If this bricks my zako, on my head be it!’ observing exact case
    and punctuation: If this bricks my zako, on my head be it!

    flashrom v0.9.9 : 266087c : Nov 20 2018 01:07:48 UTC on Linux 3.8.11 (x86_64)
    Calibrating delay loop… OK.
    coreboot table found at 0x7f782000.
    spi_block_erase_52 failed during command execution at address 0x0
    spi_chip_erase_60 failed during command execution
    spi_chip_erase_c7 failed during command execution
    ——————————————————————————-

    INFO: Assuming you didn’t get any errors you may reboot. Otherwise, do not
    reboot under ANY circumstances, and post a comment @
    https://johnlewis.ie/custom-chromebook-firmware/rom-download/

    chronos@localhost ~ $

    1. I don’t think you’re in trouble – because it failed at address 0x0 it seems the chip won’t have been overwritten at all, but YMMV. Short answer – it’s probably okay but nothing will have changed.

      1. no, I didn’t flashrom –wp-disable :(

        also, looks like Im bricked now :( at least partially… while I was away from home, there must had been power outage, the box have shut down.
        Now I only see this:
        https://imgur.com/8HSZVNs

        Seabios with the only option to boot from SSD, no option from SD card slot/USB…

        What should I do next? M.2 SSD to USB adapter and try re-image SSD or shop for Pomona 5250 SOIC clip ?

        I would like to resurrect this box, cos its Core i7…

        thanks for your help John

        1. Don’t worry – the merest fact you have a display means things are working. :)

          So, what’s happening there, is it’s still trying to boot off the internal hard disk, but it can’t boot ChromeOS because the verified boot chain has been broken. It’s not recognising any USB stick or SD card in the picture you’re posting there – some USB sticks take ages to announce themselves on the bus, using normal (read: slow) firmware, there’s almost always enough time for this to happen before you reach the boot selection, but with coreboot, I have had to introduce a delay of up to 5 seconds, on occasion, for a USB stick to be recognised. My advice there is to try other USB sticks, and/or ctrl-alt-delete after the dispaly comes up, but before it actually tries to boot ChromeOS (tip: you’ll know if it’s got that far, because it will no longer respond to ctrl-alt-delete, and you’ll be forced to hard power off). That way, the USB stick will likely (maybe with two or three consecutive tries) announce it’s presence. Further, I would advise you be very careful about how the bootable USB stick was created – if using Windows to create the USB, use Rufus, if Linux, write directly to the drive with “dd bs=4M status=progress conv=fsync if=filename.iso of=/dev/sdX” where “X” is the drive designation (probably /dev/sdb if you don’t have any other drives in there except for the internal one). Let me know how you get on, or if you’re stuck.

          1. it turns out that my Zako was reimaged with Panther ROM with your script, you may want to check the script/rom yourself…

            dmidecode -s system-product-name returns “Panther” instead “Zako” after re-image.

            1. Those Chromebox’ are the same hardware – that’s why the same ROM is used for both. Any particular reason you need it to say Zako apart from the fact it’s niggling at you?

  41. Hello,

    I tried to install the flash on
    Acer Chromebook 13 CB713-1W-57G8 Intel Core i5-8250U, 8GB RAM, 64GB eMMC, Intel UHD, Chrome OS
    and did get the error message
    nami is not currently supported at all using this script.

    I am lost a bit
    Any help?
    Rudolf

Leave a comment