Skip to content

Instantly share code, notes, and snippets.

@dcassol
Forked from tgirke/crouton.md
Last active September 26, 2018 05:48
Show Gist options
  • Save dcassol/2b11c332b81e5944fd068f3651838688 to your computer and use it in GitHub Desktop.
Save dcassol/2b11c332b81e5944fd068f3651838688 to your computer and use it in GitHub Desktop.
Crouton

Crouton Install and Management


Table of Content

  1. Manuals
  2. Installation
    1. Chrome OS Channel
    2. Developer Mode
    3. Chrome Extension
    4. Install Crouton
    5. Useful Helper Commands
  3. Usage
    1. Start Crouton
    2. Switch between Chroot and Chrome OS
    3. Shutdown Chroot
    4. Update Chroot
    5. Delete Options
    6. Backup Chroot
    7. Software Installs
  4. Troubleshooting
    1. Problem with apt (or apt-get)

1. Manuals

2. Installation

i. Check Chrome OS channel

What Chrome OS channel is running on a Chromebook is not essentail for the Crouton install. However, it can become important later since things may be less stable if the developer channel is running. The Chrome OS channel can be checked and changed as follows: go to settings under Chrome OS (bottom right corner of main screen) -> select menu in the top left corner -> about Chrome OS -> detailed build information -> change channel. The resulting change channel window shows which channel is currently active. For more details see here.

ii. Enable developer mode

Note this will erase all local data. So back things up first. Instructions for enabling developer mode are here, and the details for specific Chromebooks are given here.

iii. Install Chrome extension

For better integraton with Chrome OS install Crouton Integraton extension. It is needed to run crouton within a Chrome OS session rather than in parallel.

iv. Install Crouton

  1. Download latest Crouton release from here https://goo.gl/fd3zc which comes form developer's repository here. For simplicity leave downloaded crouton file in Downloads folder.

  2. Open in Chrome browser crosh shell with CTRL + ALT + T and then type

    shell
  3. Now install crouton for the proper linux release specified under -r argument (xenial is the Ubuntu 16.04) along with proper targets. The latter are selected under the -t argument. The names and other details about Ubuntu releases can be looked up on this Ubuntu site. The chroot name can be specified with the -n option (default is name of chosen release, e.g. xenial). If the -e argument is added then the chroot will be encrypted.

    sudo sh ~/Downloads/crouton -r xenial -t x11,chrome,xorg,xiwi,keyboard,touch,unity,xfce -e # These are your most current targets; in the past you used unity,xfce,xiwi,keyboard,touch

v. Useful helper commands

Enter chroot from crosh shell

sudo enter-chroot

List targets installed in a chroot

sudo edit-chroot -al # Execute in Chrome OS after Ctrl+alt+t and then shell

List available linux releases

sh ~/Downloads/crouton -r list

List all available targets

sh ~/Downloads/crouton -t help

Add target to an existing chroot with -u option

sudo sh ~/Downloads/crouton -t xiwi -u -n xenial

Location of chroots

ls -al /usr/local/chroots/

3. Usage

i. Start Crouton

Run chroot in same Chrome OS session. This requires the Crouton Integraton extension (see above) along with the xiwi target.

sudo startxfce4 -X xiwi

or run in parallel mode

sudo startxfce4 or startunity # shortcuts for enter-chroot startxfce4

ii. Switch between Chroot and Chrome OS

To switch between chroot and ChromeOS use Ctrl+Alt+Shift+Back and Ctrl+Alt+Shift+Forward; or Alt+Tab when in same session.

iii. Shutdown Chroot

To shutdown choot, log out or shut down on the Ubuntu side as usual or issue Ctrl+c in crosh tab where you started chroot session.

iv. Update chroot

Check if there is a newer crouton version, run on Ubuntu side:

croutonversion -u -c # list installed and latest available version

Then shutdown Ubuntu and run in crosh shell the following command. This will update/upgrade all installed targets.

sudo sh ~/Downloads/crouton -u -n xenial 

v. Delete options

Currently, it is not easily possible to delete targets due to complicated interdendencies/histories of packages across targets!!!

To remove a chroot, one can use the following command(s).

sudo delete-chroot <my_chroot>
# sudo edit-chroot -d <my_choot> # Does the same; delete-chroot is just a shortcut 

vi. Backup chroot

Back up your chroot to a timestamped tarball in the current directory.

sudo edit-chroot -b xenial

Restore chroot from the most recent timestamped tarball. One can explicitly specify the tarball with -f.

sudo edit-chroot -r chrootname 

If your machine is new or powerwashed, one can use the crouton installer to restore a chroot and relevant scripts.

sudo sh ~/Downloads/crouton -f mybackup.tar.gz

vii. Install software within Chroot

Within a Chroot one should update and install software packages via apt or apt-get, see example below. Detailed instructions for using apt or apt-get are available on Ubuntu's AptGet/Howto. Installing software via Ubuntu's Software manager should be avoided since it creates often problems. The GDebi Package installer seems to work fine as an alternative.

sudo apt update && sudo apt install <my_software>

4. Troubleshooting

i. Problem with apt or apt-get

If apt update and/or apt install are not working then try the follwing troubleshooting steps. Additional help on this topic can be found here.

The autoclean command might fix the problem. Sometimes it may only work in a freshly started chroot session. So try restarting it if it fails, or start temporarily a chroot from crosh shell within a chrome browser tab with sudo enter-chroot, and then run update/install from there.

sudo apt clean && sudo apt autoclean # This might fix things
sudo apt update # or with && sudo apt upgrade

After running update also try this

sudo apt -f install 

Another reason could be a broken dpkg system. To fix this, run the following commands.

sudo dpkg --configure -a
sudo apt upgrade
sudo apt update

Reinstalling libcurl3-gnutls has also been reported to help.

sudo apt --reinstall install libcurl3-gnutls 

There are also reports that using more RAM on the Chrome OS side might help. For this just open a few data/process intensive tabs in Chrome. Also check if there are any broken PPAs in /etc/apt/sources.list.d.

My updates:

Linux Apps

https://www.androidcentral.com/how-install-linux-apps-your-chromebook

i. Click About Chrome OS. ii. Click Check for updates. iii. If necessary, restart the computer. iv. Type on the address bar: chrome://flags and press Enter. v. Search for Crostin: Experimental Crostini and select Enable. vi. Click Restart at the bottom of the screen. vii. Open Settings. viii. Click Linux (Beta) in the menu. ix. Click Turn on. Click Install. After the installation, open the Terminal. x. sudo apt update & sudo apt upgrade

Check kernel version

uname -a
Linux penguin 4.14.67-07156-gc116f2c8c400 #1 SMP PREEMPT Sun Sep 9 14:28:13 PDT 2018 x86_64 GNU/Linux

Check architecture

uname -m
x86_64

Check Release

cat /etc/*-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Install R 3.5.1

Debian:

sudo vim /etc/apt/sources.list

Add in this file: deb http://cran.rstudio.com/bin/linux/debian stretch-cran35/

Add the key ID for the CRAN network: Ubuntu GPG key:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9

## Debian GPG key:

sudo apt install dirmngr
sudo apt-key adv --keyserver keys.gnupg.net --recv-key 'E19F5F87128899B192B1A2C2AD5F960A256A04AF'

## Update the repository:

sudo apt update
sudo apt install r-base
sudo dpkg -i rstudio-xenial-1.1.456-amd64.deb 
##error: dpkg: dependency problems prevent configuration of rstudio:
 rstudio depends on libgstreamer-plugins-base1.0-0; however:
  Package libgstreamer-plugins-base1.0-0 is not installed.
  
sudo apt-get install libgstreamer-plugins-base1.0-0
sudo apt --fix-broken install
sudo dpkg -i rstudio-xenial-1.1.456-amd64.deb
rstudio 
#rstudio: error while loading shared libraries: libxslt.so.1: cannot open shared object file: No such file or directory
which rstudio 
#/usr/bin/rstudio
sudo apt-get install libxslt1-dev
rstudio


## If necessary, Download the libraries:

## http://ftp.br.debian.org/debian/pool/main/g/gstreamer0.10/libgstreamer0.10-0_0.10.36-1.5_amd64.deb
## http://ftp.br.debian.org/debian/pool/main/g/gst-plugins-base0.10/libgstreamer-plugins-base0.10-0_0.10.36-2_amd64.deb
## Install them with dpkg -i and that is it

Install Inkscape

sudo vim /etc/apt/sources.list
## deb http://deb.debian.org/debian-security stable/updates main
## deb-src http://deb.debian.org/debian-security stable/updates main
## deb http://ftp.debian.org/debian stretch-backports main
## deb-src http://ftp.debian.org/debian stretch-backports main

sudo apt-get update
sudo apt-get install inkscape

Install CWL - Debian

sudo apt install virtualenv
virtualenv -p python2 cwl
source cwl/bin/activate

sudo apt-get install python-dev #if it's not installed
pip install cwlref-runner

cwl-runner --version
##/home/danicassol/cwl/bin/cwl-runner 1.0.20180923172926
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment