ChromebookにLubuntuをぶち込む魔改造をする話

# はじめに

(2019.12.18追記　構築完了したので更新)

これは[NISE(南山大学 青山研究室)Advent Calender2019](https://qiita.com/advent-calendar/2019/nise) 17日目の記事です。


2日連続でアドベントカレンダーの担当という状況ですが頑張っていきましょう。

さて、昨日は Google Colaboratoryを使ってドライブのファイルを読み込むことをしました。
https://qiita.com/RomuskaPaloUrLaputa/items/e3149ecaaba7d081eb89

機械学習だけでなく、軽いPythonプログラムを動かすことにも利用できるかなり万能なやつと紹介しましたが、如何せんpythonしか使えません。
他の言語を触るにはローカルで環境があったほうが良いのでしょう。~~(昨日構築がめんどいとかいってたヤツはどこへ行ったんだ)~~

気軽にどこでも開発するのであれば、ラップトップを常に持ち歩くのはしんどいですよね。

……そこでChromebookです。
ブラウザのChromeしか使えない代わりに、ウルトラブック並みに軽量で価格が安い、加えてOS(ChromeOS)も軽量で動作はサックサクという神端末です。

そのOSはlinuxベースで構築されています。つまり、ちょこっと魔改造してしまえば、VSCodeやらAtomをインストールすることができます。

ということで、早速魔改造をしていきたいと思います。

## 環境

機種 : acer cb3-111
RAM : 2GB 
CPU : Intel(R) Celeron(R) CPU  N2840  @ 2.16GHz
ROM : 16GB(e-MMC)

# 1.デベロッパーモードに切り替え

下準備として、OSのモードをデベロッパーモードに切り替える必要があります。

通常、ChromeOSは「stable」というチャンネルで動作しています。このチャンネルのままですと、linuxのshellコマンドを開くことができません。そのため、色々いじれるデベロッパーモードに切り替えます。

![Screenshot 2019-12-16 at 22.23.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274322/15d0a53a-b556-0f29-df28-5c05f149a2a3.png)


やり方はいくつかありますが、自分が成功した方法を説明します。

## 初期化しつつコマンドで切り替え

まず、`esc` + `reload`(ぐるぐるマーク)or`F3` + 電源ボタン　を同時押し

![IMG![Screenshot 2019-12-17 at 22.35.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274322/e2c75a8c-6c9c-3d6e-24d3-4784afe5e108.png)
_5077.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274322/b1c35b75-eae8-2538-0a75-45e7c2faee45.jpeg)

するとこんな感じで「データ消えますけどいいですか？？」的な警告が出てきます。
実際、ローカルファイル内のデータは吹っ飛ぶので、バックアップをとっておきましょう。

次に、この画面のときに`ctrl` + `d` 同時押しをします。
すると、デベロッパーモードへの切り替えがスタートします。

次の画面で、「OSの確認機能がオフになっています」といった表示が出ますが無視してエンターキーを押しましょう。
(ここで確認機能をオンにしたせいでモード切り替えに一度失敗した)

![IMG_5081.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274322/0fe71874-2159-e101-a2db-14acb21f87cf.jpeg)

このような画面になったらOKです。

## 初期化されたChromeOSの初期設定をする

普通にWiFiの設定をしてGoogleにログインしたり…といった感じです。
ここは説明も不要だと思います。Chromebookの指示どおりに行ってください。

# 2.croutonのダウンロード

次にcroutonをダウンロードします。

croutonとは、ChromeOS上にコンテナを配置し、仮想環境でubuntuやDebianを利用することができるようになるソフトウェアです。(説明違ってたらごめん)

下のgithubに飛ぶとダウンロードすることができます。
https://github.com/dnschneid/crouton

さらに、UsageにあるURLに飛ぶと最新版のcroutonをダウンロードできます。

以下、croutonがディレクトリ`download`に入っていると仮定して話を進めていきます。

## シェルの起動

まず、`ctrl` + `alt` + `t` 同時押しで、chroshと呼ばれるChromeOSのターミナルが起動します。
linuxでターミナルを起動するときと同じコマンドであるあたり片鱗を感じますね…

![Screenshot 2019-12-18 at 12.41.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274322/aac1afaf-6221-eb9b-a583-56c81c62c804.png)

この画面が出てきます。

`shell`と入力することで、通常のlinuxのターミナルと同じように利用することができるようになります。


# 3. OSのインストール

OSは基本的にUbuntu、Debianの二種類をインストールすることが出来ます。
Debianのことはあまり分からないので、今回はUbuntu系のOSであるLubuntuをインストールすることにします。

## Lubuntuとは

一言で言えば、軽量化したUbuntuです。
Ubuntuでは、デスクトップ環境にUnityを利用しますが、LubuntuではLXDEを利用しています。
これにより、UbuntuよりOSの動作以外にマシンのリソースを割くことが出来ます。

今回使うChromebookは、そもそものマシンリソースがショボいので、できる限り軽量なOSでないと動作しない可能性があるため、Lubuntuをインストールします。

## インストールできるUbuntu系OS

shellで、
'sudo sh ~/Downloads/crouton -r list'
と入力することで、現在インストールできるUbuntuのバージョンを調べることができます。

```
Recognized debian releases:
    potato! woody! sarge! etch! lenny! squeeze! wheezy! jessie stretch buster
    bullseye sid
Recognized kali releases:
    moto! kali! sana! kali-rolling
Recognized ubuntu releases:
    warty! hoary! breezy! dapper! edgy! feisty! gutsy! hardy! intrepid! jaunty!
    karmic! lucid! maverick! natty! oneiric! precise! quantal! raring! saucy!
    trusty! utopic! vivid! wily! xenial yakkety! zesty! artful! bionic* cosmic!
    disco* eoan*
Releases marked with ! are upstream end-of-life, and should be avoided.
Releases marked with * are unsupported, but may work with some effort.
```

とあるため、2019年12月17日の時点で(正常に)インストールできるUbuntuは、xenial(16.04LTS)のみであることが分かります。

さらに、
`sudo sh ~/Downloads/crouton -t list`
と入力することで、インストールの追加オプションを見ることができます。

利用できるデスクトップ環境もこちらから見ることができ、現在では

GNOME(Ubuntu GNOME),
KDE(Kubuntu),
LXDE(Lubuntu),
Unity(Ubuntu),
xfce(Xubuntu)

の5つが利用できます。

## インストールコマンド

原則、
`sudo sh croutonがあるディレクトリ -r インストールしたいOS -t オプション`
でインストールできます。

私は最低限デスクトップ環境で利用することができるものが欲しかったため、
`sudo sh ~/Downloads/crouton -r xenial -t lxde-desktop,keyboard,audio,extension,chrome`
としました。

各オプションの意味は`sudo sh ~/Downloads/crouton -t list`
で確認できます。

インストール自体は1時間ほどかかるので気長に待ちましょう。

また、インストールの最後にプライマリユーザーのusernameとpasswordを求められます。

# 4. 起動

インストールが完了したら早速起動しましょう。

Lubuntuの場合、shellに
`sudo startlxde`
と入力すると起動します。

5分ほど触ってみた感触ではそれなりにスムーズに動いてくれました。

その先の環境構築は通常のlinux同様なので、好みの環境を作りましょう。

# さいごに

最新のChromebookでは、「Project Crostini」という公式の仮想環境構築ソフトで構築できますが、古いChromebookはざんねんながら対応していません。

croutonを使うことによって、古いChromebookでもLinuxをぶち込むことができます。

環境構築はおいおいやっていこうと思います。

p.s
品川から名古屋の新幹線のなかで全部やり切るのは無理でした。お許しください…

## 参考文献

[[完全版]ChromebookにLinuxを入れて開発環境を構築する方法](https://qiita.com/toumasuxp/items/f7c10ab2b9405aa3170d)
[ChromeBook（C201とcb3-111-C670）のSDカードにUbuntuを入れる](https://qiita.com/kacho/items/05f039306a7c81f17436)
[Crouton を使って ChromeBook に Xubuntu 環境を構築する](http://neos21.hatenablog.com/entry/2017/01/08/234540)
[ChromebookにCroutonでXubuntuを入れ、VSCodeとMinecraftで仕事する話](http://www.kurigohan.com/article/20190509_chromebook_xubuntu.html)