On the other hand, Crouton uses chroot to install a full-blown Linux OS (almost), making it much easier to maintain. Take Ubuntu for example, the solution to almost any problem is available online.
Then there is Chromebrew, a package management tool for the native ChromeOS shell.
It is similar to homebrew on Mac and its command is
So far I haven’t experienced any problems with its package upgrade.
After using them for several months, I have a strong inclination to use
It has one less layer of indirection, and its graphics support feels more native.
The resolution of Crouton graphics is either too high or too low.
(Maybe it’s tunable by other means. The only way I know is to toggle the HiDPI
option in the Chrome crouton-integration extension.)
I routinely use the installtions of
vscode in Chromebrew, which all work great.
The only problem I ran into is with
vue. So I have them installed
inside the Ubuntu 18.04LTS in Crouton.
It’s totally possible that they work in Chromebrew too and I just didn’t
try hard enough.
As a side note, Google started Project Crostini to support native Linux apps inside Chrome OS. It uses container technology and does not even require developer mode. I may give it a try when my Samsung Chromebook Pro is officially supported.
To install Chromebrew, run the following command (copied from their Github page)
curl -Ls git.io/vddgY | bash
The default installation includes quite many packages, for example,
I also installed a newer
crew install vim
For my Samsung Chromebook Pro,
python3 and the new
vim are not exposed, and
I need to change my
.bashrc to alias them.
They are all in
I also installed
jekyll and my blog runs locally at
gem install bundler jekyll
Note that some packages need extra configurations to be saved in the
~/.bashrc file. These instructions are printed as blue text at the end of the
crew install <package> execution.
sommelier is a prerequisite for
code (vscode) and it has
a few configurations to go into the
So is the
vscode installation didn’t work on my Chromebook. The Chromebrew team
gave me the following trick to resolve it.
crew remove eudev && crew install eudev
One annoying thing is that vscode crashes after closing the Chromebook lid. (Again it may be a result of other tuneups I did.) To restart, use
stopsommelier && startsommelier && code
For installation, I followed Miguel Grinberg’s post
One minor difference is that I installed Ubuntu 18.04LTS instead of the default 16.04LTS. To see the available Linux releases, use (assuming crouton script is downloaded)
sh ~/Downloads/crouton -r list
The output on my shell is
chronos@localhost / $ sh ~/Downloads/crouton -r list Recognized debian releases: potato! woody! sarge! etch! lenny! squeeze! wheezy jessie stretch buster sid Recognized kali releases: moto! kali! sana! kali-rolling Recognized ubuntu releases: warty! hoary! breezy! dapper! edgy! feisty! gutsy! hardy! intrepid! jaunty! karmic! lucid! maverick! natty! oneiric! precise! quantal! raring! saucy! trusty utopic! vivid! wily! xenial yakkety! zesty! artful* bionic* Releases marked with ! are upstream end-of-life, and should be avoided. Releases marked with * are unsupported, but may work with some effort.
Although Ubuntu 18.04LTS (Bionic Beaver) is listed as unsupported, it runs fine on my Samsung Chromebook Pro. Overall, my installation command is
sudo sh ~/Downloads/crouton -r bionic -t xiwi,xfce
xfce is a light-weight desk manager.
xiwi is a must-have to integrate the Linux OS better into the Chrome OS.
xiwi work, one needs to install crouton extension to Chrome as well.
More tips on
xiwi can be found here.
xiwi, the X11 rending is done by the
(if you use my installation command above,
xorg is NOT installed).
xorg rendering, one can switch between Chrome OS and Linux OS using
ctrl+alt+<forward/backward (the keys next to escape)>.
On my Chromebook, everything looks extremely small with the default
xfce4 desktop setting.
It also seems to freeze very briefly every now and then.
Thus I opted out of
xiwi, the Linux OS becomes an app (similar to the Android apps in Chrome OS),
making it much easier to switch OS.
One can even run a Linux GUI inside the Chrome browser tab.
The visual quality is worse than the
xorg rendering or the native Chromebook look.
To get high resolution rendering, click on the Crouton extension and check HiDPI.
But then everything looks too small again.
The brief freeze goes away with
xiwi rendering though.
In case you want to get rid of an installed release, run
sudo delete-chroot <name>
If you just need a Linux terminal, run
For vim users, one annoying thing is that
ctrl+w is captured by Chrome as
closing the tab. The workaround is to expand the tab in full screen mode.
If you need a graphic desktop environment, use
sudo startxfce4 -b
-b means “run in the background” so that the tab in the Chrome browser is still usable.
To run vscode in a browser tab, use
sudo startxiwi -T code
This vscode looks worse than the one in Chromebrew due to the graphics issue. I basically don’t use the graphic part of Crouton at all nowadays.