Install Cinnamon on a Chromebook with Crouton

I really love using Crouton on my Chromebook Pixel LS 2015. I was sad to see that there is no cinnamon desktop environment target with the latest versions of crouton. Below is what I did to get Cinnamon on my chromebook. Much of what I did was taken from https://gist.github.com/sohjsolwin/5939948

  1. Create a base chroot
  2. Enter your chroot
sudo apt-get update
sudo apt-get install software-properties-common python-software-properties
sudo add-apt-repository ppa:tsvetko.tsvetkov/cinnamon
sudo apt-get update
sudo apt-get install cinnamon

Once Cinnamon was installed I needed to know how to start it manually. Thanks to the Arch Linux forums for explaining it. You have to create a .xinitrc file in your home directory within your chroot.

echo "exec cinnamon-session" > ~/.xinitrc

Trying to manually start cinnamon by typing startx didn’t work – I got a blank screen and had to hard reset to get anything to come back. Thanks to github I learned you need to use xinit instead of startx.

Lastly, we need to create a suitable startcinnamon script.

wget https://gist.github.com/sohjsolwin/5934362/raw/f68fc0942798902a0bd48f40c17dc0cd5cf585ea/startcinnamon

Modify the file to remove the startx command with xinit. Also remove everything after xinit. My file is as follows:

APPLICATION="${0##*/}"

USAGE="$APPLICATION [options]

Wraps enter-chroot to start a Mint session.
By default, it will log into the primary user on the first chroot found.

Options are directly passed to enter-chroot; run enter-chroot to list them."

exec sh -e "`dirname "$0"`/enter-chroot" "$@" xinit

Make this file executable (chmod +x startcinnamon) and move it to the /usr/local/bin directory of your chromebook (not your chroot.) Now all you need to do is enter

sudo startcinnamon

and your cinnamon desktop should come up!


 

Update 2016-01-04

These two scripts seem to work a little bit better. Place this one within your chroot under /usr/local/bin/startcinnamon:

#!/bin/sh -e
# Copyright (c) 2015 The crouton Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Launches GNOME; automatically falls back to gnome-panel

exec crouton-noroot gnome-session-wrapper cinnamon

Place this one in /usr/local/bin outside your chroot (on your chromebook itself.)

#!/bin/sh -e
# Copyright (c) 2015 The crouton Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

set -e

APPLICATION="${0##*/}"

USAGE="$APPLICATION [options]

Wraps enter-chroot to start a GNOME session.
By default, it will log into the primary user on the first chroot found.

Options are directly passed to enter-chroot; run enter-chroot to list them."

exec sh -e "`dirname "\`readlink -f "$0"\`"`/enter-chroot" -t cinnamon "$@" "" \
    exec startcinnamon

35 thoughts on “Install Cinnamon on a Chromebook with Crouton”

      1. Thanks, might give it a try then.

        It’s a pity that crouton no longer supports Mint, the most popular Linux distribution (according to Distrowatch).

        1. Yes, it is unfortunate that they don’t. From what I’ve read, they supported it in the past but they were using an official ppa which disappeared. The crouton developers decided to pull cinnamon support until an official ppa of cinnamon was created.

  1. Hi, I’m attempting this on my new Toshiba Chromebook 2 and I’m stuck at this part:

    “echo “exec cinnamon-session” > ~/.xinitrc”

    From reasing the archlinux info. at your link I see that we need a .xinitrc file in our home directory and that it needs to exec cinnamon-session in it. If I’m reading this right, that command creates the file with the line in it?

    OK, then we need to create the startcinnamon script with the wget command. Running that command gives me an output:

    “startcinnamon: Read-only filesystem

    “Cannot write to ‘startcinnamon'”

    So does that mean it downloaded that file and placed it somewhere? That’s the part that’s not clear to me. And I don’t know how to access my hidden directories (either Linux or Chrome). In LM17 I usually do “sudo nemo” when I need to get in & do stuff that needs root permissions but there is nothing showing in the default file manager in Chrome.

    Thanks for your help.

    1. Yes, the echo command creates that file in your home directory. Alternatively you could use vi or emacs or any other text editor to input the string into that file.

      As for the read-only filesystem error, you must be issuing the wget command from somewhere not writable. You can issue the “pwd” command to show exactly which directory you’re in, or better yet, simply type issue the “cd” command to return you to your home directory, then try the wget command again. If you get the read-only error when you’re in your home directory, you’ve got a problem with your chroot / chromebook setup and it’s probably best to nuke it and start over.

  2. Hey, trying this again. When I type sudo startcinnamon it just goes back to the prompt. No error or anything, but no cinnamon (that I can see – maybe no X11?) I have verified that the xinitrc file is there and has exec dinnamon-session in it, and the startcinnamon file is there with the right stuff in it and is executable.

    I did see a warning during the Cinnamon install that said: “Gconf Warning**: Client failed to connect to the D-BUS daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11”

    The Cinnamon install also hung at processing triggers for ureadahead. I tried reinstalling but it said the latest version was already installed.

  3. Realized that I had not entered chroot before making the .xinitrc file. The install still stopped at ureadahead. Starting cinnamon failed and there was an error that I was missing nm-applet. Entering chroot and apt-get install network-manager-gnome fixed that & now Cinnamon starts.

    1. That problem is mainly a failure of my site’s theme. It looks like a new line but it’s really on the same line as the items above it. python-software-properties is a package you need to install.

      “apt-get install python-software-properties” should fix that problem for you.

  4. I am a little confused.
    The steps you took are after a linux version is installed, and then converted to the cinnamon desktop?
    If so what was your initial installation.

    Thanks

  5. Great guide, especially for those of us who are new to Linux and want to be in a DE that’s more familiar and intuitive than unity.

    However, I am unclear how to make the files executable… How do I do that?

    Also how do I modify the system files inside ChromeOS?

    1. In Linux you make files executable by issuing the “chmod +x ” command where is the filename you want to make executable.

      To edit files inside ChromeOS you need to have your chromebook in developer mode (more on how to do that here: https://techblog.jeppson.org/2015/07/install-ubuntu-chroot-on-your-chromebook/ ) then you press CTRL + ALT + T and enter the “shell” command. It will give you a shell where you can use commands like echo and vi to modify files there.

      Hope this helps!

      1. Hello Nicholas,

        I had the same issue as the guy above. I created the script in both locations, but don’t know how to make the executable… Any help on an exact script?

        1. Gregory,

          As I said above the command to make something executable in Linux is chmod +x. Issue “chmod +x [FILENAME]” to make it executable. Hope this helps.

          1. When I type this in to the ChromeOS terminal, I get an error that says “chmod: cannot access ‘startcinnamon’ : No such file or directory.

            Yet I went through the step you listed below (vi) to create the file in the ChromeOS system files.

            Sorry, I am a major noob here who just wants Cinnamon in my Chroot… 🙁

          2. Make sure you include the full path when you issue chmod +x. You’re getting that error because you are not currently in the directory that the file you’re trying to change is in. The pwd command will show you which directory you’re currently in.

            In your case, I think the command “chmod +x /usr/local/bin/startcinnamon” will do the trick.

  6. Can you please help me with this!?
    I am not able to move my startcinnamon file to my usr/local/bin folder. I tried copying and pasting but it didnt work.

    1. It’s difficult to say without more information. What is the error message you receive? Did you try using sudo? Try creating the file directly in /usr/local/bin by issuing “sudo vi /usr/local/bin/startcinnamon”, pressing i (to insert), pasting the text, then pressing escape, then pressing ZZ (capital Z twice.)

  7. Hello! First off, thank you for the guide.

    I’m having some issues using the second set of scripts you posted. When I try and run cinnamon it’s telling me that there are “No chroots with target ‘gnome’ found in mnt/stateful_partition/crouton/chroots. Any idea what I may have done wrong?

    1. It looks like I forgot to change the chroot environment name in that second script. Replace the word gnome with the word cinnamon (or whatever you called your cinnamon chroot) like so:

      exec sh -e “`dirname “\`readlink -f “$0″\`”`/enter-chroot” -t cinnamon “$@” “” \
      exec startcinnamon

      I’ve updated the script to reflect this as well.

  8. I’m getting:
    chronos@localhost /usr/local/bin $ sudo startcinnamon
    Password:
    No chroots with target ‘cinnamon’ found in /mnt/stateful_partition/crouton/chroots

    For Step 1: “Create a base chroot”
    – I used the chroot from xfce4. Could that be the reason why i’m failing?

    1. It’s important to replace ‘cinnamon’ with whatever you named your chroot. The crouton command cheatsheet is a very useful reference. Run the command: “sudo edit-chroot -a” to list the names of all your installed chroots. You will want to edit your stantcinnamon script to reflect whatever you named the chroot with cinnamon installed.

      1. Thank you.

        Another question. Why is it at with xfce I can just tap the touchpad to click but with Mint I have to press the touchpad all the way in to click?

          1. I do not know why you are having that issue. I checked and tap to click (not pressing down on the touchpad) works just fine for me. I suggest making a new chroot based off of gnome.

  9. FYI: After downloading Cinnamon, I was able to switch to it simply by using:

    sudo cinnamon –replace

    This changes the window system from unity to cinnamon, which has the same effect.

  10. I’m confused on two things, 1: How do I move the startcinnamon script to my chromeos /usr/local/bin folder? and 2: How do I enter the environment once I do this?

  11. I have edited my startcinnamon script to say bionic (the name of my chroot) and I have executed the startcinnamon command but it says there is no chroots with the name bionic in /mnt/stateful_partition/crouton/chroots/
    even though I clearly do, I have done sudo edit-chroot -a to get the name and it is clearly stated to be bionic. What should I do?

    1. Your chroot name should be cinnamon, I think. Try changing it, then complete the command ‘sudo startcinnamon

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.