True Ubuntu on Chromebook ARM
I have installed Ubuntu 13.04 on my desktop (runs like a charm). Then I used Crouton to install Ubuntu 12. 04 on my chromebook samsung (ARM). It also works quite well.
Here comes my question. Can we have a true Ubuntu (preferably 13.04) on my ARM chromebook?
It seems that the Crouton/Ubuntu is not 100% the real thing.
The best option would be to have the full Ubuntu 13.04 and remove the Chrome OS.
WARNING: The use of Chrubuntu is deprecated, and is dangerous to install on newer Chromebook devices.
Many of these links in this answer are also out of date.
You may continue to use this tutorial, but you use this tutorial at your own risk, with no guarantee of it working functionally.
It appears that you can't fully remove ChromeOS from a chromebook (well, you can but it's quite the struggle) but you can make it dual boot and make it boot into ubuntu by default. I'll show you the last method.
First make a backup of all you local files because everything stored locally will be deleted by entering developer mode (guides for entering developer mode for specific models besides the one covered here can be found here.)
Press and hold the Esc and Refresh keys together, then press the Power button (while still holding the other two keys). This will reboot your Chromebook into Recovery Mode.
When you get the yellow screen with the exclamation mark hit ctrl + d (This will bring up a prompt asking if you want to turn on Developer Mode.) Press enter (this will take about 15 to 20 min. You'll get a screen with a red exclamation mark but leave it be until it reboots into ChromeOS).
Turn it on but do not login. Make sure you have a WiFi or Ethernet connection configured at this point. 3G/4G is not recommended. Press CTRL+ALT+=> (=> is the forward arrow where the F2 key would be on a PC). Do not use the normal CTRL+ALT+T method to get a shell. Use the CTRL+ALT+=> method while no one is logged in.
Login as user chronos, no password is needed.
-
As the chronos user and without having changed directories or run other commands, run:
curl -L -O http://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/chrubuntu-install.txt; sudo bash s9ryd
(There is a new script with a new link. If you still want to use the old version you'll have to replace the new link with the old link. Use this script for old devices like Acer C7 and Samsung 550.)curl -L -O https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/chrubuntu-seabios-install.txt; sudo bash 9sgchs
Make sure you have the command exactly right. The -O
and -L
after curl are both capital letters. If you get a "not found" error, make sure you have Internet connectivity and you're typing the command correctly.
You'll be prompted with some information about your Chromebook.
You may need to run an additional command to install a developer BIOS on your Chromebook.(This is fixed and now integrated in the script that the command will download. You can however still use the old link so I left it there with a strike through line). Press Enter to continue.The Chrome OS stateful partition where your data and settings are stored is just short of 11gb by default, the script shrinks the stateful partition to make room for ChrUbuntu. You can choose to give ChrUbuntu from 5gb up to 10gb in 1gb increments (Note: If you've installed a larger SSD in your Chrome device, your max number and recommended max will be larger). I recommend not going higher than 9 as 10 leaves Chrome OS with very little free space (less than 1gb).
Once you've entered a number, your hard drive will be repartitioned. After awhile it will reboot and re-initialize the stateful partition. This process takes 2-15 minutes and then the Chromebook reboots again and shows you the Welcome screen you got when you first turned on your Chromebook out of the cardboard box.
Go through the Chrome OS setup process again until you get to the Google login page. You'll need to have a WiFi or Ethernet connection again at this point. Now follow steps 6 through 8 again. This time the script will see that you've already made room for Ubuntu and start downloading ChrUbuntu.
Pro Tip: Here's where you can install other versions of Ubuntu! Just specify the preferred Ubuntu flavor and version at the end of the command:
curl -L -O https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/chrubuntu-seabios-install.txt; sudo bash 9sgchs [flavor] -u [version] -a [argitecture] -t [target-disk]
You can display available "flavors" using the following command:
curl -L -O https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/chrubuntu-seabios-install.txt; sudo bash 9sgchs -h
For example:
curl -L -O https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/chrubuntu-seabios-install.txt; sudo bash 9sgchs xubuntu-desktop -u lts
This will install Xubuntu and the latest LTS release (12.04.2 as of writing) rather than a 13.04 Unity desktop. Some possible flavor alternatives to Unity are:
- default (ubuntu-desktop on x86, xubuntu-desktop on arm)
- kubuntu-desktop
- lubuntu-desktop
- xubuntu-desktop
- edubuntu-desktop
- ubuntu-standard (no GUI installed)
Some possible versions are:
- lts -- latest LTS Ubuntu release, 12.04.2 as of this writing
- latest -- latest official release, 13.04 as of this writing
- dev -- unstable development Ubuntu release, daily alpha build of Saucy Salamander 13.10 as of this writing <-- Experts only! If this breaks, don't be surprised
- 12.10 -- Ubuntu 12.10 release
the possible architectures (-a option) are:
amd64 -- default i386
[target-disk] is the last argument (specify "default" and "latest" for the first two arguments if you just want to install the defaults to an external drive). An example installation to SD Card might be:
curl -L -O https://googledrive.com/host/0B0YvUuHHn3MndlNDbXhPRlB2eFE/chrubuntu-seabios-install.txt; sudo bash 9sgchs default latest /dev/mmcblk1
11) During the installation (within the first 5-15 minutes). You'll see a few prompts to select your encoding, locale and language. For most people, the defaults should be fine, just press Enter but change them if you'd like. Later on, you'll be prompted to decide where GRUB should be installed. YOU MUST CHECK THE BOX NEXT TO /dev/sda in order for boot to work!
12) After all of the Ubuntu files have been downloaded, installed and configured, the script will make a few more updates and then prompt you to reboot.
13) At the developer mode screen press CTRL+L. You'll see ChrUbuntu start up! The username is "user" and the password is "user". (You can also press CTRL+D to boot into chrome os.)
14)(This might not be necessary anymore but I'll leave this here for people that still need it) Right now you're in ChrUbuntu but if you reboot, you'll be back in Chrome OS. This is a safety feature, if ChrUbuntu won't boot, you want to be able to get back into Chrome OS to fix it. To make ChrUbuntu the default, run:
sudo cgpt add -i 6 -P 5 -S 1 /dev/sda
On the ARM Chromebook, replace /dev/sda with /dev/mmcblk0. The password is "user". It should be possible to run this from ChrUbuntu or Chrome OS.
To make Chrome OS the default again, either turn off Developer Mode, or run:
sudo cgpt add -i 6 -P 0 -S 1 /dev/sda
For reference check chrubuntu
Also note that the trackpad is only supported with 13.10 and higher. For now stick with 13.10 or use a USB mouse.
*Disclaimer Intel Chromebooks Only*
YOU CAN INSTALL THE FULL VERSION OF UBUNTU NATIVELY ON A CHROMEBOOK AND REMOVE CHROME WITHOUT USING CHRUBUNTU
I'm seeing a lot of people, in questions like these, answer saying that you can't remove ChromeOS from a Chromebook, install straight Ubuntu due to Chrome's custom BIOS not allowing it, or you have to install it using Chrubuntu which is deprecated and dangerous to install on newer machines.
I want to clear that up and say you can.
How?
I flashed SeaBIOS on my Chromebook and installed Ubuntu 17.04 from a flash drive, however, I think that SeaBIOS also allows you to install an OS from Jeltka (I'm not sure what that is and I didn't use it; I already had the flash drive made).
SeaBIOS boots from your local hard drive by default but, as it's loading, you can tap ESC and boot from any device listed. This lets you run a native OS as well as any other OS that is compatible with your hardware from a USB.
To replace Chrome's custom ROM and BIOS and install different OSs, you have to first put your Chromebook into
Developer Mode:
To invoke Recovery mode, at login screen, you hold down the ESC and F3 keys and tap the Power button.
To enter Dev-mode you first invoke Recovery, and at the Recovery screen press CTRL + D (there's no prompt - you have to know to do it). It will ask you to confirm, then reboot into dev-mode.
Dev-mode works the same as always: It will show the scary boot screen and you need to press CTRL + D or wait 30 seconds to continue booting.
Hardware
After this, you will need to bridge the write protect jumper with your chromebook off and preferably with the battery out!
NOTE
This is where the write protect jumper is on a Parrot Chromebook (Acer C710); it will probably be located in a different place on your Chromebook if it's a different model. That little white square at the end of the pink tab is the jumper (it's under a black tab that you'll have to peel off); you can probably bridge it with a bit of solder, if you want it permanent. I used a piece of aluminium foil.
Software
Once you have done this, you'll need to reboot your Chromebook, open your browser, then press CTRL+ALT+T to open the shell.
MAKE SURE YOU READ LEWIS'S SUPPORTED MODELS MATRIX
Once you have read the developer's supported models matrix, you can run the following command in the Crosh shell as a normal user not root
Command
cd;bash <(curl https://johnlewis.ie/flash_cb_fw.sh)
Last Bit
Finally, follow the on-screen instructions according to your model and what the matrix says it supports.
Once you have done all of this, you will be able to install an OS from USB to your SSD, run an OS from live USB, or, now, again, I'm not sure how this works so you should do some research (I couldn't find much when I was looking), you can boot from payload which, I think installs an operating system of your choice from the ones available.
Live Flash Drive
If you want to boot from a USB, here are instructions on how to boot from a USB and install the operating system on the USB so you can use it on any computer.
Making an Ubuntu Installer Flash Drive
Here's how to make the Ubuntu installer with Windows.
Here's how to do it with OSX.
Here's how to do it with Ubuntu if you have it on another computer or something.
Downloads
Here is straight Ubuntu. This is the full version with all the default packages, etc. Ubuntu 16.04, the Long Term Support release, uses the UNity desktop environment and Ubuntu 17.10 uses the GNOME Desktop Environment. I recommend using one of these or GalliumOS, discussed later, unless you speak Chinese, in which case, Ubuntu Kylin would probably be the better option.
Personally, this is my opinion, I would only be concerned with flavours, to start off with, if you have a really old computer; then, Lubuntu might be the better option. Flavours are really fun to test out, see which ones suit you more (or less), etc. Personally, I prefer Ubuntu GNOME but it does use more RAM (in my experience) than Ubuntu with Unity (default). Just make sure you read the descriptions and look at screenshots for all of them before blindly choosing one; It's annoying to have to go back and reinstall stuff.
EDIT: 15-10-17: I have just found/tried/installed GalliumOS and it runs even better than Lubuntu does. It also has full support for ChromeOS devices so the touch pad issue below doesn't apply. It is also further optimised for ChromeOS devices because it is based on Xubuntu. I am really enjoying it because it's fast, beautiful, and has full hardware support, unlike any other Ubuntu flavour/derivative I've found. In addition to the other optimisations, the keyboard is entirely remapped so all of your brightness, volume, media control keys, etc. function properly instead of just sending the FX signal.
Note
On an Acer C710 (Parrot Chromebook), the touch pad won't work (I'm working on installing the Ubuntu-modified ChromeOS touch pad drivers) and neither will the brightness keys, volume, refresh button, etc. I'm not sure what the issue is there yet, but I am working on it and, if you do what I've said here, and want the drivers/keyboard-fix-stuff, ping me and I'll edit those into the answer once I've figured it all out.
Also, you might want to backup any important files that you have to Google Drive or something; when you install SeaBIOS, all of your files will be erased and unrecoverable.
As I've only done this on a C710 (Parrot) Chromebook, I cannot attest to what will/won't work on other models but you run the same risk putting Ubuntu on a Chromebook as you do with putting Ubuntu on a different computer; some features (WiFi, Bluetooth, Touchscreen, Touch pad, etc.) may not work due to missing drivers. All you'd have to do is find those and install them or modify the ones you currently have;
UPDATE: 15-10-17
I have found the drivers! (sort of)
GalliumOS (referenced above for its compatibility) comes with out-of-the-box touch pad support.
For the purpose of clearing up some confusion, some points of consideration.
Crouton is definitely not native Ubuntu, as it's a chroot, no confusion on this point.
ChrUbuntu is native Ubuntu, as it doesn't use a chroot, although I would say the installation is hacky at best. When I think native Ubuntu, I think the root filesystem is from Ubuntu. Questionable is the usage of the ChromeOS kernel, but it appears this was due to the native Ubuntu 12.04 kernel lacking the hardware support.
Things have changed however, from the time of 12.04, which would be expected as 12.04 was the LTS release. I would recommend against using the official ChrUbuntu, as you should be using a newer Ubuntu release. The next LTS release 14.04 will include Samsung ARM chromebook support in it's kernel, but we have to wait until it's officially released.
To install Ubuntu 13.04, another guy has created a very usable installation script. Check out it's github repository https://gist.github.com/vvuk/4986933 . I actually believe he's calling an Lubuntu ac100 base image, but I don't see why another one of the ac100 images couldn't be called. Apparently the script then removes the ac100 specific packages, and adds in some of the samsung Chromebook packages. In addition it appears the new Ubuntu releases even have kernel packages, and they appear to be working correctly.
Personally I just upgraded my installation to the newly released 13.10, from the script installed 13.04, and it appears to be in the same working condition. However I would always recommend against an upgrade, if an actual re-installation is possible without significant hassle. Due to this being for ARM, and an updated script being not yet available (Please recheck for yourself), Upgrading appeared to be a reasonable consideration.
Chromebooks have had Linux support built in for awhile now. The feature used to be called "Linux Beta" but now they've dropped the "Beta" out and it is simply called "Linux".
This tutorial will get you started.
There are few key points:
- No need to root or dual boot.
- Linux runs in a separate section keeping Chrome applications "safe" from Ubuntu.
- Debian/Ubuntu support is baked in so you can already use
sudo apt install
and all the other commands you are familiar with. - It uses Wayland so any programming tools like
xprintidle
,wmctrl
andxdotool
have to replaced.xrandr
is not supported. - At anytime you can wipe out your Ubuntu and give that disk space back to Chrome OS.