Since the dawn of time…well, since the dawn of Chromebooks, we’ve wanted to take these notebooks and make computers out of them. Utilizing their speedy startup/shutdown times, their fast onboard storage and incredible battery life, our goal here is to successfully install a favorite Linux distro (in this case openSUSE Tumbleweed). Ah, the power! I should also point out that you can use this method to install other distros but not all are guaranteed to work.
Contrary to what you might think, Chromebooks are actually a pretty diverse lot and not all are created equal. For this particular project, I’m working with my Acer Chromebook 15 C910. Also, since this particular system has a removable SSD of a paltry 16 GB, I’ve replaced mine with a 128 GB model from Adata and followed the usual precaution of backing up Chrome OS to a flash drive. I recommend at least a 4GB flash drive, larger if you want to backup any data you may have stored locally on the machine.
Get ready to read a bit because there’s some explaining to do before we get too far into this. First, this operation is not going to make use of the Crouton script. It will not make use of a chroot instance inside Chrome OS. I would imagine you could partition the SSD after everything is set up for openSUSE Tumbleweed and install another OS if you like. In short, this is commitment. Bye-bye Chrome OS, at least for now. By the end of this project, you should be able to boot from USB with legacy BIOS much like you would with a standard PC. I experienced a few hiccups along the way, but I’ll detail those later in this piece and help you avoid those.
Next, it will involve an invasive hardware change. Here’s a list of what you’ll need to complete the entire process:
1. A flash drive with at least 4 GB of space keeping in mind that it will be wiped. So back up any information you might have on it.
2. A set of precision screwdrivers.
3. Another flash drive with bootable openSUSE Tumbleweed image. Use your favorite method on another Linux or Windows (if you must) PC to prepare the flashdrive.
4. A USB mouse just in case your trackpad doesn’t work during the Tumbleweed installation process. The good news is my trackpad worked right after the installation was complete.
First, you’ll want backup Chrome OS. So go to the Chrome Web Store on your machine and install the Chromebook Recovery Utility. Follow the instructions carefully since the app will request that you type in the model number for the specific Chromebook you’re backing up. In my case, the machine actually supplied the model number on-screen, so I simply had to type it in. If yours doesn’t, you can find the model number below the error message.
Insert your flash drive. Make sure you select the correct storage device from the dropdown menu. Then click ‘continue’. It’s not a long process; it takes only about ten minutes to complete. Grab a cup of coffee and read FreedomPenguin.com for a while.
Once the recovery utility has completed its task, your Chrome OS image should be complete and you can remove the flashdrive.
Next, you’ll place your machine in Recovery Mode, which will lead to you placing the unit in Developer Mode. This will give you access to use the Terminal on the Chromebook at root level. To do this, simply hold down the <esc> and Refresh keys while tapping the power button on the opposite side of the keyboard. The Refresh button has a symbol that looks like an incomplete circle with an arrowhead near the top.
Once up, you’ll notice a white screen with a warning and a big yellow exclamation point near the center. And, no, your Chrome OS isn’t missing or damaged. Whatever you do, don’t hit the spacebar. That’ll re-enable operating system verification and you’ll have to start the process to get into Developer mode again. “Ain’t nobody got time for that.”
Press <ctrl>+<d>. This combo isn’t on the recovery screen because they don’t want anyone getting into Dev mode unless they know what they’re doing.
As I mentioned earlier, the method we’re using is very different from the Crouton chroot method. It will involve actually removing the bottom of the unit and removing the write-protect screw. This will void your warranty like a “motherfather.” Linux people should be used to that kind of thing anyway. Just understand this before attempting.
Be prepared to remove more screws from this thing than you’ve probably ever removed from the bottom of a laptop in your life. The Acer C910 has a ridiculous number of the little guys on the bottom-18. I don’t like it anymore than you do. Bear in mind they also have tiny washers on each. They really don’t want you taking this thing off! Sorry for their luck.
The good part is the bottom panel isn’t really hard to remove. Just do it carefully, gently prying the tabs apart. I started at one of the narrow corners and it was pretty easy. You’ll be glad to know there are no surprises. The bottom removes cleanly with nothing attached.
Once the bottom panel is off, you’re going to locate the write-protect screw. It’s the largest screw on the motherboard, located near the bottom center, the side that’s next to the big battery. It’s surrounded by soldering points. This little jerk is a bit of a challenge and the head is easily stripped. So you’ll want to use a screwdriver with a small, shallow phillips head. Don’t give up. Unless you really like locking the read/write on your BIOS, you can toss the screw away.
Once the screw is removed, place the cover back on the bottom of the machine but don’t replace the 18 screws that secure it just yet. It’ll hold really well once you’ve snapped it into place and give you the time to check and see if you’ve removed the right screw.
Start the Chromebook back up, remembering not to hit the spacebar. Once the system is fully booted, hit the combo. This will bring up the Chrome OS Terminal. In there you need to type:
“shell”, excluding the quotation marks, of course.
You’ll see the prompt change from “crosh>” to “chronos@localhost / $”.
Now, type:
sudo flashrom –wp-status
You’re going to get a stern warning at this point that, if you’re a Linux user, you will find familiar. “Respect the privacy of others.” “Think before you type.” “With great power comes great responsibility.” How did Stan Lee get in here anyway?
Below the warning you’ll see an array of flashrom information and a message somewhere near the bottom reading, “WP: write protect is disabled”. If you see this then you’ve completed one of the hardest steps in this whole process. You’re well on your way.
At the prompt, type the following:
sudo crossystem dev_boot_legacy=1
Hit then type at the next prompt:
sudo crossystem dev_boot_usb=1
Keep your Terminal open.
What you’ve done here, as you may be able to guess, is enabled the computer’s ability to boot from USB as well as enabled legacy booting. I wish I could make it plainer than that. But suffice it to say it’s going to allow our next steps to work.
To quote Star Wars, here’s where the fun begins. We’re going to download the scripts that will replace the BIOS of the Chromebook with custom ROM called SeaBIOS. This operation is full of crucial steps, so follow along closely.
The following step contains a very long command from a website maintained by John Lewis, which also happens to contain a very handy table. On this table is a list of Chromebook models compatible with SeaBIOS and other valuable information regarding each machine’s compatibility. I extend him a huge thanks for creating this site.
Onto the task-at-hand. In the terminal you will type the following command line:
cd; rm -f flash_chromebook_rom.sh; curl -0 https://johnlewis.ie/flash_chromebook_rom.sh; sudo -E bash flash_chromebook_rom.sh
As the process starts you will be presented with the opportunity to donate some Bitcoin to John for maintenance of the site and further research. You can bypass this but I’d send him something to help keep this effort going.
After that, you will see a clever means of absolving him from anyone possibly bricking their Chromebook, since this is as close to a brain transplant as you’re going to get software-wise. You’ll have to type a phrase verbatim, observing case. This will allow the process of replacing the BIOS to continue. I was biting my nails at this point but thankfully the process only took a few seconds. Once you get a message reflecting that the installation of SeaBIOS was successful, you can move onto the next steps. Wipe the sweat off your forehead and continue.
If you have not done the following by now, get another flashdrive and create a bootable drive from which you will install Tumbleweed. I had done this previously so it was just a matter of inserting the drive and rebooting the machine. And biting my nails again.
If your system reboots, praise the Lord. You did it!
Now choose the option to boot from your flashdrive. You should at this point see the “infinity-looking” symbol for Tumbleweed. Next screen you will follow through with the steps for installing your new operating system. Simply follow the on-screen prompts (which I have to say are very well-done) to complete the process.
Also, unless you are a partitioning sorcerer, click the “Use Entire Hard Drive” button. This will destroy any lingering partitions and allow openSUSE to build its own. Currently, openSUSE will not install if there are pre-existing partitions on the drive. If you don’t do this then you’ll likely be stuck around the 96% mark and unable to boot the system. Like me. (I suffered for this.)
But wait! There’s more! Here are a few other things to keep in mind during and after your openSUSE installation process. The GRUB bootloader will be installed, which Chromebook seems to have a huge problem rendering. In fact, it will basically be invisible except for a few fragmented green and other color pixels at the very top of the screen preceded by several gray lines all smooshed together. I took a chance and just hit <Enter> and Tumbleweed began booting up. This will keep you out of startup process hell.
Another issue I ran into was during the installation of Google Chrome. There’s a text rendering issue in which the text is all but unreadable due to considerable vertical tearing inside the window. Pixels from the text will likely appear scattered. I updated the system and tried installing Chrome again and had no text rendering issues at least in that application afterward.
Updating is a crucial moment since these files will be latest available from the main repository. So it’s possible for things to break even if it’s the first task. In this case, I highly, highly recommend that you use the GUI method if you don’t know what you’re doing. I “kamikaze’ed” the Terminal method for this and, although it seems to have worked, I’ll now have to go through each app and see if/how they were affected by the update. Butterfingers.
I tested my sound by pulling up Chrome and going to my Google Play Music account. (Don’t start with me. I like it.) PulseAudio was doing its job very nicely and was taking advantage of the two big honking speakers flanking my keyboard. Sucker’s loud.
Adding some trusted software repositories would be a good idea. The goal here is to unlock the potential of the machine with a different operating system, but at the same time keep things within the confines of lower-end hardware specs. Essentially, we have a decent laptop that’s capable of a lot of light-to-medium duty tasks. Since a lot of us tend to work with those most frequently, this should serve as a convenient little satellite for a daily driver machine.
If you should ever want to return to Chrome OS, you can simply insert your Chrome OS recovery flashdrive and boot directly from it, following the processes thereafter. I must, however, disclose that I have not tried this yet. And I’m not going to. Besides, I have Chrome installed and if I ever want the Chrome OS experience again, I can install other desktop environments such as Budgie or maybe even CubOS, formerly Chromixium.
One final tip: Don’t hit the spacebar at startup unless you want to start all this all over again. I know I said that earlier. But unfortunately this is the yellow your power ring won’t work against.
Join me in my next article when I’ll attempt to install Solaris on my Chromebook. I’m kidding. That’s not going to happen.
Important: I just want to reiterate the importance of having a bootable Chrome OS flash drive in this instance. Don’t skip out on this step. If you need to start over you don’t want to get stuck without it. Also, you might want to go back to Chrome OS to try out all the cool Android apps on Chromebook when the compatibility wave finally hits your machine. It’s very important to follow all the steps carefully. I’d hate to see a bunch of bricked Chromebooks. I’m a huge fan of Chromebook.
Micheal Huff,
afik you don’t need to flash the RW_Legacy ROM to boot Linux distros, or even remove the rom protection screw. I know that some models of chromebooks are different, but for the most part this process is the same.
Put the laptop into dev mode, get to root shell in chromos, enable usb boot and legacy boot. Then put in your install usb, reboot, at the scary dev screen just +L, then escape, then select your install drive and go.
All that removing the screw and flashing RW_Legacy does is just so that you can change the gbb flags to set the boot order and change how long the dev screen shows for. Also by not removing the screw to flash the rom you don’t void the warranty (I’ve had long conversations with Dell about it).
Might I (politely) suggest an edit where you put the flashing roms, and removing screws to the bottom of your write up as bonus steps.
As always love your content, cheers mate.
Thanks!
Matt
Hey Bubba, how’s it going?
I know the method you’re referring to and there’s nothing I’d like more if it had worked. I tried it on both my Chromebook 15 and my Asus C300. It seemed that Google had beaten me to the punch, so it didn’t work. If it works for anyone else then they’ve probably held back on an update or many.
My rationale for making it a prominent solution was that the software-only method wasn’t working on two Chromebooks. It was also getting lengthy and my thought was to focus on what was going to work rather than mention what didn’t work.
If you have any other suggestions please lay it on me and help a brother out. Thank you. 🙂
Yo Micheal,
Yeah when you’re right, you’re right. Just went over to my old man’s place (was doing his yard work, did I mention that he is old?) Grabbed his Acer Chromebook 14 (CB3-431-C5FM) which came out 2 months ago. Put it into dev mode, hit ctl+L on the dev splash screen and nothing happened. Did more research and its seems this is not the norm. **Most** chromebooks come with seabios as part of coreboot, it appears that the only ones that don’t are Acer’s and the Pixel 2. (source: https://wiki.archlinux.org/index.php/Chrome_OS_devices#Models_without_SeaBIOS)
I guess it’s one of those things that Google leaves up to the OEM to decide how they want to implement it. Its a shame, hope this doesn’t become the norm. I love how on my Dell 13 (the one w/ the i3, 4GB RAM and no touch screen: http://www.dell.com/us/business/p/chromebook-13-7310/pd) if I have any issues I can just pop in the old OEM ssd, reboot, hit space, and send it into them w/o them being the wiser to the fact that I’ve never ran chromeOS on it.
Yeah, that’s what I was thinking as well. And I don’t blame the OEMs. Life’s tough enough. I’m just glad there are ways to circumvent lockdowns in many cases.
I just want to reiterate the importance of having a bootable Chrome OS flash drive in this instance. Don’t skip out on this step. If you need to start over you don’t want to get stuck without it. Also, you might want to go back to Chrome OS to try out all the cool Android apps on Chromebook when the compatibility wave finally hits your machine. It’s very important to follow all the steps carefully. I’d hate to see a bunch of bricked Chromebooks. I’m a huge fan of Chromebook.