【~前回までのあらすじ~】
窓や林檎を尻目に Dell Chromebook 11 で開発を続け,CS大会当日も「リーダー,今日までChromebookで開発してきました」ってドヤったのに…懇親会では思いのほか誰にも触れてもらえず,今やこの無駄ノウハウも過去のものと忘れ去られようとしてた…
否,「ETロボコン Advent Calendar 2016」が有るではないかッ!!!
qiita.com
ChromebookでETロボコンの開発を行うノウハウについて
はじめまして!
デベロッパー部門 プライマリークラス 沖縄地区
琉球大学 工学部 機械システム工学科チーム「ロボんちゅ」のリーダーです。
と,いう訳で,こんな誰得情報どうすんねんという声も聞こえますが Chromebook でETロボコンの開発を行うノウハウについて書きたいと思います。
なお,ココに書いてある情報を試してみてお手持ちの Chromebook が壊れる等損害が発生しても当方は一切の責任を負いません。ちゃんとデータは Googleドライブにバックアップした上で,自己責任で行ってください。
システムの pic.twitter.com/P8xVt3z9id
— てぽ丼@Zenfone3 Laser届け (@teppodone) 2016年11月12日
- ChromebookでETロボコンの開発を行うノウハウについて
- 開発環境の構築方法
- わざわざ Chromebook で開発を行うメリット/デメリット
- 結局 Chromebook で開発するのってどうなん??
- Q. じゃぁ,この記事はどんな人におすすめなのか
開発環境の構築方法
やってることを端的に説明しますと Chromebook(ChromeOS) の上に Ubuntu をデュアルブートして,Ubuntu 上で開発というからくりです。
お気づきかと思いますが,いろんな弊害が出てきます。これは後ほど。
では具体的な手順です。
1. Chromebook で Ubuntu が動くようにする
まずはこちらの記事を参考に Chromebook に Ubuntu 14.04 を導入します。今回は Unity(desktop)を使いました。
chromesoku.com
本当は GariumuOS とか Xubuntu Lubuntu 等の軽量デスクトップを使いたかったのですが,何故かインストール出来なかったりクラッシュしたり,挙句の果てには ChromeOS 自体まともに動かなくなったりという弊害が出まくったので Unity にしました(Fig.1)。
2. Ubuntu にETロボコンのC++の開発環境を導入
次に,この Ubuntu の上に開発環境を構築します。こちらは,Win機 や Mac に開発環境を導入するのと同様,TOPPERSさんのページを参考にして Linux 用の開発環境を構築してください。gcc コンパイラ等はすでに Ubuntuに 入っているのでTOPPERSさんのページにしたがって構築すればOKです。
DevEnv – EV3 Platform
DevEnvLinux – EV3 Platform
見てください,こんな感じでちゃんとコンパイルできます(Fig.2)。
同様に,astah*も入れます。こちらのastah*さん公式ページ「Linuxで astah*を使う」に従って導入すればインストール…出来ませんでした。
astah.change-vision.com
どうも「Java環境のダウンロードとインストール」が上記ページのリンク先のページの手法では上手く行かなかったので,下記のQiitaのページ「Ubuntu にOracle Java 8 (PPA)をインストールする(ubuntu) - Qiita」に従って Java のインストールを行いました。
qiita.com
そして後は最初のastah*さん公式ページ「Linuxで astah*を使う」に従って「debパッケージを用いたastah* のインストール」からインストールの続きを行うことで成功しました。(Fig.2)
しかしastah*は盛大にバグります。これは後ほど。
3. うまく動かすためのコツ
「ブラウザだけしか動かさないなら貧弱なメモリやCPUでもいいよねっ!」「全部クラウドに保存してしまえばストレージなんて殆ど無くても大丈夫っ!!」という何とも偏った思想の Chromebook に,無理やり Ubunut の Unity を入れるのですから,そのままの運用では動作はもっさり。ストレージも圧迫しまくりです。あとファンクションキーも足りんし。
これらを,改善していきます。
その1.いらないアプリを削除する
Ubuntu 14.04 をインストールした時点でプリインストールアプリがたくさん入ってますが,ETロボコンの開発には絶対に使わないアプリはちゃっちゃと削除してストレージを開放しましょう。
ただココで注意ですが,Bluetooth等のシステムの中核を担うアプリをうっかり消しちゃうと,「システム設定」そのものが消えてしまうことがあったりするので注意が必要です。
その2.無理やりファンクションキーを設置する
さて,Chromebook に Ubuntu を入れた場合,キーボードの一番上の列のキー(音量とか照度とか全画面表示とかのキー)がファンクションキーとして割り当てられるのですが,Dell Chromebook 11 にはキーが10個しかありません。すなわち F1 ~ F10 までしか無いのです。
これじゃ困るということで全画面表示を担う F11 キーを あんま使わない「かなキー」に持ってくるシェルを作りましょう。
#setF11.sh bash -c "echo keycode 100 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11 F11 F11 XF86Switch_VT_11 > ~/.Xmodmap" xmodmap ~/.Xmodmap
あとはコレを Ubuntu 起動時に実行させるようにしたり,ターミナルから直接 sh setF11.sh すれば,かなキーが F11 になってくれます。
この様にキーの上にシールも貼っておくと使いやすいでしょう(Fig.3)。
Chromebook で絶対に Ubuntu 動かすマンのキーボードですご確認ください pic.twitter.com/VwmNNcy9sJ
— てぽ丼 (@teppodone) 2016年10月21日
その3.入れておくと捗るアプリ
・Geany(テキストエディタ)
ソフトウエアセンターで「Geany」と検索したら出てきます。軽量テキストエディタを謳ってるだけあって快適に動いてくれますし,括弧の補完機能等も充実してます(Fig.4)。
その4.おまじない
背面にコレ貼って「得体の知れないPC感」を出し,周りを威嚇しましょう。素材置いとくので好きに印刷して使ってください(fig.5)。
完全にノリと勢いで作ってしまった pic.twitter.com/Ent10EXIIg
— てぽ丼 (@teppodone) 2016年7月3日
わざわざ Chromebook で開発を行うメリット/デメリット
皆さんココが一番気になるトコでしょう。
メリット
Cygwinよりもコンパイルがビミョーに早い
Win機のスペックにもよりけりですが, ナマのLinuxを動かしてgccでコンパイルするのでハードウエアスペックが同じならばコンパイルに要する時間はCygwinよりも短いです。
人気者になれる なれませんでした。
窓でもなく林檎でもないこの Chromebook様で開発したなんて言えば,懇親会ではたちまち人気者になれるに違いない…とおもってたのですが,誰にもそんなこと言われませんでした。かなC。
威嚇になる
かもしれません。隣の奴がよく意味の分からないOSで開発してて,更に上記のステッカーなんて貼ってるのを見た日には「…何だこいつ,よく分からんけどやべぇ」って…なるかもしれません。
デメリット
重い
この一言に尽きます。ただでさえ雀の涙しか無いRAMとCPUで Ubuntu を動かしてるんですから,ChromeOS を動かすようなサクサク感はまず無いです。
狭い
「全部クラウド上に保存すればストレージなんか無くても良くね??」という最高にロックなコンセプトのもとに出来たのがこの Chromebook 。なけなしのストレージにUbuntuを入れてその上に JAVAの JDK とか Geany だのアレコレ入れるのですからお察しです。(Fig.6)
astah* がたまにバグる
10分に1回ぐらいのペースでこんな感じになります。一回こうなってしまったら astah* を再起動させるまで治りません。(Fig.7)
最終的に僕は Chromebook でのモデル図作成は諦め,家置きのWindows機に astah* 入れてパワポと共にモデル図を作成することにしました。astah*はこの半年間,とてもお世話になりました。モデリング初学者の僕でも,実際にモデル図を作りながら学ぶことの出来た素晴らしいツールだっただけに,いつかは是非とも Chromebook (ChromeOS上で)でも動くようになって欲しいです。
Bluetooth動かん
これはもしかしたら Chromebook そのもののハードや Ubuntu のバージョンによりけりかもしれませんが,少なくとも僕の Dell Chromebook 11 においては Ubuntu 側から Bluetooth の認識が出来ませんでした。この Dell Chromebook 11 にはもともと Bluetooth が入っており, ChromeOS 上では当たり前に動いてくれるのですが…Ubuntu側 では Bluetooth の存在を認識してくれません。
くそう仕方ねぇなと BluetoothのUSBドングル買ってきたのですがコレもダメ。あとからログを取って判明したことなのですが,BluetoothのUSBドングルに至っては「何かUSBに刺さってる」って反応すら検出されませんでした。あべし!!
結局僕らは,チームメンバのWin機(富士通FMV)の Bluetooth でリモートスタートさせることに。なんか負けた気がします。
結局 Chromebook で開発するのってどうなん??
はっきり言って,何にも良いことありません。
とってもオススメできません。身をもって体験しました。
悪いことは言いません。手元に Windowsモバイルノートが有れば大人しく Linux をデュアルブート又は Cygwin 入れましょう。間違っても Chromebook みたいな端末で無理やり開発しようなんて思ってはいけません。
Q. じゃぁ,この記事はどんな人におすすめなのか
A. 持ち運び用ノートが Chromebook しかない人
僕がまさにこれです。
まだ Chromebook が出た頃。すなわち「Win機よりも格安のノートPC!!」として売られてた頃(まだ格安 Win 機がメジャーじゃなかった頃)にその安さと軽さとオリジナリティそして変態感に魅せられて出先でのサブ機として Chromebook を買ったのです。
そしてこの度,ETロボコンの開発環境を構築必要が出てきて…しかし持ち運びノートに Win機 は無いという状況だったので,こんな誰得ノウハウの記事が出来上がってしまったわけですね。
いわゆる北風がバイキングを作ったぞ的なアレ。
以上で,Chromebook に ETロボコン の C++ の開発環境を構築して,実際に運用してみたレポートを終わりたいと思います。
最後まで読んでいただきありがとうございました。
それでは皆さん!よいChromebookライフを!!