Installing Ubuntu on Acer C720 Chromebook and dual boot with Chrome OS



Chromebook is a marvelous piece of laptop hardware with awesome Chrome OS installed out of box. Security, Simple UI, blazing speed boot time and performance makes it a money worth to spend. But it has a catch – it needs good internet connection and you should be willing to store your data online like Google Drive. Recently Google keeps adding a lot of offline support, still it is a work in progress. It supports Cloud printers only – you can’t connect your USB or Network printer to print.

Having this background here is a way to utilize this Chromebook more efficiently with another full fledged OS installed along with Chromebook. Ubuntu Linux is the OS of choice here, which can provide all missing features without sacrificing the performance. I have a Acer C720 Core i3 Processor with 4GB RAM and 32GB SSD. Here I am going to share how I installed Ubuntu on this Chromebook along with Chrome OS so that I can dual boot. To satisfy my home users I need to install both the OS. A lot of documents available online (refer at end of post) to get it done. This is my attempt to summarize everything I did.

acer-c720-3404There are two approaches to get it done. One is ChrUbuntu and another one is Crouton. ChrUbuntu is like a standard dual boot in any PC, which partitions the SSD for Chrome OS and Ubuntu. So you need to select either of these on boot screen. Where as in case of Crouton, it is a chroot-ed environment (chroot is nothing but have running two different linux distribution root file systems on top of a one single Linux kernel instance). This makes switching between Chrome OS and Ubuntu is just pressing a combination keys on keyboard. In my case I need a complete standard Ubuntu installation, so I preferred ChrUbuntu. 32GB SSD made it as a easier selection.

Disclaimer: This guide is for your reference only. You may end up breaking your warranty terms and lose warranty – follow at your own risk. I am not responsible for any claim based on this post.

Chromebook Recovery USB drive:

Here we are going to follow this guide on preparing Recovery USB drive, so that it will be useful to revert back everything normal in case something goes wrong during this hack work.

  1. Install Chromebook Recovery Utility from Chrome Web Store on your Chromebook.
  2. Insert USB drive or SD card of minimum 4GB on Chromebook.
  3. Run the installed application and follow the instructions to prepare this recovery drive. Keep it safe.
Chromebook Recovery Utility

Chromebook Recovery Utility

Enabling Developer Mode:

Here we follow Google’s document on enabling Developer mode so that we have permission to hack the system – like root shell access and installing Chrome OS or any other OS. Follow this guide from Google Chromium project for Acer C720. In case your Chromebook is different here is the complete list of devices.

  1. Shutdown Chromebook.
  2. Press Esc + Refresh + Power button to boot into Recovery mode. It will display “Chrome OS is missing or damaged”. Don’t panic.
  3. Now press Ctrl+D (screen won’t show this instruction) and confirm again to “Enter” Developer mode (Dev Mode). This will wipe out all data in Chrome OS.
  4. Now you should get scary Dev Mode screen. Again press Ctrl+D or wait 30 seconds to Chrome OS initialization screen. Follow the screen till it shows Login screen. Don’t login there you stop.

Ensure that you have configured Wifi network so that device can connect to internet.

  1. Press Ctrl + Alt + -> keys to get root shell.
  2. Login as user “chronos” without password.
  3. On root shell, run “sudo crossystem dev_boot_usb=1 dev_boot_legacy=1” so that you can install linux and boot from USB too if you want.

Installing the Ubuntu through ChrUbuntu:

Now you are in root shell continuing with previous steps.

On root shell, run “curl -L -O http://goo.gl/9sgchs; sudo bash 9sgchs” to get installation script from internet and run the same. Note: This script is for Intel Haswell or Core i3/i5/i7 processors only.

ChrUbuntu Installation on root console

ChrUbuntu Installation on root console

  1. Answer the prompts if any. The one which is important is selection of Partition size for Ubuntu. Whatever be your SSD size, leave at least 8GB for Chrome OS and allocate rest for Ubuntu. In my case it is 32GB SSD, so I entered 24GB as partition size for Ubuntu.
  2. It should do preparation work for installation.
  3. Once rebooted follow the Chrome OS initialization screen again till Login screen appears.
  4. Press Ctrl + Alt + -> keys to get root shell.
  5. Login as user “chronos” without password.
  6. On root shell, run “sudo crossystem dev_boot_usb=1 dev_boot_legacy=1
  7. On root shell, run “curl -L -O http://goo.gl/9sgchs; sudo bash 9sgchs -m ubuntu-desktop -u lts -a amd64 to install Ubuntu Desktop of latest LTS version on this amd64 architecture machine. For other options run “curl -L -O http://goo.gl/<script_name>; sudo bash <script_name> -h” which will list more details help screen.
  8. Now it will start downloading all packages and installing.
  9. It may prompt for grub installation device – in such case select “/dev/sda”.
  10. Once installation completed, Chromebook will reboot and show Dev Mode boot screen. Installation is done. Here you press “Ctrl + D” for Chome OS and “Ctrl + L” for Ubuntu Linux. Default user name is “user” and password is “user” for Ubuntu.

Tweaks to enhance boot screen:

There are a few tweaks we need to do improve user experience. Here are the problem we need to address.

  1. On Dev Mode warning screen if you press “Space bar” and “Enter” – it will enable OS Verification, which in turn will wipe out entire Ubuntu Linux installation. This is a major issue to address.
  2. You may want to boot to Ubuntu by default instead of Chrome OS.
  3. You don’t have patience to wait for 30 seconds to auto boot Ubuntu.

So you need to pass following flags to SeaBIOS to address all above issues:

GBB_FLAG_DEV_SCREEN_SHORT_DELAY 0x00000001
GBB_FLAG_FORCE_DEV_SWITCH_ON 0x00000008
GBB_FLAG_FORCE_DEV_BOOT_LEGACY 0x00000080
GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY 0x00000400

These flags form 0x489. The above settings will eliminate the risk of Signature Verification ON, make Ubuntu as default OS and wait time of 2 seconds only.

Here is how to do it. It involves two steps. First one is to disable Write Protect of SeaBIOS Flash ROM through physical hack and next is to program the above said flags.

How to disable Write Protect:
Write Protect Screw on Acer C720

Write Protect Screw on Acer C720

  1. Remove all screws on bottom of Acer C720 Chromebook including the one under warranty sticker. Be warned that this will end up losing warranty of this Chromebook.
  2. Remove the Write Protect Screw on PCB as shown by the picture above. Keep this screw safe. Note: You can place this screw back to this space again after programming the Flash ROM with modified settings as shown in next section.
  3. Place the cover back and screw them firmly.
How to program the flags:
  1. Boot the Chromebook – On Chrome OS screen, press Ctrl + Alt + -> keys to get root shell.
  2. Login as user “chronos” without password.
  3. Run “sudo /usr/share/vboot/bin/set_gbb_flags.sh 0x489
  4. Run “sudo reboot” to reboot the Chromebook.
Acer C720 Chromebook Flash ROM

Acer C720 Chromebook Flash ROM

Now you have Acer C720 loaded with Chrome OS and Ubuntu Linux dual boot with Ubuntu as default. Have a nice time!

References:

  1. Chromebook Recovery USB
  2. Official ChrUbuntu guide
  3. Dev Mode enabling and Write Protect disabling
  4. SeaBIOS flags and flashing ROM

 



Share this post


Facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

6 comments

  • Using Chronos as the username didn’t seem to work. I kept getting an invalid username or password error. Maybe it’s different for different versions of the C720 (Celeron vs. i3 and whatnot)?

  • Thank you for the writeup.

    I tried it but I ended up installing ubuntu with no gui. This happened inspite of the ubuntu-desktop flag. In other words, I did not try ubuntu-standard yet still no gui.

    Do you have an idea why that is the case?

    Thank you.

  • The post are helpfull to Installing Ubuntu on Chromebook, but there are several screenshot needed to understand the post easily

  • Thanks for the tutorial – just a small point which doesn’t in any way detract from your article. It is now possible to print via your network IF you have a compatible HP printer. HP recently launched an app in the web store – HP Print for Chrome – which will cut out all the cloud print heartache for certain of their printers (in my case a “Classic” printer as Google call it – HP Deskjet 3050 – which is NOT a Cloud printer). It works fine for me on my home network and I can also scan as well.
    HP have provided a list of their printers with their print processes here – http://support.hp.com/us-en/document/c03722645 . Thanks again for your excellent article. John (I actually run Ubuntu via Crouton on a USB as I need one banking program which will not run on a Chromebook)

    • Thanks, John. This is awesome news. This is the major reason why I thought of dual boot with Ubuntu. I have been waiting for this solution since I bought my Chromebook and HP Printer. I installed it works fine and speedy. Thanks again for your visit and valuable comment. Let me make a post on this.

    • Hi John, I don’t see scan option. How did you scan from HP Printer? Any hint?