Ubuntu Weekly Recipe

第261回Ubuntu on Nexus 7を活用する

前回はNexus 7へUbuntuのインストールを行いました。今回はそのUbuntu on Nexus 7をなんとかして活用できないか模索してみます。

新しいNexus 7とNexus 10

先週のインストール編の公開前後でNexusシリーズに関するいくつかのニュースが流れていましたので、それについてまず紹介しておきます。

  • 3G対応版のNexus 7が日本でも販売されるようになりました。WiFi版と同様にUbuntuをインストールできるようですが、3G経由でのネットワーク設定での問題が報告されていますので、3G部分が動くかどうかは不明です。つまり、新しいNexus 7を買って古い方をUbuntu化するチャンスです。

  • Nexus 10が日本でも販売されるようになりました。ただしSoCがTegraではなくサムスンのExynosなので、既存のイメージは動作しません。同じExynos 5250を採用しているChromebook用のイメージを使えば動く「かも」しれません。

  • 起動後一度サスペンドしなくても、サウンドが再生されるようになりました

さまざまなデバイスとデータの送受信をする

携帯端末の利便性においてもっとも重要な点の一つは、データの移動方法です。そこでUbuntu on Nexus 7において利用できるデータの送受信方法を、対象のデバイスごとに考えてみましょう。

PCとの送受信

Ubuntu on Nexus 7は、ソフトウェアとしてはPCと代わりありません[1]⁠。このため、一般的なPC間のファイル共有を行うと考えましょう。そうするとネットワーク経由で行うのが一番、手間や速度のバランスがとれていることがわかります。

SCP/SSHFS

既に送受信したいマシンにSSHサーバーが導入されているのであれば、SCPやSSHFSを使うのが一番かんたんです。標準のファイルブラウザーであるNautilusを使えば、GUIでもファイルのやりとりを行えます。

SSH用の鍵の作成やNautilusを使ったファイルのやりとりについては、Recipeの第40回第53回を参照してください。

前回のRecipeでは、デバッグ用にNexus 7にもopenssh-serverを導入する設定も紹介しました。これを行っている場合はPC側のNautilusからNexus 7内部のファイルを閲覧することも可能です[2]⁠。ただ、Nexus 7を外に持ち歩き、公衆無線LANなどに接続する場合は取扱いに注意してください。

Samba

Windows PCが相手であれば、Samba経由でファイルを共有すると良いでしょう。Windowsに限らずSSHサーバーもしくはクライアントが導入されていない環境や、特定のフォルダーのみ公開したい場合は、こちらの方法が簡単です。UbuntuにはSambaクライアントが最初から入っているため、コマンドラインでもGUIでも好きな方からWindows PC上の共有フォルダーにアクセスできます。

Windowsではなく、UbuntuのフォルダーをSambaで公開したいのであれば、公開する方のNautilusで公開したいフォルダーを右クリックし「共有のオプション」を選択します。あとは表示されるダイアログの「このフォルダーを共有する」にチェックをいれると必要なパッケージがダウンロードされ、共有状態になります。

図1 ⁠このフォルダーを共有する」にチェックをつける
図1 「このフォルダーを共有する」にチェックをつける

ちなみにゲストログインを許さない場合は、Sambaパスワードを設定する必要があります。次のコマンドを用いて公開するマシンの方で、パスワードを設定してください。

$ sudo smbpasswd -a "ユーザー名"

次に閲覧したい方のマシン(今回はNexus 7)で、Nautilusの「ネットワークを表示」を選択します。公開しているマシンのホスト名が一覧に表示されますので、それを選択し、最終的にsmbpasswdで設定したユーザー名とパスワードを入力すれば接続完了です。あとは普通のファイル操作と同じように共有できます。

最近のブロードバンドルーターには、ルーターにUSBディスクを接続することで簡易NASとして使用できるものがあります。この場合も同様の接続方法で利用できるため、PC/Nexus7側にSambaクライアントさせ用意すれば、Sambaサーバーがなくても同じネットワーク内部のマシンでファイルを共有できます。

Bluetooth

サイズの小さなファイルであれば、Bluetoothのファイル転送機能を使うという手もあります。

まずはペアリングをしておきます。どちらかのデバイスをインジケーター領域のBluetoothアイコンから「可視状態」にした上で、もう片方のデバイスからBluetoothの追加を行います。PINコードの入力と承認を行えばペアリング完了です。

次にファイルの送受信を行うためには、Dashで「パーソナルファイル共有」ダイアログを開きます。ダイアログ側の問題でとても縦長になっていますが、Alt+Spaceによるウィンドウの移動などを駆使して、⁠Bluetooth越しに受信した...」にチェックをいれてください。

図2 パーソナルファイル共有で共有オプションを設定できる
図2 パーソナルファイル共有で共有オプションを設定できる

あとはBluetoothアイコンから「ファイルを送信」を選び、ファイルと送信先を選択すれば送信できます[3]⁠。

ただあまり速度が出るわけではない上に、機種によって相性があるみたいなので、⁠もう一つの方法」ぐらいの考えで心にとどめておきましょう。

USBメモリーやSDカード

ネットワークが使えないのであれば、物理的なストレージを接続してファイルを移動しましょう。

Ubuntu on Nexus 7では、⁠OTGホストケーブル」をUSB端子につなげば、通常のUSB端子として使えます。ここに例えばUSBメモリーやSDカードリーダーをつないでファイルを保存し、そのUSBメモリーやSDカードリーダーを転送先のPCにつなぎなおしてファイルをコピーすれば、転送完了です。

OTGホストケーブルを持ち合わせていないと使えない手ではありますが、無線LAN経由に比べれば速度は出ますので、サイズの大きいファイルや大量のファイルを転送する場合は、この方法を使うと良いでしょう。

スマートフォンとの送受信

スマートフォンで撮影した画像をNexus 7に転送したり、Nexus 7のデータをスマートフォンに送信できると便利でしょう。この場合、スマートフォン側にインストールできるクライアント/サーバーの種類が限られることに注意が必要です。

ESファイルエクスプローラー

Androidには標準のファイルブラウザーが存在しないため、Google Playから好みのファイルブラウザーをインストールするのが一般的です。その中でもESファイルエクスプローラーは、使いやすく機能も豊富な人気ブラウザーです。Ubuntu Oneにも対応しているので、Ubuntuユーザーなら使っている方も多いでしょう。

Android側でUbuntu上のファイルを送受信したいなら、ESファイルエクスプローラーのLANもしくはFTP機能を使いましょう。Ubuntu側でSambaサーバーを導入しているならLAN機能を、SSHサーバーを導入しているならFTPのSFTP機能を使います。ESファイルエクスプローラーの左上のビューを変更ダイアログを開き、あとは画面の指示にしたがえば接続完了です。

Ubuntu側からAndoroid上のファイルを送受信したいなら、ESファイルエクスプローラーの「リモート管理」が便利です。設定の「リモート設定>リモート管理」にチェックを入れると、一時的にAnonymous接続可能なFTPサーバーが立ち上がり、通知領域にIPアドレスとポート番号が表示されます。あとはNautilusの「ファイル>サーバーへ接続」を開いて上記のアドレスを入力すれば接続完了です。

図3 Nautilusの「サーバーへ接続」で、⁠ftp://スマートフォンのIPアドレス:ポート番号/」を入力
図3 Nautilusの「サーバーへ接続」で、「ftp://スマートフォンのIPアドレス:ポート番号/」を入力
図4 Nautilusの「サーバーへ接続」で、⁠ftp://スマートフォンのIPアドレス:ポート番号/」を入力
図4 Nautilusの「サーバーへ接続」で、「ftp://スマートフォンのIPアドレス:ポート番号/」を入力

Ubuntu OneやDropbox

サーバーを用意できない場合は、オンラインストレージサービス経由でのファイルの送受信が手間なく行えるでしょう。Ubuntu OneやDropboxは、それぞれ専用のAndroiidクライアントがありますし、上記のESファイルエクスプローラーを使ってやりとりすることも可能です。

他の方法に比べると転送速度は出ませんが、Nexus 7側にもPC版のUbuntu OneやDropboxクライアントを入れておけば、同期を簡単に行えるというメリットがあります。

Bluetooth

スマートフォンであれば大抵はBluetooth機能がついているものと思います。スマートフォンで撮影した写真ぐらいであれば、⁠PCとの送受信」と同じ方法で、Bluetooth経由での送受信を行うのが一番簡単かもしれません。

AirDroid

Android自体操作したいのであれば、AirDroidを使うのも良いでしょう。Android端末上にAidroidをインストールし起動します。画面にアクセス用のURLとパスコードが表示されるので、Ubuntu上でブラウザを開きそのURLにアクセスしてください。

図5 AirDroidで、Nexus 7上のブラウザーからスマートフォンを操作
図5 AirDroidで、Nexus 7上のブラウザーからスマートフォンを操作

あとは、ブラウザごしにAndroid端末の中身を操作できますし、ファイルのアップロードやダウンロードも行えます。ただタッチスクリーンのイベントをUbuntu上のブラウザがうまくハンドリングできないこともあるようなので、その場合はマウスを別途USBやBluetoothで接続しておくと快適です。

マルチメディアデータを活用する

Nexus 7のようなタブレットは、⁠スマートフォンと比べて)大画面なディスプレイでメディアを閲覧する、という活用方法がメリットの一つとしてあげられます。この用途にUbuntu on Nexus 7はどの程度応えられるでしょうか。

動画を再生する

YouTube

YouTubeはFirefoxやChromiumを使ってブラウザーから再生できます。Flashプラグインがない場合は自動的にHTML5バージョンにフォールバックするようです。最初からHTML5版を使うこともできます。

例えば、Big Buck Bunnyの動画を再生してみたところ、320pなら問題なく、480pはたまにもたつく、1080pはほとんどコマ送りで再生されるという状態でした。全画面表示も行えます。

HTML5プレイヤーに対応していない動画であれば、Gnashを使えば再生できるかもしれません。Gnashのプラグインをインストールして、ブラウザーを再起動してください。

$ sudo apt-get install browser-plugin-gnash

動画ファイルの再生

TotemでOgg Theora形式の480p動画は十分に視聴できます。780p以上になると厳しいようです。VLCは残念ながら現在は動作しません。ただし、リンク先のチケットでNvidiaの方がコメントしているように、Linux 4 TegraのGstreamerプラグインを使えば動作するかもしれないという話や、それをffmpegでも使えるようにするという話もありますので、Totem/VLCともに近いうちに状況が変わるかもしれません。

図6 Totemで480p/Ogg Theoraの動画を再生
図6 Totemで480p/Ogg Theoraの動画を再生

XBMCはX11/armhf対応に問題があって最新のパッケージでもX上では再生できないようです。

DLNA経由の再生

DLNA対応プレイヤーとして、TotemやVLC、XBMCなどが存在しますが、VLCについては映像が出ない、XBMCやMoovdiaは起動すらできない、TotemはGriloがmainコンポーネントに入るまでUPnP機能が無効化されているという状態なので、Nexus 7上で簡単にDLNAサーバーのコンテンツを再生する手段が現在はない状態です。

このように、単純に動画プレイヤーとして見た場合、現在のUbuntu on Nexus 7はほとんど機能しない状態です。今後、VLCがまともに動くようになってくれれば、状況が変わるかもしれません。

電子書籍ビューワーとして使う

まず前提として、DRM付きの電子書籍は閲覧できません。今後HTML5/JavaScript対応のブラウザーを問わないビューワーが出てくれば、Firefox経由で閲覧できるようになるかもしれませんが、現在閲覧できるのはDRMのついていないPDFやePubファイルとなります。

Ubuntu標準のPDFリーダーである「Evince」は最初から入っています。このためUbuntu Magazineのバックナンバーのように、縦書きのドキュメントも閲覧できます。ただし残念ながらEvinceは動作が重いです。さらに、スワイプによるページ送り、ピンチによる拡大・縮小のようなタッチスクリーンフレンドリーなUIは標準では実装されていない、全画面表示をすると「右クリック」でないと前ページに戻れない、ESCキーでないと全画面表示を解除できないなど、タブレットでの電子書籍の閲覧には若干ストレスがあります[4]⁠。

図7 EvinceでUbuntu Magazineを閲覧中。スクロール自体は上下のスワイプで可能
図7 EvinceでUbuntu Magazineを閲覧中。スクロール自体は上下のスワイプで可能

ePUBリーダーとしては、電子書籍マネージャーでもあるCalibreが有名です。ただ、これをNexus 7上で試してみたところ、タッチイベントをうまくハンドリングできずマウスでしか操作できないという状況でした。マウスさえつなげば、例えばGihyo Digital Publishingで販売しているアセンブラで読み解くプログラムのしくみのような、日本語のドキュメントも表示されます。

リモートデスクトップを使用する

Software Designの2013年2月号に掲載のUbuntu Monthly Reportでは、Ubuntu上で動作するリモートデスクトップサービスを紹介しています。Reportではクライアントとして、Android端末を使っていましたが、これをNexus 7上のUbuntuに置き換えた場合はどうなるでしょうか。

VNCは特に問題なく動作します。PC側でVinoを起動し、アクセスを許可した上で、Nexus 7側ではremminaを起動してPCのアドレスを設定し、⁠VNC」を選択して接続するだけです。音もリモートで流したいなら、第106回のPulseAudioの設定を参考にすると良いでしょう。

図8 Nexus 7から、Ubuntu PCを操作中。この方法ならVLCも使える
図8 Nexus 7から、Ubuntu PCを操作中。この方法ならVLCも使える

PC側をクライアントとした場合も、かなりのんびりとした動作にはなるものの、Nexus 7を操作できました。

RDPについては、12.10以降のUnityをうまく表示できないという問題があります。クライアント側には影響がないので、PC側を12.04以前やUbuntu/Unity以外にできるのなら良いかもしれません。

x2goについては、クライアントを起動すると非常に重くなり、動作しないという状況でした。

デスクトップをカスタマイズ

Androidはホームアプリを変更したり、さまざまなウィジェットを追加することで、ホーム画面を自由にカスタマイズできるのも魅力の一つです。Ubuntuの場合、デスクトップに情報を表示するソフトウェアと言えばConkyが定番です。

$ sudo apt-get install conky-all

Conkyは、数多くの人がいろいろな場所で「テーマ」と呼ばれる設定スクリプト集を配布しています。例えばInfinitySVGを使いたいなら、必要なファイルをダウンロードし、ホームフォルダー以下に設定ファイルを展開して、conkyを実行することで情報が表示されるようになります。

$ wget https://github.com/circumjacence/ConkyInfinitySVG/archive/master.zip
$ unzip master.zip
$ ConkyInfinitySVG-master/
$ cp .conkyrc ~/
$ cp -r .conky ~/
$ chmod a+x ~/.conky/startconky.sh
$ ~/.conky/startconky.sh

最後のコマンドは、5秒スリープしてからconkyを実行しているだけです。Dashから「自動起動するアプリケーション」を起動して、このスクリプトを追加すれば、ログイン時に自動的にconkyも実行されるようになります。

図9 Conkyを表示したデスクトップ画面
図9 Conkyを表示したデスクトップ画面

画面を効率的に使う上で、Launcherが邪魔になるようならシステム設定のAppearanceの「挙動」から「Launcherを自動的に隠す」をオンにしておきましょう。ちなみに再度表示したいときは4点タッチで画面右にスワイプしてください。4点タッチしたまま、画面を左右にスワイプするとLauncherを出し入れできます。

まとめ

今回は特定の用途に使うことを目的として、いろいろな使用方法を考えてみました。でも、現時点では、プレビュー版という位置づけの「Ubuntu on Nexus 7」ということもあり、⁠まだまだ使いものにならない」というのが正直な感想です。

その大半は「タッチスクリーンが考慮されたインターフェースになっていない」ことが理由でした。ツールキットやウィジェットがある程度吸収してくれるとは言え、実際にそのソフトウェアを使ってみないとわからない使いにくさという部分もかなりあります。この点については、Windows 8のおかげでPCでもマルチタッチが標準になりつつあるので、デバイスの普及が進むことでソフトウェア側も改善されていくことでしょう。

また、Ubuntu上のX Window System自体がタッチ操作時にタッチリリースイベントを取り逃すようになるというクリティカルな問題を抱えています。これが結構な頻度で発生するため、何度も再起動するハメになりました。13.04までは、こういう基本的な問題の修正に専念する結果、個々のアプリの対応や充実は13.10以降になるかもしれません。

あとはカメラやGPS、NFCあたりの「タブレットならではのデバイス」が動いてくれるともっと夢が広がりそうです。

2月の22日(金)と23日(土)に明星大学で開催されるOSC Tokyo/Spring 2013においてUbuntu Japanese Teamもブース出展とセミナーを行います。ブースでは、今回UbuntuをインストールしたNexus 7も展示する予定です。ぜひ会場に足をお運びの上、その「まだまだ」っぷりを体感してください。

おすすめ記事

記事・ニュース一覧