Galaxy S2+HID+Debian = Perfect Handheld Computer(後編)


Galaxy S2が面白くて仕方がないよシリーズの後編記事です。

OpenOffice.org And Sylpheed running on Debian on Galaxy S2 (SC-02C)
OpenOffice.org And Sylpheed running on Debian on Galaxy S2 (SC-02C)

前編は、IS01での挫折の顛末〜Bluetooth Keyboard + MEDIAS N-04C、そしてGalaxy S2(SC-02C)への道程についてでした。後編では、主にSC-02Cのお話が出来ればと思います。

ふつうにHIDとして使う

そんなわけで勢いで機種変更してしまったGalaxy S2、まずはHIDデバイスの使い勝手が気になります。

開封してすぐの状態でキーボードとマウスをペアリング
開封してすぐの状態でキーボードとマウスをペアリング

うん。大変快適でした。キーボードもマウスも認識するっていいよね。Androidをスマホ用OSとして認識している人にとっては、マウスポインタが表示されるという事それ自体が新鮮かもしれません。どちらかと言うと組み込み系の汎用OSという出自で捉えると納得しやすいかと思います。

リモートデスクトップクライアントにしてみる

標準状態のAndroidでも、キーボードとマウスが使えるなら、リモートデスクトップは大いに実用になるはず、と踏んでいました。

Windows7にリモートデスクトップで接続
Windows7にリモートデスクトップで接続

早速試してみたところ、

  • まあ普通に使える
  • 画面解像度が合わないのが辛い。RDPは自由な解像度を許してくれないのだろうか、あるいはクライアントアプリの問題だろうか。
  • キーボードもマウスも無い状態で使うRDPよりは100倍快適と思われる

という感触でした。概ね、思惑通りです。

そんなことより、とりあえずroot

で、買って半日もしないうちに、root権限を取るための作業を始めました。そもそも、rootedであることを前提として端末を買っているので、ごく自然な流れです。

※ここから先の話は、見よう見まねでやるとGalaxy S2がゴミになる(文鎮化する)可能性が非常に高い作業ですので、わかる人には参考になるであろう程度に大雑把に書きます。読んでも判らない人には、お勧めしません。このページだけ見てやろうとしても無理です。それでもやろうということであれば、その心意気はとても良いと思いますが、壊れたことを人のせいにするような人は絶対に手を出さないようにしましょう。ジコセキニンってやつです。

まあ保証は効かなくなってもしょうがないよね
まあ保証は効かなくなってもしょうがないよね

作業自体は先達諸兄の足跡をなぞっただけですので、詳説はしません。要するにカスタムROMを書き込むことになります。Galaxy S2は、ht-03aのような状況で、カスタムROMはCPU電圧を調整したりディスプレイ輝度を調整したり、もろもろ手が入ったカスタムROMが何種類もある状況のようです。某巨大掲示板群の当該スレッドを読めば概ね把握できるのではないかと思います。というか僕はそこしか読んでいません。また、ROMイメージの転送方法については、ぐーぐる先生にお伺いを立てれば回答が得られる程度の難度ですので、各自で把握頂ければと思います。

それでどのイメージを転送するかという話になりますが、標準状態のGalaxy S2をちょっと触ってみて、パフォーマンス等々には全く不満を感じなかったので、あくまで標準ベースでrootだけ取れる、というイメージを書き込みました。最近は書き込みのことを「煮る」と言ったりするんでしょうか、それは一部だけでしょうか。その辺はついていけていません…。

カスタムROM制作にトライしている諸兄には篤く御礼申し上げます。

イメージ転送中。ICEとか使えないのは緊張感があるね。
イメージ転送中。ICEとか使えないのは緊張感があるね。

※ところで、カスタムROMを取得して導入するのって、著作権的には違法になるんでしょうか。海外ではカスタムROMを書き込みできるように開放する、といった動きもあるようで、黙認なのかなあと思っているんですが(純正ROMの製造コスト自体は端末の料金に含まれているわけだし)、もし法に触れる(あるいは誰かの迷惑になる)ようであれば、本意ではないので、このエントリは削除します。

そんなわけで無事にrootを取得できました。

SuperuserはAndroidマーケットから入れたんだっけな
SuperuserはAndroidマーケットから入れたんだっけな

なんてお手軽なんでしょう、感動的です。ハックしてる感は、全くありません。ていうかハックしてません。

Debianイメージの作成

続いて、Debian の準備を行います。基本的なアイデアはここに説明されている通りです。ざっと見てもらえればわかると思いますが、要するに

  • debootstrapでarm用バイナリを指定してextのイメージファイルを作る
  • 作ったイメージファイルをloopback mountして、そこにchrootする

という、それだけの話です。その筋の方なら難しくも何ともないと思います。逆に、先のページの内容を理解出来ないようだと、苦労すると思います。とはいえ、やってみないといつまで経っても出来るようにはならないので、リスクを承知でトライするのは面白いと思います。root取るのさえ失敗しなければ、この作業は失敗したところでdebianが立ち上がらないだけで、Android環境までは壊さない・・・いや/system/ を書き換えて壊そうと思えば壊せるか・・・まあたぶん、よほどじゃなきゃ壊さないと思います。知らん。

で、おいらはdebianを普段使っていないので、ESXiにさくっとdebian環境作って作業しましたよ。CDブートでいいんじゃね?とか、なんか別にCentOS上でも何とかなるんじゃね?って気もしたんですが、debianのインストールって、いま、酷く簡単だし、仮想化のおかげで物理マシンも用意しなくていいし。ラクな方に流れました。

ESXiはホントにべんり。
ESXiはホントにべんり。

debian.img の作り方はもう手引きの通りです。留意する点としては、

  • おそらくSDカード上にイメージを配置しようと考えていると思います。ファイルシステムを確認してください。
  • fat32であれば、1ファイルのサイズ上限は4GBまでです。
  • 謎の数字で言うと 4194304000 ぐらいの感じです。

あとは特に何もなかった気がします。

ちなみに、armバイナリがあるディストリビューションでいまもアクティブに保守されてるのって、どれぐらい選択肢あるんだろうと思ってwikipediaを見てみたところ、うーん。Debianのほかには、GentooとSlackwareだけですか。さすがにクロスビルドする気合いはありません。

そう・・・玄箱にVineを入れていてね・・・アップデートできなくなって悲しい気持ちになってたんですよ。玄箱うぉううぉうさんのアレです。その玄箱も、半年ほど前、ものすごく忙しいさなかに華麗に逝きました。臭いからして、電源系のコンデンサとかそんな感じで。でも丸6年以上動いたのかな。彼はえらかった。

 Debianイメージを端末に持ち込んでchrootする

このステップさえ乗り越えてしまえば勝ったも同然ですね。とりあえず作ったdebian.imgをscpなりで作業端末経由でSDカードに書いてあげて、端末に置いてあげて、までは誰でも出来ると思います。問題は、先の手引きで”bootdebian”として紹介されているシェルスクリプトですね。

答えは載せませんが、要点だけ

  • chrootコマンド自体は、Androidマーケットからbusyboxを導入することでわき出てきます。
    • 僕はStephen(Stericson)さん作のBusyBoxというのを導入しています
    • このアプリはBusyBoxのInstallerということらしく、起動すると導入するBusyBoxのバージョンを選べるのですが、最初導入を選択した1.18.xのバージョンでは、chrootが導入されませんでした。
    • v1.17.1 を導入するとchrootのsymlinkが出来ていました
    • chrootが無くてすんげーハマった。知らんがな
  • まさかyaffs2そのままでやろうって人はいないよね。/dev/block/mtdblock3 とかそのまま使おうって人はいないよね。自分の端末のmountの結果見てから考えるよね。
  • そういえばext4にびびった
  • Galaxy S2は内蔵ストレージと外付けストレージ(micro SD)がある
    • 内蔵ストレージ: /mnt/sdcard
    • micro SD: /mnt/sdcard/external_sd
  • /system に書きたければ、

mount -o remount,rw -t ext4 /dev/block/mmcblk0p9 /system

大体これぐらいの情報でいけるんじゃないかと思います。行けない人はやめといた方が(略)。いやだってさあ、ここを無理に進めたとしても、X11環境をイチから作ることになるんすよ。.Xresourcesとかxinitとか@im=とか、解ってないと相当辛いと思うんですよね。。。(やったことあっても苦労する)

ちなみに僕のbootdebianは、

export img=/mnt/sdcard/external_sd/debian.img
export home_img=/mnt/sdcard/external_sd/root_home.img
                :
losetup /dev/block/loop5 $img
losetup /dev/block/loop6 $home_img
                :
mount -t ext2 -o noatime,nodiratime /dev/block/loop5 $mnt
mount -t ext2 -o noatime,nodiratime /dev/block/loop6 $mnt/root

ということになっております。4Gじゃ足りなかったの。

debootstrap –second-stage する

いやもうここまで来ちゃえばね。

debootstrap --second-stage
debootstrap --second-stage

眺めてるだけ。特に問題なく終了してくれました。

つまり、

debianなう
debianなう

まるっとdebianな訳です!やったね!

環境構築

正直ここから先なんてどうでもいいっていうか、もうAndroid関係ないしおまけみたいなもんです。

  • とりあえず # apt-get install gnome とかやってみました(←
  • sslcert の導入でコケました。$TEMPDIRが定義されていないのが問題だったので、適当に.bashrcこさえました。

mtabが無いおかげでdfコマンドが使えません。ln -s /proc/mounts /etc/mtab という大味な回避策を取ってみました。いいのかこんなんで。

  • Xのビデオドライバなんてあるわけないのでvncサーバを使う。
  • tightvncserverしか選択肢がないので、それで。

何か残ってた謎のメモ文字列。

# export USER=root
# touch /root/.Xresources
# vncserver -geometry 800x480 -depth 24 :1 (なんかパスワード訊かれるから適当に)
# export DISPLAY=:1
# vncserver -kill :1 (tightvncの止め方)

gnomeは、使えなくはないんだけど重たいので、WindowManagerはXfce4に落ち着きました。あとはまあ、フォント関係(unifont ttf-kochi-gothic ttf-kochi-mincho ttf-vlgothic)導入したり、日本語入力環境整えたり、ですね。

意外と難しいのが、AndoroidアプリのVNCクライアントですね。試した中では「アンドロイドのVNC」というアプリが一番良かったです。難しさとしては、

  • 2ストロークキーが入力されない
  • 画面サイズが上手く指定できず全画面表示に出来ない
  • マウスでアプリケーションのウインドウを掴む操作(移動、リサイズなど)が出来ない
  • localhostへの通信なのに再描画が入ったりストレスを感じる

という類のモノがあると感じました。その中で一番バランスが良かったのが、アンドロイドのVNCという、直訳ロックなソフトでした。このアプリで不満なのは、Shift+Spaceが認識されないことだけです。(僕は10年前のkinput2の時代からimのスイッチをShift+Spaceでやっている。Windows/Mac環境下ではCtrl+SpaceでIMのスイッチをしている)これは、Shift+↑がなぜか認識されるので、とりあえずそっちに振り分けて妥協することにしました。いいの、非常用だし。Alt+Escとかそんな非人道的なキーよりはいいと思う。あれは指がつると思うんだ。

 現状のパフォーマンス

結局どんなもんか、見てもらうのが早いでしょうか。

ごめん、ちょっと作業環境が良くなくて、あまりきれいなビデオ撮れなかったんですが、大体どの程度の感覚なのかはつかめるかと思います。

まず、sylpheed を立ち上げています。キータッチが遅いのは、手前に漫画を積んで、その上にビデオカメラを置いているから。1分前後のあたりで受信箱を開いてから少し待ちがありますが、これは3GでIMAPアクセスをしているからです。通信は全てdocomo 3Gです。

1:30あたりから、firefox (iceweasel)を立ち上げています。これは普通に新聞社サイトを閲覧しています。3G待ちの時間が多い感じですね。

最後に、3:20あたりから、OpenOffice.orgを立ち上げている感じです。

正直、sylpheed とfirefox ぐらいなら全然イケちゃうなあ、という感想です。いや、そりゃ、画面の狭さは如何ともし難いものがありますが、体感的にはPentium2-400MHzよりは早いんじゃないだろうか、と思っています。

まとめ

どうですかね。普通のキーボードとマウスがあって。画面こそ狭くて小さいけれども、これぐらいの処理能力があるコンピュータが、常に携帯できるとしたら。結構魅力的じゃないかと思うんです。正直、F-07Cよりこっちの方がいいんじゃないかと思うんです。だって、Windowsモード時にbluetooth使えないって、あんまりだよF-07C。買う気満々だったのに。

キーボードとマウスが重たいじゃん一緒じゃん、という向きもあるかと思うんですが、考えてください。スマホはいずれにせよ常に持ち歩いてますよね。なので、重量増分は0グラム。僕の場合、AC-USB(iPhone用)と、USBケーブルも常に持ち歩いているので、充電分まで含めて重量増分ナシです。で、キーボードがRBK-2000BT3で、重量は電池含まず180g。電池は単4が2本なので、おおよそ20g、それにケースで20gを見てざっくり220gぐらいでしょうか。マウスがiBuffaloのBSMLB06NWHで、重量が18g。電池2本入れて40gぐらいでしょうか。キーボードとマウスの総計で260gを持ち歩くということになります。

いかにVAIO typePが軽いとはいえ、600gはあるんです。それに、ACアダプタが100gちょいでしたか。そのほかケースだケーブルだ、と考えると、なんだかんだで800gぐらいにはなるんじゃないでしょうか。そう考えると、500gぐらいは違うわけですよ。いつも500mlペット一本無駄に持ち歩く感じな訳です。重いって。普通のPC(レツノとかMBAとか)は本体だけで1kgを軽く越えちゃいますからねえ。ACアダプタまで入れたら1.3kgでもまあ軽いんじゃないでしょうか。1kg違うわけです。

もちろん、かなり制約は厳しいです。非力だし画面は狭いし字は小さいし。でも、最低限出来ないと困ることは提供してくれている、そこに価値があると思うんです。繰り返しになりますが、計算機を使うと解ってるなら、最初っからThinkPadなりTypePなり持参すれば済む話なんですよ。まず使わないけど、最悪の場合のために・・・という理由でPCを持ち歩く事情がある人には、理解してもらえるんじゃないかと思っています。

ところで、僕の中ではGalaxy S2いじりはまだ終わっていなくて、以下のネタがあります。

  • USBホストケーブルを使って
    • SDカードからデジカメ画像を取り込んでflickrに上げてみる
    • セルフパワーのHDDをつなげてみる
    • 無理だと思うけど手当たり次第USBデバイスをつないでみる
  • HDMI出力ケーブルを使って
    • OpenOffice.org の Impress、またはAdobe PDFの最大化表示を使ってプレゼンに挑戦
  • qemu動いたりしないかなー
    • ビデオとかどうでもいいからエミュレートだけ走ってくれればなあ
    • XPをRDPサーバにできれば、描画はAndroidアプリのRDPクライアントを使えばいいよね
    • まあ実用になるかというと、アレだけど。

特にqemuの件は先に検証してから日記を書きたかったわけですが、いかんせん最近忙しくなってしまい、まとまった時間を取るのが1ヶ月後ぐらいになりそうなため、pendingのまま日記を上げてしまおうと思います。どなたか時間ある方いらっしゃったら、試してみませんか。すごい面白いと思うんですけど、ダメっすかね。Galaxy S2でエロゲの一本でも動かせば、それなりにインパクトのある感じになると思います。

そんなわけで、Galaxy S2、すごくいいです。Android端末、特にdocomoのAndroid端末を使っている人は、spモードメールアプリの遅さにイラッ☆と来てるに違いないと思いますが、Galaxy S2で使うと超快適です。ブラウザもtwiccaもアホみたいに早いです。iPhone3GとiPhone3GSぐらいの違いがあると思います。きっと、来年あたりは、デュアルコアCPUが主流になるんだろうなあと予感せずにはいられない一台でした。あと、スマホに関して言えば、現時点では国産はダメかもしれない。いままでいいなと思った端末は全部洋物な気がしてきました。MEDIAS(N-04C)は、いつになったら2.3に更新してもらえるんだろう。

それではみなさん、よいモバイル・ライフを。

最近の投稿

Instagrams

 

カテゴリー

アーカイブ

Written by:

何の変哲もない小市民です。 twitter/wassr: bokusama mixi: 24553

2 Comments

  1. rattcv
    2011年9月20日

    素晴らしいです。IS01ではクソ重くて全然実用にならなかったchroot Debianでのデスクトップ環境が
    ここまで普通に使えていることに驚愕しています。
    時に、日本語入力はAnthyかMozcを使われていると思うのですが、正常に変換出来てますでしょうか?
    当方ではコンソール上のuim-fepからこれらの使用を試みているんですが、メモリ不足なのか上手く
    動かないのでお聞きしてみました。

  2. 2011年9月23日

    rattcvさん

    コメントいただきありがとうございます、大変光栄です。
    貴兄の記事がなければ、僕はDebian&Androidに興味を抱くことも無かったと思いますし、Galaxy S2を衝動買いすることも無かったと思います。感謝しております。

    それで、ご質問いただいた件ですが、当方の入力環境は最終的に
    ~root/.xsession から
    —————————————-
    XMODIFIERS=@im=uim ; export XMODIFIERS
    GTK_IM_MODULE=uim ; export GTK_IM_MODULE
    UIM_IM_ENGINE=anthy ; export UIM_IM_ENGINE

    uim-xim &
    uim-toolbar-gtk &
    —————————————-
    となっております。(とても適当なのはご容赦を)
    正直、最近のim環境まわりについていけておらず、これがイカした設定なのかどうかは自信の無いところなのですが、問題なく日本語入力は出来ています。この返信自体も、Galaxy S2上のDebian上のfirefoxで入力しています。
    変換速度は、Androidネイティブで使っている状態と相違なく感じます。

    ちなみに、この環境でX起動直後のメモリ量は
    —————————————
    localhost:/# free -m
    total used free shared buffers cached
    Mem: 836 813 23 0 27 288
    -/+ buffers/cache: 497 339
    Swap: 0 0 0
    —————————————
    でした。
    また、まさに今時点(Firefoxでブログ記事を表示しコメント入力中)は、
    —————————————
    localhost:/# free -m
    total used free shared buffers cached
    Mem: 836 686 150 0 27 242
    -/+ buffers/cache: 417 419
    Swap: 0 0 0
    —————————————
    です。あれ、空きメモリ増えてる。

    あとは2ストロークキーの入力問題さえクリアすれば、僕としては本当に究極の環境だなあ、と思っています。
    きっかけを与えてくださり、本当にありがとうございました!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です