LoginSignup
23

More than 3 years have passed since last update.

ChromebookのLinux環境を整える(Crouton + Ubuntu20.04 + Chromebrew + Sommelier)

Last updated at Posted at 2020-05-31

ChromebookのLinux環境について

ChromebookにLinux環境を整える方法は以下の通りです。

  • Crostini
    • 公式のLinux環境作成機能
    • KVMとLXCを使用し、DebianやArch Linux、CentOS等を起動できる
    • Sommelierというウィンドウマネージャを使ってGUIアプリを表示する
    • 仮想マシン + コンテナなので動作が重い
    • Chromebookのハードウェアの使用に制限がある
    • デベロッパーモード不要
  • Crouton
    • 非公式のLinux環境作成スクリプト
    • chrootを使用し、Ubuntu、Debian、Kali Linuxを起動できる
    • xiwiというChrome拡張機能を使ってGUIアプリを表示する
    • xorgを使ってChrome OSと切り離されたGUI表示を行うことも可能
    • Chromebookに接続したUSB機器に直接アクセスできる
    • デベロッパーモード必要
  • Chromebrew
    • 非公式のChrome OS用パッケージマネージャ
    • 他のLinuxディストリビューションを入れる訳ではなく、Chrome OSに直接パッケージをインストールする
    • Sommelierというウィンドウマネージャを使ってGUIアプリを表示する
    • デベロッパーモード必要

たぶんこんな感じ。
他にはChrxを使ってデュアルブート環境を作成する方法もありますが、割愛します。
動作の軽さですが、体感は以下の通りです。
Chromebrew >= Crouton(xorg) >>> Crostini > Crouton(xiwi)

今回はCroutonChromebrewを使ってSommelierをインストールし、GUIアプリを表示出来るようにしたいと思います。
(バージョン: 83.0.4103.77(Official Build)beta (64 ビット)にて確認)

デベロッパーモードへの切り替え

ESC + F3 + 電源キーを同時押しし、リカバリモードを起動します。
リカバリ画面にてCtrl + Dを押下し、画面表示にしたがってEnter押下等すればデベロッパーモードに切り替わります。
この際Chromebookが初期化されるので注意してください。

Croutonコマンドをインストール

dnschneid/croutonに従いhttps://goo.gl/fd3zcにアクセスし、ファイル「crouton」をダウンロードフォルダにダウンロードします。
Ctrl + Alt + Tを押下し、croshを開きます。

shellコマンドを実行し、bashを起動します。

sudo install -Dt /usr/local/bin -m 755 ~/Downloads/crouton

を実行し、croutonコマンドをインストールします。
これでcroutonコマンドが使用可能になりました。

Croutonコマンドを使ってUbuntu20.04をインストール

インストールするのはfocal(Ubuntu20.04)ですが、とりあえずbionic(Ubuntu18.04)用の「3 Steps to Install Bionic Beaver · dnschneid/crouton Wiki」に従います。
まず、下記コマンドを実行します(10分程ダウンロード/インストールが行われます)。

sudo crouton -r focal -t core,audio,cli-extra

完了したら

sudo enter-chroot

にてLinux環境に入ります。

sudo apt install xterm xinit

を実行し、完了したらCtrl + Dexitを実行しLinux環境を抜けます。
残りのcroutonで入れたいターゲットを、下記コマンドでインストールします(-uオプションで既存の環境を更新)。

sudo crouton -r focal -t audio,chrome,cli-extra,extension,keyboard,touch,x11,xiwi,xorg -u

Ubuntu20.04 + xiwiでGUIアプリを表示する

Sommelierをインストールする前に、一旦xiwiでGUI表示できるか確認します。
まずcrouton integration - Chrome ウェブストアをChromeにインストールします。

sudo enter-chroot

にてLinux環境に入ります。
GUIを持つLinuxアプリを、何でも良いですが今回はgvimをインストールします。

sudo apt install vim-gtk3

インストールできたら

xiwi gvim

を実行し、Chrome OS上にgvimがウィンドウ表示出来ることを確認します。

(ツールバーの表示がおかしいですが、スクショ以外では正常でした。)

Ubuntu20.04にChromebrewをインストール

SommelierをインストールするためにChromebrewをインストールします。(Chromebrewを使わない方法もあるようですが、動作しませんでした。)
skycocker/chromebrewに従い下記コマンドを実行します。

sudo apt install curl
curl -Ls git.io/vddgY | bash

crewコマンドのインストールは成功すると思いますが、crewを実行すると下記のエラーを吐きます。

/usr/local/lib64/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': libcrypto.so.1.0.0: cannot open shared object file: No such file or directory - /usr/local/lib64/ruby/2.7.0/x86_64-linux-gnu/digest/sha2.so (LoadError)

下記みたいな感じで適当に対処します。

cd /usr/local/lib64/
ln -s libcrypto.so libcrypto.so.1.0.0

crewコマンドが使えるようになったと思います。

ChromebrewでSommelierをインストールし、GUIアプリを表示する

下記インストールコマンドを実行しSommelierをインストールします。

crew install sommelier

インストール完了時に下記の指示がありますので、適当に従います。

To complete the installation, execute the following:
echo '# Sommelier environment variables + daemon' >> ~/.bashrc
echo '# See https://github.com/dnschneid/crouton/wiki/Sommelier-(A-more-native-alternative-to-xiwi)' >> ~/.bashrc
echo 'if [ ! -d /tmp/.X11-unix ]; then' >> ~/.bashrc
echo 'mkdir /tmp/.X11-unix' >> ~/.bashrc
echo 'fi' >> ~/.bashrc
echo 'sudo chmod -R 1777 /tmp/.X11-unix' >> ~/.bashrc
echo 'sudo chown root:root /tmp/.X11-unix' >> ~/.bashrc
echo 'alias startsommelier="set -a && source ~/.sommelier.env && set +a && initsommelier"' >> ~/.bashrc
echo 'startsommelier' >> ~/.bashrc
source ~/.bashrc

To start the sommelier daemon, run 'startsommelier'
To stop the sommelier daemon, run 'stopsommelier'
To adjust environment variables, edit ~/.sommelier.env
You may need to adjust the SCALE environment variable to get the correct screen size.
Please be aware that gui applications may not work without the sommelier daemon running.
If you are upgrading from an earlier version of sommelier, run
'stopsommelier && startsommelier' or logout and login again.

sommelier.envは自動作成してくれなかったので、下記の内容で作成します。
(Chrome OS側にてChromebrewを使いSommelierをインストールした際に作成されたもの)

~/sommelier.env
GDK_BACKEND=x11
CLUTTER_BACKEND=wayland
XDG_RUNTIME_DIR=/var/run/chrome
WAYLAND_DISPLAY=wayland-0
DISPLAY=:0
SCALE=1

また、ターミナルを開くたびにパスワード入力するのも面倒なので、以下の通りGUIを使いたい時だけstartsommelierを実行し起動する感じにしました。

~/.bashrc
# Sommelier environment variables + daemon
# See https://github.com/dnschneid/crouton/wiki/Sommelier-(A-more-native-alternative-to-xiwi)
if [ ! -d /tmp/.X11-unix ]
then
    mkdir /tmp/.X11-unix
fi
#sudo chmod -R 1777 /tmp/.X11-unix
#sudo chown root:root /tmp/.X11-unix
alias startsommelier="sudo chmod -R 1777 /tmp/.X11-unix && sudo chown root:root /tmp/.X11-unix && set -a && source ~/.sommelier.env && set +a && initsommelier"
#startsommelier

これでstartsommelierを実行すると、下記のエラーを吐きます。

sommelier: error while loading shared libraries: libxcb-composite.so.0: cannot open shared object file: No such file or directory

aptでlibxcb-composite0をインストールして対処します。

sudo apt install libxcb-composite0

/usr/lib/x86_64-linux-gnu/libxcb-composite.so.0が作成されてエラー解消されたのだと思います。
これでstartsommelierを実行すると、下記のエラーを吐きます。(しつこい)

/usr/local/bin/Xwayland: error while loading shared libraries: libffi.so.6: cannot open shared object file: No such file or directory

適当に対処します。

cd /usr/lib/x86_64-linux-gnu
sudo ln -s libffi.so.7 libffi.so.6

これでstartsommelierSommelierが起動できるようになりました。(以下の通り文句を言われておりますが、スルーします。)

Warning: Unknown scale factor: 1429
Warning: Unknown scale factor: 1176
Warning: Unknown scale factor: 1111
Warning: Unknown scale factor: 1053
Warning: Unknown scale factor: 909
Warning: Unknown scale factor: 833
Warning: Unknown scale factor: 769
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Internal error:   Could not resolve keysym Invalid
> Internal error:   Could not resolve keysym Invalid
> Error:            Key <CAPS> added to map for multiple modifiers
>                   Using Mod3, ignoring Lock.
Errors from xkbcomp are not fatal to the X server
sommelier process 22829 is running

Sommelierが起動している状態でgvimを実行し、Chrome OS上にgvimがウィンドウ表示出来ることを確認します。

以上、CrostiniやCrouton(xiwi)より軽いLinuxGUIアプリ実行環境が作成できました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23