Chromebook にLinux (Xubuntu) をcroutonデュアルブートで導入して正規表現エディタと英辞郎を搭載するまでの一連の手続

職場の先輩から「このChromebook、買っただけで結局使えてないんだけど、何か仕事に使えるかな? ある程度は弄ってくれてもいいので、好きに使ってみて」という、比較的ゆるめの提案を貰った。

期限も強制性もなにもないタスクだったので、自分の側でも仕事の合間にぼんやり考えているだけだったのだけれど、そのうち色んなことを思いつきはじめた。
ChromebookLinux系OSが走ると面白いのではないか?」「たかだか2万円から4万円の、しかし端末としては新しいPCに軽量Linuxが入るなら、(たとえば自分を含む)貧乏人にとっても今後のリスク軽減になるのでは?」「オフラインで正規表現エディタと英辞郎系辞書アプリ(Stardict)が動くことが証明できれば、後は好みのサイズで携行仕事マシンができてしまうのでは?」
こんな諸々の考えを、このマシンで実験してみたい気持ちがムクムクと育ってしまった。その思いつきの導くままに、この半月ほど色々試してみた。2015年初頭ごろ、自宅で腐っていた*1WinXP以前のノートPC群に軽量Linuxディストリビューションを入れて遊んだ経験が、こんなところで役に立っている。*2

結論だけ先取りすると、ほとんど新品同様のChromebookに、表題の通りの実装を与えられた。しかし、その手前では、大きな失敗をひとつ経験し(GalliumOS導入の失敗)、その後の別解を試した後も、単一の記事だけ観てそのままマニュアル通り従う、とはいかない道のりを経験した。本記事は、その経験を逐次書き並べ、 (1) ある Chromebook ノートPCに GalliumOS を導入しようとして失敗した実例 と、(2) Chromebook に crouton 経由で Xubuntu を導入した後に、日本語環境、正規表現エディタ英辞郎データ移植をすべて順に済ませた実例 の二つを紹介することを目的としている。個々の目的に応じた記事は注釈にURLを豊富に紹介しているので、参照していただきたい。*3

(なお当方(tricken)のPC知識は、他のLinux使いの方とは比較にならないほど貧弱です。以下、今回の作業に関連する範囲でのPC技能水準を書いておきます。)

  • Windows/MacOS/LinuxGUIについてはほとんど苦労なく設定を操作できる。主にMacbook使い(2011MidのMBA、2015のMBPが現在の愛用機)。
  • ごく単純なコマンドラインを書くことはでき、ターミナルで「このようにしなさい」と指示された内容は、概ね理解した上で実行できる。ただしシェルクスリプトを自在に書けたりはしない。
  • 正規表現はある程度まで読み書き可能(少なくとも、正規表現を前提として書かれた文字列を前に当惑したりはしない)。またExcelとtsv(タブ区切りテキスト)とを、正規表現、コピペ、インポート/エクスポート、関数利用などを用いながら力技でデータクレンジングをしたりすることもある。
  • プログラムは全く書けない。Python入門挫折中、Javascript入門書積読中。
  • LinuxBean, PuppyLinux, Ubuntu, LinuxMint, openSUSE を中古PCやMacbookに導入した経験あり。*4

非Haswell系Chromebookに対するGallium OS導入の(かなり特殊であろう)失敗例

はじめは Chromebook に最適化されていると言うLinux OS、Gallium OS〔ガリウム・オーエス〕を入れようとしてみた。*5

しかし、実際にGalliumOSを入れられるかは、Chromebookごとに採用されている個々のCPUの型番に大きく依存するらしかった。そして少なくともこのChromebookについては、Gallium OSを入れることを断念せざるを得なかった。Acer Chromebook 15 は 、別名を CB3-532 といい、その型番でGallium OS公式Wikiを検索すると、搭載された Intel Braswell は、Gallium OSに必ずしも向かないものだということがわかった。一通りのファームウェアアップデートを終わらせた後、他の導入記事に書かれた通りにOSインストールを進めると、Gallium OSのロゴが表示され、「よし、巧く行ったか」と思った矢先に、エラー画面と再起動画面もが十数秒ごとに明滅を繰り返すという特殊バグに遭遇してしまった。*6

crouton経由でのXubuntu導入とその後の作業の手順覚書

そういうわけで、Gallium OS を入れるのを諦めた後、一週間ほどの倦怠期を経て、crouton によるXubuntu〔ズブントゥ〕導入をしてみることにした*7。これが結果的には、Gallium OS というハードウェア(&ファームウェア)依存のLinuxディストリビューションを入れるよりも、ずっとすんなり巧くいった。

Xubuntuを導入して、日本語化、正規表現機能付きエディタ、英辞郎を全て揃えた手順を、以下に記述する。*8

  • ChromeOSのリカバリディスクを作る。作成にはUSBメモリが必要。*9
  • ねんのため、ChromebookをPowerwash する。Powerwash とは、Chromebook/ChromeOSにおける「初期化」のこと。*10
  • Powerwashした後、Chromebookのストレージ容量がどの程度残っているかを確認する。5GB以上残っていれば、Xubuntu を導入するには十分。今回の実機では約23GBの空き容量があった。余裕である。*11
  • Chromebookを「デベロッパーモード」にする。これを行わないと、Linuxインストールのための諸々の入力ができない。*12
  • デベロッパーモードで再起動がかかったところで、CTRL+Dを押す。これで「“デベロッパーモードの”ChromeOS」に入れる。
  • ChromeOSにログインし、無線LAN等の設定を行う。
  • crouton 導入用のスクリプトをダウンロードする。これは後でcrouton本体をダウンロードするための準備ファイルのようなもので、これ自体のファイルサイズはとても小さい。*13
  • ターミナルを起動する。やり方は二通りあって、
    • (a) ChromeOSを使用している時にCTRL+ALT+Tを使って、ブラウザ内にターミナルエミュレータを起動させるやり方と、
    • (b) ChromeOSを使用している時に、CTRL+ALT+F2(F2=Chromebookにおいては、ファンクションキーの左から2番めの、「⇒」と書かれているキーのこと)を押して、ChromeOSのターミナル本体を立ち上げるやり方 とがある。
    • どちらでもOK。
  • ターミナルを起動した段階で、shell と入力する。これはChrome専用のシェル(crosh)から、bashと呼ばれる、Linux関連のコマンドを一通り打てるシェルのモードに移行するために必要なコマンドである。bashに移行してからでないと、croutonをインストールすることができない。*14
  • croutonを、以下のコマンドで改めてダウンロードする。
$ sudo sh -e ~/Downloads/crouton -r trusty -t xfce,keyboard,audio,extension,chrome
  • 途中で何度か質問されるが、適当に答える。(何を答えなければならないかは忘れたので、後で調べて補完したい。)質問がターミナルに出てこない時は、ずっとインストール処理の報告が出力され続けていて、概ね30-60分くらいで終わる。暫く放置して別の作業をやっているくらいでちょうどよい。
  • インストールが終わったら、ChromeOSのターミナルで、以下のコマンドを入力する: "sudo startxfce" *15
  • これで Xubuntu が起動する。この段階までに何か失敗した場合は、以下のコマンドでまるごと削除を行う。
$ cd /usr/local/chroots/
$ rm -rf trusty
  • 次に日本語化の処理を行う。(a) 日本語環境自体のインストール と (b) 日本語でのキーボード入力を可能にする設定の修正 とがあり、後者は一文字でも間違えると、せっかく導入したXubuntuコマンドラインから立ち上がらなくなる不具合が発生するため、特に慎重に行うこと。*16
  • 日本語入力ができるようになったところで、トラックパッドタッチパッド)の設定を微調整する。そのままだと、手のひらがちょっと掠っただけでマウスポインタが誤動作してしまうため、好みの調整を最低限GUIでできる範囲でもやっておく必要がある。*17
  • 正規表現エディタを導入する。おすすめはJeditJAVAによるクロスプラットフォームアプリ)*18か、Atomクロスプラットフォームの開発環境アプリ)*19。どちらもデフォルトで正規表現機能が使える。geditもUIや挙動自体は良いが、自分の環境では正規表現プラグインの追加だけ、どうにもこうにもうまくいかなかった。*20
  • Stardict*21のインストールのため、コマンドラインを打つ。"sudo apt-get install stardict" と書く*22
  • Stardictのコンパイルに使う Stardict Toolsのインストール。こちらはコマンドラインで "sudo apt-get install stardict-tools" と書く。(なのに起動する時はコマンドラインで "stardict-editor" と打たないと出てこない。名称ややこしくないか。)このstardict-toolsおよびそのアプリ名称としてのstardict-editorは、後で使うことになる。
  • ついでに nkf と呼ばれるコマンドラインもapt-getしておく。これは英辞郎の基データの文字コードを確認したり変換したりする時に使うことになる。
  • さらに iconv と呼ばれるコマンドラインもapt-getしておく。これもnkfと似た機能を持つもの。最終的な基データの変換はiconvで行うこともあるようです。*23
  • 英辞郎の基データを抽出する作業を行う。*24Windows(自分の場合はWin10 ProをMacbookPro上で、BootCamp経由で、デュアルブートしています)で動いているPDIC上の英辞郎を開き、File>辞書設定(詳細)>辞書設定ダイアログ>EIJI-XXX.dic (#XXXは手持ちの英辞郎のバージョンに対応する数字が入る)を表示させる。これを(ひとまず英和のみ)右クリックし、「辞書の変換」を選択。ダイアログが出るので、変換先ファイル形式として「PDIC1行テキスト形式」を選択する。
  • 取得したPDC1行テキスト形式のデータを、Linuxマシンのホーム上にコピペする。
  • nkf コマンドラインを使って、コピペした英辞郎の基データの文字コードを確認する。*25
  • 文字コードが確認できたら、今度はiconvコマンドでUTF8対応の(Stardictに適合する)テキストデータを生成する。*26
  • Linux対応の正規表現エディタ(先程導入したJeditAtomプラグインが巧く導入できた場合のgeditなどのことです)に、UTF8変換を終えた英辞郎データを読み込み、2つの置換処理を行う。
    • (a)「///」を「¥t」(つまり正規表現における「タブ」)に置換する。
    • (b)さらに「¥」を「¥n」(つまり正規表現における「改行」)に置換する。*27
  • コマンドラインで "stardict-editor" を起動し、そこに置換処理を終えたタブ区切りテキストを読み込ませ、stardict形式のデータを生成する。*28
  • ここまでうまくいけば、拡張子がそれぞれ異なる3つのファイルが生成されているはず。XXX.dict.dz, XXX.idx, XXX.ifo の3つ。これらを全て、 /usr/share/stardict/dic の下に置く。
  • Stardict (ないしXubuntu全体)を再起動すると、ようやく英辞郎式に英和辞書が読み込めるようになっている。

以上の工程を経て、「crouton経由でXubuntuを入れ、日本語環境を一通り構築した後に、正規表現の使えるテキストエディタを入れて、Stardictに英辞郎データをコンバートすることで、ChromebookLinux系文書マシンになれる」ということが一例ぶん、実証できた。Chromebookやその他の二軍落ちノートPCをLinuxモバイルノートとして蘇生させたい人の参考にしていただきたい。

なお、このcrouton経由のXubuntu起動がでしたあとも、ChromeOSを十全に起動させることができる。オンラインならChromeOS、オフラインでXubuntu、という使い分けも可能な状態に持っていける。ただし、ChromeOSのデベロッパーモードを解除すると、導入したXubuntuは設定ごと消えてしまう可能性が高い(試していない)。なので、ChromeOS起動後のオプションには十分警戒して操作する必要がある。

余談: 2017年以降のバイブルサイズノートPC(typeP-like UMPC)について

ところで、2017年は GDP Pocket *29 や Gemini *30などの、Vaio Type P に近い計上のバイブルサイズのノートPC (UMPCと言うらしい)がリバイバルしているようで、散歩ついでに何かモノを書くという目的のため、そういうサイズ感のものが欲しいなあと思っていた。Gemini PDAUbuntu対応のマシンらしいので、今回試した手順をそのまま移植することができそうだ。さらに、上記二つは英語キーボードだが、日本語キーボードをご所望の方には、今後KS-PRO *31 というのも出るようだし、だいぶ楽しいことになってきた。

*1:使われず放置されていた、という意味でも、セキュリティ水準がWin7以降と比較してもはやオンラインで繋げて安全に使えるものではないという意味でも、腐っていた。ついでに言えば、実家に居た自分自身もわりと腐りかけていた。

*2: https://twitter.com/tricken/status/706337494447468544 ほか #rd_tr d003 (2016.03月, Linuxまわりのあれこれ 参照 https://sites.google.com/site/falletinsouls/rd_tr

*3:逆に、今回の記事のように、やや複合的な目的と条件とマシン相性とを伴ったLinux導入の記事は、ググってもなかなかひっかからなかった。

*4:このへん、蘇生魔術っぽい萌えポイントを軽量級Linuxディストリビューションに勝手に見出しているのかもしれない。

*5:Gallium OS を導入した際に参考にしたのはこちら:https://tanstaafl.0pt.jp/posts/2016/12/17/65b6078c14a5/ このサイト主によるインストール報告は、購入したChromebookファームウェアがHaswellだったから導入が巧くいったのだろうと思われる。Chromebook で Haswell ベースでない多くの実機は、コマンドライン経由でファームウェアに関する幾つかのアップデート作業を行ったり、物理的にノートPCの裏板のネジを外すなどリスキーな対応を迫られることになる。Gallium OSを選ぶのは、実はChromebook全体に対して優先的に考えられる選択というわけではなかったようだ。Gallium OS公式のファームウェア対応についてはこちらを参照。https://wiki.galliumos.org/Firmware

*6:類似の問題は、Braswellを搭載した別の Chromebook でも起きているようだった。Asus 202a braswell blinking/flashing screen after install https://www.reddit.com/r/GalliumOS/comments/5juby5/asus_202a_braswell_blinkingflashing_screen_after/ や、Looping black screen at boot (TERRA, SETZER, BANON, ...) -- Xorg fails to start with new ChromeOS firmware #320 https://github.com/GalliumOS/galliumos-distro/issues/320 を参照。これらの英文をじっくり読めば導入できたかもしれないのだが、いずれにせよ物理ネジまで踏み込むリスクがあるのにそこまで頑張れなかった。結局croutonで物理的な改修を加えずにうまくいったので、頑張らなくて正解だったということになる。

*7:Linuxディストリビューションのうち、近年のWindowsMacOSに近いフィールを持つLinux系のディストリビューションとして、Ubuntu〔ウブントゥ〕というものがある。Ubuntuは商用のOSにも迫る便利なLinux OSとして人気がある一方、ディスク容量やマシンパワーの足りないPCに入れようとすると様々な不具合が生じる重量級OSでもある。そうした事情もあり、貧弱なマシンスペックにもUbuntuを入れられるよう、軽量化を試みたディストリビューションもさまざまに開発されている。Xubuntuは、そのUbuntu系のうち、最も軽量とされるもののひとつ。なお、Linux軽量ディストリビューション単体で見た場合はLinuxMintやBasix、LinuxBeanといったディストリビューションも選択肢としてあった。今回それらを選ばなかったのは、croutonでLinuxを導入する手続きの中で見つけやすく導入実績が見つけられたのがたまたまXubuntuだけだったから。

*8:基本的には、Neoさんの 2017年の記事「crouton を使って ChromeBookXubuntu 環境を構築する」http://neos21.hatenablog.com/entry/2017/01/08/234540 に従った。ただし、自分の扱うChromebookはタッチスクリーン対応ではないため、この指示の前半に関しては適宜参考するに留め、実際には後述する他のWeb記事を参考にしている。しかしもし、この記事を読んだ人がたまたまタッチスクリーン機能のついたChromebookにこの手法を試したいと考えたならば、上掲記事のコマンドラインをほぼそのまま適用できるはずである。タッチインタフェースの有無は、コマンドラインの書き方、そしてその後のインストールの成否に大きく関わる話となる。まずは各自の手元のChromebookがタッチスクリーン機能を持つのか持たないのか、それを確認してからcroutonの具体的な導入手続を検討し始めていただきたい。

*9:リカバリディスクの作成手順はこちら。https://support.google.com/chromebook/answer/1080595?hl=ja このページから辿れる「Chromebook リカバリユーティリティ」というChromeアプリを使って、リカバリディスクを作成することになる。これを作成した後のリカバリユーティリティへの移行手段などもここに書かれているので、一通り目を通しておくことを推奨する。

*10:設定方法はこちらの後半部分をどうぞ。 https://tomokimatsubara.net/therealpowerofchromebook/

*11:ストレージ容量の確認方法はこちら http://chromebook.techblog.jp/archives/20151004/1041807615.html

*12:デベロッパーモードへの移行の仕方については、こちら http://chromesoku.com/chromebook-devmode/

*13: http://qiita.com/yasuki/items/f6a8a350087517b0069b の、「croutonをインストール」の節以降の記述に従う。以下の記述も、この記事と重複するものである。

*14:このあたりのコマンドラインやシェルに関する基礎的かつ体系的な話については、『新しいLinuxの教科書』などにあたって下さい。冒頭部分に詳しい歴史と分類が書かれています。

新しいLinuxの教科書

新しいLinuxの教科書

*15:ここでいうxfce〔エクスエフシーイー〕とは、Linuxディストリビューションに搭載されるデスクトップメタファの一種で、リッチで重量級なものから素朴で軽量級なものまでいろいろある。軽量級を目指した Xubuntu のデスクトップメタファがxfceを採用しているため、xfceをスタートさせる、ということがXubuntuをスタートさせることとほぼ同義として扱われているのだろう、と推量している。自分は。違ってたらごめんね。

*16:日本語化の処理については、http://neos21.hatenablog.com/entry/2017/01/08/234540 にそのまま従う。

*17:コマンドラインを通じた細かい調整は http://qiita.com/uchan_nos/items/ccc4ef7e319cb6200cc9 などに詳しい話があるが、システム設定の部分から行ける簡単な設定だけでもなんとかなる。

*18:https://getch.wordpress.com/2009/02/17/install-jedit-in-ubuntu-how-to/ の指示に従う

*19:複数方法があるが、コマンドライン経由では以下でも成功した。http://qiita.com/sudix/items/4e4e1bed2f9cf257e692

*20:手順としては以下のような紹介ページがある。http://slumbers99.blogspot.jp/2011/08/gedit.html 今回のマシンに適合しなかっただけで、他の実機では正規表現プラグインが問題なく表示される可能性は普通にありえる。JeditAtomの導入ついでに、geditの導入も一応検討してみていただきたい。

*21:WindowsにおけるPDICにあたる、Linux用の辞書アプリ。stardict本体のアプリと、stardict-toolsと呼ばれる独自形式へのコンバート処理アプリとで成り立っている。仕様を理解して適切なデータを生成し適切な場所に配置するまでが大変。ただ仕上げてしまえば概ねPDICと同等の挙動をしてくれる。

*22:この行からのStardictコマンドライン関連は以下を参考にしています https://sites.google.com/site/hymd3a/linux/stardict

*23:要するに、この後の作業は、apt-getで stardict, stardict-tools, nkf, iconv の4つのコマンドが揃ってないと、無意味なコマンドラインだと怒られる可能性があります。入れておきさえすれば、どうにかなります。

*24:ここからの作業は、いろいろなやり方がありますが、独自プログラムに依存しないでも成功できる http://ipadenglish.seesaa.net/article/142946216.html を参考にします。

*25:具体的な書式はこちらのnkf 関連を参照 http://ttanimu.blogspot.jp/2014/12/linux.html

*26:https://forums.ubuntulinux.jp/viewtopic.php?pid=23166 などを参考にする

*27:この作業も、http://ipadenglish.seesaa.net/article/142946216.html に従って行う。なおURL先ではWindows上で行っているが、自分はLinux上の正規表現エディタで行っている。

*28:この処理はコマンドラインでも実行できるらしいが http://dongle.seesaa.net/article/132344046.html 自分はGUI上でも実行できた。GUI実行の例はこちらの記事が参考になる。https://sites.google.com/site/hymd3a/linux/stardict

*29:

*30:https://www.digimonostation.jp/0000088420/

*31:http://parallel-news.hol.es/2017/03/27/gpd-pocketとgemini-pdaのいいとこどり? ks-proproid/