Crouton: How To Run Linux Applications In Chrome OS Windows Or Browser Tabs (Chromebook)

Crouton is a tool to easily install Ubuntu or Debian in a chroot environment on any Chromebook model. This article explains how to run Linux applications on top of Chrome OS (using Crouton) without running an entire Linux desktop.

Using the instructions in this article, you'll be able to open a Linux application in a Chrome OS window, or in a new Chrome browser tab.

It should be noted that Linux applications running in a Chrome OS window or tab via Crouton are not GPU accelerated.

Also, it's best to quit the applications from their File > Quit menu item, and not by closing the window by clicking on the X window button. By using the Quit menu item, the chroot exists properly, and you don't risk losing any settings you may have changed in the app you were using.

Atom editor running in a Chrome OS window via Crouton
Atom editor running in a Chrome OS window (on a Chromebook) via Crouton

To be able to launch Linux applications in a window on top of Chrome OS, or in a Chrome browser tab, you'll need to install the xiwi target, in case you didn't install it already. You'll also need the Crouton integration extension for Google Chrome.

1. Install the xiwi Crouton target

If you've already installed Ubuntu on your Chromebook using Crouton, you can add the xiwi target to an existing chroot by opening crosh on your Chrome OS (use Ctrl + Alt + T to open it), then typing:

shell
sudo sh ~/Downloads/crouton -t xiwi -u -n <chrootname>

Where chrootname is... the chroot name. This is usually the Ubuntu version codename - xenial by default (Ubuntu 16.04) unless you've specified a different Ubuntu version (like bionic for instance, which corresponds to Ubuntu 18.04 LTS).

If you don't know the chroot name, you can list all the chroots installed using Crouton on your Chromebook, using:

sudo edit-chroot -al

In case you only intend to use Crouton for launching single applications and don't want a complete desktop, you can avoid installing a desktop environment, and only install the xiwi target using the Crouton install command. So you can download Crouton, use Ctrl + Alt + T, then run these commands to install only the xiwi target:

shell
sudo sh ~/Downloads/crouton -t xiwi

A lot more about installing (and some basic tweaks) Crouton on your Chromebook in this article: How To Install Ubuntu Linux On Any Chromebook Model Without Replacing Chrome OS (Crouton)

2. Install the Crouton integration extension for Google Chrome

The Crouton integration extension for Google Chrome is required to be able to use the "xiwi" Crouton target. You can download the extension from the Chrome Web Store.

3. Running Linux applications in a Chrome OS window or tab

PyCharm running in a Chrome OS window
PyCharm running in a Chrome OS window

After you have a chroot with the xiwi target installed, you can launch a Linux application in a Chrome OS window. Open crosh on your Chromebook by pressing Ctrl + Alt + T, and type:

shell
sudo enter-chroot xiwi <executable>

Where executable is the application executable you want to launch. For example you can launch GIMP using:

shell
sudo enter-chroot xiwi gimp

If you have more than one chroot, you'll can specify in which one to launch the application, by adding -n <chrootname>:

shell
sudo enter-chroot -n <chrootname> xiwi <executable>

The chroot name is the Ubuntu version codename, with xenial (Ubuntu 16.04 Xenial Xerus) being default. Once again, if you don't know the chroot name, you can list all the chroots installed via Crouton on your Chromebook, using:

sudo edit-chroot -al

GIMP running in a Chrome browser tab
GIMP running in a Chrome browser tab

If you want to launch a Linux application in a new Chrome tab, use the -T xiwi option, like this:

sudo enter-chroot xiwi -T <executable>


But how to install applications when running the Crouton xiwi target without a desktop environment? In that case, open crosh by pressing Ctrl + Alt + T while in Chrome OS, and type:

shell
sudo enter-chroot

In case you have multiple chroots, specify the chroot name:

shell
sudo enter-chroot -n <chrootname>

And then use the same command as you'd use in Ubuntu to install an application, add a PPA, and so on (installing snap packages won't work though). For example install GIMP using:

sudo apt install gimp

1 comment:

  1. My chromebook (ASUS C202) only has a 16GB local drive, so I bought a 64GB SD card and installed Debian Sid using crouton. Using an SD card involves some quirks that aren't always clear. Installation is pretty straightforward from the online documentation, but to start the session

    sudo sh ~/Downloads/crouton -p 'media/removable/SD Card/bin/startxfce4'

    is what works for me. To update

    sudo sh ~/Downloads/crouton -p 'media/removable/SD Card' -n sid -u -t audio,xiwi

    works. This usually needs to be done if Google updates chrome os and will update some (all?) linux packages. I've also used apt-get to update linux packages. Last time my bluetooth went loopy and I never got it to work in crouton. Now the audio in crouton is not tied directly to the audio in chrome os.

    ReplyDelete