Skip to content

LiquidGalaxy on ChromeBooks Installation

ivancolomer edited this page Jul 12, 2019 · 26 revisions

Table of Content

  1. Crouton Installation
    1. Previous Steps
      1. Chrome OS Channel
      2. Developer Mode
      3. Optional Keep Awake
    2. Install Crouton
  2. Usage
    1. Start Crouton
    2. Switch between Chroot and Chrome OS
    3. Shutdown Chroot
  3. Liquid Galaxy Installation
    1. Installation script
    2. Optional packages
      1. API
      2. Full-screen

1. Installation

i. Previous Steps

a. 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.

b. 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.

To enable developer mode on modern Chromebooks, hold down ESC + REFRESH + POWER_BUTTON to enter recovery mode. Older Chromebooks have physical developer switches that you’ll need to toggle instead. At the recovery screen, press CTRL + D, agree to the prompt, and you’ll boot into developer mode. When you switch to developer mode, your Chromebook’s local data will be erased, this process may take about 15 minutes on our system. From now on, whenever you boot your Chromebook, you’ll see a warning screen. You’ll need to press CTRL + D or wait 30 seconds to continue booting.

c. Optional Keep Awake

Since Crouton is running in parallel with ChromeOS, we might want to install a plugin into Chrome from here in order to make ChromeBooks not able to turn into sleep mode when they are inactive.

The Add-On adds an icon in the upper-right corner of the browser that can be clicked to switch between modes where the screen is kept on (sun icon), the system is prevented from sleeping (sunset), or power-saving settings are left unchanged (moon).

ii. 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. Note, as of April 2019 there may be changes to this approach due to security updates in Chrome. Here are some updates.

  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 gnome

When they ask you to specify a username for the primary user type: lg

Choose the password you want (without whitespaces) and remember it for the following step (installing liquidgalaxy).

2. 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 startgnome

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.

In some devices, when you switch back to ChromeOS it may cause the display colors to be corrupted. In order to solve it use CTRL + ALT + FORWARD and CTRL + ALT + BACK. This is a known issue and ChromeOS developers are fixing it: Crouton Issue and Crouton Reddit

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.

3. Installation

The installation script (install.sh) is intended to be used with Ubuntu GNOME Xenial (16.04). It might not work with other distributions.

Tested with:

  • Crouton (with Ubuntu 16.04 Xenial GNOME version)

i. Installation script

You need to install curl before executing the script with the following command:

sudo apt update && sudo apt install curl

Get and execute installation file on the target machine (from any user folder):

bash <(curl -s https://raw.githubusercontent.com/ivancolomer/lgxedu/master/liquid-galaxy/install.sh)

Master:

Machine id: the number that identifies your machine (only the number part of the lgX machine name).
Total machines count: the number of machines running your liquid galaxy.
Unique number (octet): Unique number that identifies your installation (to avoid conflict with other liquid galaxy installations in your network).

Example filled in form (with a 3 machines setup):
Machine id: 1
Total machines count: 3
Unique number (octet): 42

During the installation you will be asked for a SSH passphrase and its verification, just press enter twice.

Slaves:

Slaves are asked for additional information, in order to sync with the master.

Do NOT install master before having completed its installation and is up and working! (slaves will connect to master to retrieve configuration files during the installation)

Master IP: master machine IP address (via ethernet):

ifconfig eth0 | grep "inet addr" | awk '{print $2}'

Master IP: master machine IP address (via wifi):

ifconfig wlan0 | grep "inet addr" | awk '{print $2}'

Master local user password: login_password.

Example filled in form (with a 3 machines setup):
    Machine id: 2
    Master machine IP: 192.168.68.95
    Master local user password: 1234
    Total machines count: 3
    Unique number (octet): 42

Once the slaves installation has completed (including the reboot), you might have to reload master to send them the init signal.
lg-relaunch

ii. Optional packages

a. API

API will enable developers to control the Liquid Galaxy over common protocols, such as AJAX or WebSockets.

For example, it makes it easy to send KML files to display on the Google Earth.

Although residing in a different repository, it has been built with this Liquid Galaxy installation in mind, and should not require more than a mere installation command.

See https://github.com/LiquidGalaxyLAB/liquid-galaxy-api#liquid-galaxy-quickstart

b. Full-screen

Liquid Galaxy will by default display Earth's menu bar, which is useful for development but not very good looking for demonstrations.

It is up whether to enable it:

~/tools/earth-fullscreen.sh && gnome-session-quit --no-prompt

You can disable it anytime:

~/tools/revert-earth-fullscreen.sh && gnome-session-quit --no-prompt

Full screen uses another window manager (Openbox), which does not share Gnome's display settings.

If needed, you can rotate your screens by typing the following: (Openbox tip: use CTRL + ALT + -> to move onto the next Workspace, then right click on desktop -> terminal emulator)

xrandr -o left && echo 'xrandr -o left' > ~/.xprofile

To turn off screensaver:

xset s off;xset -dpms;xset s noblank && echo 'xset s off;xset -dpms;xset s noblank' > ~/.xprofile