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)
Hello Jhon! The script doesn’t work on my acer c710, or it seems like I don’t use it well, could you give me so helps please?! everytime I run it, it gives me a message like: curl: (23) Failed writing body (0 != 5414)
bash: getnflash_johnlewis_rom.sh: No such file or directory
It sounds like you’re not in a writeable directory. Are you copying and pasting the exact command from the website?
Hello Martin L! the board name (HWID)for C710-2487 is : “PARROT AMAGO C-E 2487” Without quotation marks.
I hope it’s helpful. So, as you were already flash your c710 could you tell me the process of using the script or could you provide a rom if you had an old build for the c710? thanks in advance.
Now I feel dumb. I fiddled with the thing for a day or two, trying to manually kexec into a USB drive. Eventually I noticed the USB showed up on reboot. This time, the USB was not formatted in EXT4, as it had been for my kexec attemps. Just rebooting from JELTKA, the USB then showed up in my bootable list. Boots up just fine.
Maybe this will come in handy for anybody else as bumbling as I.
Expect a donation for your improved ROM, soon.
Thanks for the donation, Evan, much appreciated!
I will be willing to try the experimental ROM as long as it does not pose additional risk of bricking my Chromebook.
The C720 and HP Chromebook 14 have pretty much identical internals, so I’m now testing the C720 ROMs on my HP Chromebook 14 before upload. That means there’s pretty much zero chance of a brick, unless I forget to do something. I’ll make a post when I finally get some new ROMs out.
In France we only have the NX.SHEEF.002 model with 2 GB of RAM and 16 GB of storage. It seems to be the French version of NX.SHEAA.002 (or C720-2848). Do you know if the ROM works on it? Thanks!
It should do, yes. Hold fire for the moment though, there’s a problem with the latest ROM.
I wish I would have read your last comment before I ran the script on my Acer c710 parrot. Now all I get is a black screen.
I take it you’ve tried cold-booting?
Try switching on, wait 3 seconds then hit 2. You *may* get a display then.
Alternatively do the same, but with a Linux USB stick in, if the above fails.
yes i have tried cold booting, along with hitting 2 with and without a usb drive with Ubuntu. the backlight comes on but that is all.
Sorry meant *hit ESC, then 2*
Still nothing :( good thing this was a refurb.
So, you hit the power switch, wait 3 or 4 seconds, then hit ESC, then hit 2?
The backlight coming on indicates that the ROM is probably okay, but the graphics is wrong. I take it you have a 1007u based C710?
I tried this ROM on my son’s 847 based C710 earlier on today, and it worked fine.
Poked the power button and just kept hitting ESC then 2 and not I have the Jeltka login.
Okay. So, username is root and no password. Type “j” and press tab to bring up “jeltka.sh” and enter. Then follow the prompts and choose your poison (distro). Once you have a distro installed you can flash the ROM I just updated (using the script) to fix the graphics.
Yes that is what i did. Took a couple tries. Yes I have the ivy-bridge model. Now I’m logged in and trying to set up from jeltka. But in not getting anything on the wireless.
Is your wireless connection WEP?
You can always plug in and use ethernet instead.
When using ifconfig the wireless adapter does not show up
Using your script is working! Thank you!
Firmware is always hairy. ;)
I spoke too soon, it is stuck at Starting new kernel.
Which distro did you choose?
Ubuntu
And it says “Starting kernel” then *absolutely* nothing else? Can you take a pic?
http://picpaste.com/IMG_20140902_181135-RI49kjzp.jpg
Can you try one of the others to see whether it’s specific to the Ubuntu option?
None of them work. Fedora and centos both try and partition and fail to mount on /tmp
Yeah, I’m getting the same. You’ll have to boot from USB stick to install. It must be the frame-buffer driver. I’ll have to take it out again, which is a shame as it was a selling point to be able to initialise the display without valid ROM.
I’m downloading an Ubuntu iso in case my install drive was bad. Then try booting from the thumb drive again.
Okay, I’m going to have to leave it here for the night. I think you’ll be okay. I’ll pick up any remaining issues in about 10 hours.
It refuses to boot from USB tho.
I take it you’ve taken all the usual precautions i.e. making sure the USB stick boots on another machine as is? I always recommend people dd a Fedora ISO to their USB stick as a default baseline. Perhaps you could try that?
help me
Do what?
Could not get the USB to boot, so I tried installing arch again from the script. I waited about 30 minutes and it finally loaded the kernel. So I did a minimum install of arch, loaded my old firmware and flashrom on a thumb drive and reflashed. All is well now.
Bit of an ordeal. Glad you got there. Thanks for letting me know.
BTW, it was the Intel frame-buffer driver causing Jeltka to not boot the kernel, because kexec doesn’t like Kernel Mode Setting (which is the bit that initialises the display even without video ROM). That’s the end of that so!
If you choose “Setup Network” in the Arch installer menu, then exit once connected/switch VT’s, you can download flashrom plus a ROM from my site without having to install anything to the drive. That is now my preferred method of reflashing from Jeltka – upstream Flashrom won’t flash a Chromebook chip *unless* it’s previously been programmed with an external programmer, and I can’t easily compile ChromeOS flashrom for uClibc, so that’s the best option, IMO. That’s probably also the best way to run a rescue environment, as it contains testdisk, and much more complete driver/utility support.
So should I not run your script again to update my firmware?
You should update using the script.
I’m confronted with the ‘Starting new kernel’ hang as well. Could you please explain to me how I can boot a USB-device? When I stick it in, then press escape and then the number for the USB it seems to load all kinds of stuff, but then it just shows the Jeltka login prompt as usual. (The one where you type in Root). Help would be appreciated, as of right now I’ve got no idea how I can load an OS onto my C720.
Apparently, if you leave it for half an hour, it will finish loading the new kernel. The KMS part of the i915 driver doesn’t agree with kexec, I have since found out.
To use USB, make sure that the drive boots on another machine first and dd a Fedora ISO to it if it still won’t work on the Chromebook itself. I’ve found that’s a failsafe combination that always boots.
If the USB stick is in and bootable, you’ll see 3 entries in the list, the USB drive being the second.
so i have a acer c720p and when the rom tries to download md5sums.txt there isnt enough space available in the location is trying to put it. OEM is where its trying to go. /media/removeable/OEM
What external media have you got plugged in, and how much space is left on it?
I’m glad to let you know that a new USB-disk resulted in a successful installation of Ubuntu. Suspend didn’t seem to work at first, but worked after I removed the two TPM lines from Grub, which I thought were still necessary to fix suspend. I thank you very much for your wonderful rom!
Thank you!
Those lines are necessary with stock, but aren’t necessary with my ROM’s because TPM support is disabled in them.
There’s a newer ROM with the Intel framebuffer removed from Jeltka to fix the kernel-loading, if you want to try it.
I have updated to that latest rom, although I am happy enough with a working installation of Ubuntu 14.10! Although, I did notice that I can’t change brightness anymore, which seems to be a known problem? Anyway, Xbacklight doesn’t work and can’t register nor change any brightness. I am confident that you will be able to fix this in the near future though!
Do you mean 13.10? 14.10 isn’t out yet?
Which kernel version have you got installed, and can you check /sys/class/backlight for a symlink named “intel_backlight”?
Acer C720 (2GB)
Flashing the “coreboot-peppy-seabios-040914.rom” has fixed the issue of the laptop turning on when plugged into AC. However, when I open the lid, the laptop still does not turn on. It appears to briefly turn on and then immediately turns off.
Yes, it does that to me, also. I don’t think I’ve ever been able to build a Falco ROM that *doesn’t* do that. Guess it might be something to do with the virtual dev switch code which relies on the ChromeOS code which is unselected in the build. It’s a minor annoyance. Awww. Shucks.
I’m actually running this: http://cdimage.ubuntu.com/daily-live/current/. I installed kernel 3.17 rc3, since it natively supports the C720 touchpad. (However that driver was terrible, so I installed this one: https://github.com/hugegreenbug/xf86-input-cmt) I just did ‘sudo nautilus’, and then went into /sys/class/backlight, and there aren’t any files. Assuming this is the right way to check for symlinks, there aren’t any.
The driver is fine (I’m using 3.17 rc1), you just have to adjust the sensitivity. See https://johnlewis.ie/making-the-touchpad-work-on-a-hp-pavilion-chromebook-in-ubuntu-14-04/
Anyway, I have no problem with the touchpad driver, as the driver I linked is a port of the Chrome OS driver and is simply awesome :) But concerning the backlight? Is there a fix?
The “fix” was to include the subsystem vendor ID’s in the ROM, which then allows the Linux kernel to apply a quirk enabling the backlight (the way the kernel handles backlights changed during 3.15). I have been including that fix since 010914.
Please confirm you are running the correct version of the ROM by posting *all* of the SeaBIOS string.
Other than that, I did notice that coreboot are doing something with “generic” backlight code at the moment. Perhaps that will address the issue in a kernel friendly way from the firmware side.
It actually says ‘SeaBIOS (version 1.7.5-260814-09:51-johnlewis.ie), which is weird, because I uses ‘cd; rm -f getnflash_johnlewis_rom.sh; curl -k -L -O https://johnlewis.ie/getnflash_johnlewis_rom.sh; sudo bash getnflash_johnlewis_rom.sh’ as recently as yesterday. Please help me in getting the september 4th version :) Thanks for your quick responses up until now by the way.
That’s the problem then so. Can you run it again and post all the output?
No need, it ran this time, and it has been updated to 0409! Brightness works perfectly now! I’m almost too ashamed to say that I didn’t understand that the chicken sounds meant that the sentence wasn’t copied right, I figured it was a funny way of displaying flash progress. I would like to thank you again for your ROM, and your kind and patient support. I will be sure to send a little money your way in a little while.
No worries. It was an attempt at humour. I shall change it to be more explicit! Thank you!
disculpe, ya se encontró una solución para el teclado y el mouse en windows en una ACER C710 con chromebook ?
Creo que leí que alguien tenía teclado que funcione el otro día, pero no ratón, así que no.
Disculpas por Google Translate, que no hablan español.
Hallo John,
my problem is, I can’t start my chromebook (acer c720) from usb, even in developer mode and with crossystem dev_boot_usb=1 dev_boot_legacy=1, and all done without write-protect. Any usb-sticks I produced with different linux-iso’s don’t start regularly.
What else can I do?
I only succeded with crouton and lubuntu/lxde installed on an external sd-card. But I still have to start ChromeOS first…
Regards,
Peter
dd a Fedora ISO to your USB stick and confirm you can boot from it on another machine, then come back to me if it still doesn’t boot on your C720.
Acer C720, Seabios: “coreboot-peppy-seabios-040914.rom”
The laptop still sometimes turns on when plugged into AC. I cannot reliably replicate the scenario though. Just today, the laptop had been off for around 7 hours. I took it out of my backpack, plugged it into AC, and then the laptop turned on! I then turned the laptop off, unplugged the laptop from AC, waited a few seconds, and then plugged it into AC. This time it did not turn on.
Yeah, have you noticed it sometimes switches off spontaneously whilst in suspend, too? Normally after a few hours.
Yes, I’ve experienced that.
Hi, I’ve a C720.
What the FAQ didn’t explain or I just did not get:
What are the benefits of having this custom rom instead of activating the pre-installed version of SeaBIOS from Google?
Thanks!
Gets rid of the dev screen.
Faster boot.
Removes TPM from DSDT meaning no TPM work-arounds in Linux.
Won’t wipe out your GBB flags if the battery is flat (because there are no GBB flags).
Anecdotally, makes your Chromebook run faster.
Contains an embedded Linux (Jeltka) which will allow you to install 5 or 6 of the big distro’s without media.
Same embedded Linux contains ext utils and USB/SD support for rudimentary recovery/filesystem resizing.
Same embedded Linux allows use of Arch installer as full-featured recovery (containing things like Testdisk).
Probably other things I’ve forgotten about.
I might add an entry, although this is partially covered on the ROM download page.
Hi John,
Thanks for all your work, it helps me a lot. I manage to reinstall CrOs after Ubuntu. I followed your tutorial “shellball” to reinstall the stock bios.
But one issue remains: my Acer C720 is now detected as “X86 TEST PEPPY 4211” as the model (when booting in dev mode). I think that make the whole system unable to update: it stucks on Chrome 36.
Do you have any idea of where it comes from?
Thanks
Hi Zack,
You need to change the hardware ID in the firmware using something like “gbb_utility –set –hwid=’Insert Valid HWID’ bios.bin newbios.bin” where bios.bin is a shellball ROM (you can extract it from within ChromeOS if you haven’t got the copy you extracted previously). Then write that to the device using Flashrom.
You can find a valid ID for you device by running the Linux recovery script and not specifying a model, whereby it will print every valid HWID for every model on the screen. HTH.
Acer C720, Seabios: “coreboot-peppy-seabios-040914.rom”
Just as a detail to note, sometimes when I turn on my laptop, the time is wrong. Either the firmware is causing an RTC error, or my hardware RTC might just be bad for some reason.
The only time I ever have problems with the hardware clock is after the battery has been disconnected – it gets a ludicrous date in the future, and I have to use timedatectl to reset it. Not sure how you’re supposed to do the same thing in an upstart based disto.
Hello John,
Thank you for your tutorial. I followed your instructions and everything went well.
I deleted all my hard drive.
But I have a problem. After installing Windows 7 ultimate 32 bit, the mouse and keyboard do not work.
I need your help.
ACER C710 intel celeron 847
You use corboot-parrot-seabios-27…rom
thank you
That’s because there is not driver for them.
I used this coreboot-parrot-seabios-windows-27102013.rom
Who should market windows.
What to do because the mouse and keyboard do not work
Please refer to the FAQ, *which* you should’ve read, along with the ROM download page. This stuff is not for the faint of heart.
https://johnlewis.ie/custom-chromebook-firmware/faq/
John help me.
Is it possible to reflash my bios
http://chromebooklinux.blogspot.ie/ has all the information you need.
Ok thanks
Would I be able to run the latest Linux Mint 17 with Cinnamimon on a HP Chromebook 14 FALCO?
There is no specific reason why you can’t do that, but I haven’t tried it myself so YMMV.
Hi John,
I employed your script to initiate the ROM download for my HP Chromebook 14 Falco. The text scrolling down the screen gave me encouragement that all was going along satisfactorily. But, it did not last. I will attempt to send photos of the screen shots I took so you will have the information I had. Your thoughts and suggestions are invited.
Thank you for any input you can give.
regards,
Marc
file:///home/z/Documents/Linux on Chromebook/John_Lewis_rom_1.JPG
file:///home/z/Documents/Linux on Chromebook/john_lewis_rom_2.JPG
Those links you’ve posted are local to yourself, and not something I can get into. Can I suggest something like imgur?
Connecting to johnlewis.ie|37.187.3.40|:443… connected
HTTP request sent, awaiting response ,,, 200 OK
Length: 8388608 (8.0M) [text language=”/plain”][/text]
Saving to : ‘coreboot’-falco-seabios-040914.rom
43% [===================> ] 3,628,788 819KB/s
Cannot write to ‘coreboot-falco-seabios-040914.rom’ (Success).
– – 2014-03-17 12:51:46 – – https://johnlewis.ie/Chromebook-ROMs/md5sums.txt
Resolving johnlewis.ie . . . 37.187.3.40
Connecting to johnlewis.ie|37.187.3.40|:443 . . . connected.
HTTP request sent, awaiting response . . . 200 OK
Length: 6359 (6.2K) [text language=”/plain”][/text]
Saving to: ‘md5sums.txt’
Hi John,
I tried setting up an account on that Imgur site but their cryptic recognition screen input didn’t want to abide. So I’ve typed in the text below that was on the screen shots I meant for you to see.
0% [ ] – -, -K/s
Cannot write to ‘md5sum.txt’ (Success).
*** For some reason download of coreboot-falco-seabios-040914.rom failed. Please coreboot-falco-seabios-040914.rom from the current directory and try again later
Chronos@localhost ~ $
Just do as it says – remove the partially downloaded file, and try again later. It sounds as though your ISP is proxying the download, and the cached version is invalid.
Hi I was reading the discussion on the ASUS C200 here – https://bbs.archlinux.org/viewtopic.php?id=185789 – after I found out that it didn’t want to boot any legacy OS. I’m interested the work here in this respect, only the links to this website have become 404’s and that discussion ended somewhere last month just at the time when the C200 was shipping. So I’m wondering if there is any special reason why that is so (something with this chromebook/firmware?). I’d like to do a little more with it the run Crouton (and also wouldn’t mind some testing if that can help). Greets!
SeaBIOS and Grub2 don’t currently support the eMMC card inside the Baytrail Chromebooks. I’m thinking of getting Jeltka to scan the eMMC and kexec the kernel on the eMMC. However, I had a hard-drive failure early this week and I’m still recovering from that, so, although I’ve purchased a Lenove N20p to test on, I haven’t done anything with it since then. It should only be a matter of time though.
The 404’s are there because I released test ROM’s which don’t work. I’ll let you know when I have something for the C200 worth testing.
Hello I was reading the discussion on the ASUS C200 here – https://bbs.archlinux.org/viewtopic.php?id=185789 – after I found out that it didn’t want to boot any legacy OS. Only the links to this website have become 404’s . So I’m wondering if there’s a reason for that? Regards
I already answered you yesterday –
SeaBIOS and Grub2 don’t currently support the eMMC card inside the Baytrail Chromebooks. I’m thinking of getting Jeltka to scan the eMMC and kexec the kernel on the eMMC. However, I had a hard-drive failure early this week and I’m still recovering from that, so, although I’ve purchased a Lenove N20p to test on, I haven’t done anything with it since then. It should only be a matter of time though.
The 404’s are there because I released test ROM’s which don’t work. I’ll let you know when I have something for the C200 worth testing.
Hi, John!
Thank you for your work!
But I need your help. I’m kind of suck on attempt to start your script on HP Chromebook 14. I’ve disabled write-protect status.
The error says “Warning: Failed to create the file getnflash_johnlewis_rom.sh: Read-only file system”.
How can I manage that?
Thanks!
Did you copy and paste the *whole* command? It sounds like you didn’t, otherwise you would be in a writeable directory.
Thank you for quick answer! Yeah, it was my mistake. Thanks!
So I’ve installed the latest seabios to my falco. A the moment I’ve also installed Ubuntu 14.04. I’ve found your script for my falco’s devices here https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/cros-haswell-modules.sh, run that. Currently my touchpad is working but there is an issue. I don’t know how to explain… It takes the whole finger (not just only the part of it like before) be on touchpad to move the cursor, so it is a little bit difficult to move it. So I guess touchpad has become way less sensitive than it was in ChromeOS. Is it a common behavior? And if it’s not how can I fix it?
Thanks in advance for answering that!
No problem. If you follow the second part of this article (the X11 stuff), it will sort the problem out.
https://johnlewis.ie/making-the-touchpad-work-on-a-hp-pavilion-chromebook-in-ubuntu-14-04/
Hi John,
Foremost, I have achieved success in installing your ROM into the BIOS on my HP Chromebook 14 (Falco).
For the benefit of your viewers, it was not as smooth and seamless as your video with Alex suggests. My experience was fractured and disjointed. It seemed that every step was stumbled through. I will allow my internet service isn’t the best in the world and that did nothing positive for all this.
I attempted all of the options for distributions (distro’s) as Ubuntu was my least favored of them, but as it turned out it’s the ONLY one that succeeded at completing the download!
So as I pointed out at the beginning, most importantly I am now freed of the operational environment of a developer mode and the risk of having all my files trashed by the inadvertant startup with an erroneous keystrike. That makes all the work I went through and implementation of your scripts worth the man weeks of time this effort has cost me.
Thanks again for your offering of these ROM scripts, without them, I wouldn’t advise anyone to consider a Chromebook for any off line use. I hope others will also make their monetary contributions to your cause, you’ve earned it!
Keep up the good work if you can and if you are able to add Linux-Mint to the distro offerings, that would be great!
Cheers,
Marc
Thanks for that, Marc. It helps to choose a URL closer to your physical location, when it asks you. Otherwise you can get stuck with a really slow download. Glad you got to a reasonable place, anyway. The Fedora/CentOS options don’t work because I omitted filesystem creation, which requires another update. I hope to get that out soon.
Thank you for putting all this together! Installing the new BIOS on my C710-2847 was flawless. Although the on screen messages were different, it worked great. Now I’ve got Lubuntu 14.04 running smoothly.
One note on the touchpad, after installing Lubuntu it didn’t work at all. I did some googling and tried several things. In the end, all I had to do to make it work was edit /etc/modules making it look like the following:
loop
lp
rtc
i2c-i801
i2c-dev
chromeos-laptop
cyapa
I noticed that the Fn key doesn’t register as a key press but installed xbindkeys-config and xbacklight and then used the magnifying glass key in conjunction with the function keys to add the capability for dimming/brightening the screen. Hopefully this helps someone.
Thanks again!
Mike