Advanced W-ZERO3[es]のBluetoothを自動待ち受けへ――「ComRe-director」のご紹介

iPod touchも発売されて、ある意味PDA的なデバイスが再び盛り上がりを見せているようですね。個人的には、touchになる際にBluetoothが無くなってしまったのが痛いところです。次世代に期待でしょうか(^^;; とはいえ、現状でもAdvanced[es]無線LANで接続し、ZEROProxyというProxyソフトウェアを介してiPod touch上のSafariが使用できるようですね。活用の幅が広がって素晴らしい限りです。

ただ、ZeroProxyはあくまでHTTPProxyの一種であり、現状ではSSLSSHメーラーなど、ブラウジング以外の通信はサポートしていないようです。各種プロトコルをProxy上でパススルーさせる実装が必要となるため、今後に期待ですね。
一方で、BluetoothのCOMポートを使用した素朴な接続も捨てがたい、と言うことで当方ではid:OS2氏の手による「ComRelay」を使用していたのですが、常用していると

  • 常時待ち受けが出来ない
  • COM7固定のため、デバイスが一つしか使用できない
  • Bluetoothドングルを使用したままだと、サスペンドできずに電池消費が激しい

と言った事が気になってきました。欲求とは限りが無いものですね・・・(^^;;
と言うことで、当方でもComRe-Directorなるものを開発してみました。基本的なコンセプトとしては「ComRelay」と同様です。
現状の問題点としては、

  • COM接続中のソフトウェアの応答が極めて悪い
  • 一旦Bluetooth接続後にデバイスBluetoothを切ると、ソフトウェアがロックに近い状態になる
  • Linuxザウルスで何故か繋がらなくなった(?)
  • ついでに赤外線モデムにしたかったけれど、何故か上手くいかない(ちなみに、COM3:がIrCOMM、COM4:がIrDAのようです)。

と言ったものがあります。まだまだβ版以前の代物なので、使用して要望をいただけると幸いです(^^

LinuxZaurusとAdvanced/W-ZERO3[es]を繋げてみる

ここでのLinuxZaurusは、当然ながら何らかのBluetoothバイスを接続している事を前提とします。当方では、SL-C760+ibCard(CF型Bluetoothカード)+BlueZ2.23と言った構成になっています。SL-C3000以降で使用可能なUSB型デバイスは試した事がないのですが、おそらく同様のアプローチで接続が可能かと思います。大まかに流れを示すと、

  • LinuxZaurus:PIN番号設定
  • LinuxZaurus:sdpd立ち上げ+sdptoolによってSPPサービスを公開
  • Ad[es]:Bluetoothバイス探索。BlueZ登録
  • Ad[es]:Bluetoothシリアルポート追加。BlueZにCOM7割り当て
  • LinuxZaurus:rfcomm接続待機
  • Ad[es]:ComRelay立ち上げ
  • LinuxZaurus:ダイアルアップ開始
  • 通信確立


という感じです。長いかもorz ただし、Bluetooth通信を確立した後は、回線切断後も下二つのみの流れで再接続が可能です。
それぞれを具体的に説明していきます。

  • LinuxZaurus:PIN番号設定

Bluetooth機器のペアリング時に必要となる、PIN番号をあらかじめ設定しておきます。私の使用している構成では、/etc/bluetooth/givepinと、/etc/bluetooth/pinの二つのファイルがPIN番号設定に使用されていました。これらのファイルを書き換えて、お好みのPIN番号を設定してください。

  • LinuxZaurus:sdpd立ち上げ+sdptoolによってSPPサービスを公開

これは、LinuxZaurusのBlueZドライバ側が、「私はSPPサーバを持ってますよ〜」と周りのBluetooth機器に公開する動作です。公開するだけなのですが、これをしないとAd[es]側がLinuxZaurusのBluetooth接続で、SPPが使えなくなります。やり方は、Terminal上で

bash $ sdpd
bash $ sdptool add --channel=1 SP

となります。最初にsdpデーモンを立ち上げ、sdptoolによってBluetoothチャンネル1の上にSP(シリアルポート)サービスを公開します。


LinuxZaurusが準備できたので、次はAd[es]側でデバイスの登録を行います。
[コントロールパネル]-[接続]-[Bluetooth]-[デバイス]で、新しいデバイスの追加を行い、「BlueZ(0)」となっているデバイスを登録します。登録時、使用可能なサービスに「シリアルポート」が入っている事を確認してください。入ってなければ、前項の登録に失敗しています。

バイスを登録したら、同様に[コントロールパネル]-[接続]-[Bluetooth]-[COMポート]で、COMポートの追加を行います。新しい発信ポートを押して、BlueZのCOMポートをCOM7に設定してください。これは現状のComRelayがCOM7固定に設定されているため、それに合わせます。

  • LinuxZaurus:rfcomm接続待機

SPPサーバがあるという事を知らせたからには、実際にSPPサーバを走らせなければなりません(つまりBlueZは、サービスがあると「知らせる」事と、実際にサービスを「立ち上げる」事が全く別だったりします・・・)。やり方は、

bash $ rfcomm listen 2 1

のような形となります。この記述であれば、「RFCOMM2(Bluetoothチャンネルは1)として外部からのCOMポート接続を受け付ける」という意味になります。このときのRFCOMM番号は、/etc/bluetooth/rfcomm.confでbindされている、RFCOMM番号では「無い」必要があります。bindされていると、「既にそのRFCOMM番号は存在するから駄目」と、BlueZ側に怒られます。無事に立ち上がれば

Waiting for connection on channel 1

と言った表示が出て、接続待機となります。

ここでようやくComRelayを立ち上げます。無事に立ち上がり、LinuxZaurus側で

Connection from xx:xx:xx:xx:xx:xx to /dev/rfcomm2
Press CTRL-C for hangup

と出たらBluetooth接続確立です。

  • LinuxZaurus:ダイヤルアップ開始

最後に、電話をかけます。LinuxZaurusのダイヤルアップで、Bluetooth用に設定した接続先を選択します。Bluetooth接続先の設定方法は、こちら等に記述があるので、参考にしながら設定してください。今回の設定では、/dev/rfcomm2とします。


以上で、当方の環境では無事接続が出来ました(^^ 一度切断しても、Bluetooth接続が生きていれば再接続が可能です。ただ、なんともやはり手間ですねorz
Ad[es]側、LinuxZaurus側に相応の工夫が出来れば、大分軽減しそうな感じではあるのですが、準備する労力と相談でしょうか・・・

Advanced/W-ZERO3[es]、無線接続へ

先日からのお題ですが、コメント欄で書き込まれていたid:OS2氏が自作のプログラムによって、見事にBluetooth経由によるモデム接続を可能にされていますhttp://d.hatena.ne.jp/OS2/20070913。報を知ったその日に、現金にもAd[es]に機種変してきました(^^;;
自分で触れてみて初めて知ったのですが、WindowsMobile純正のBluetoothプロトコルスタックって、思った以上に機能が少ないようですね。今回使用するのは、シリアルポートの代わりをする比較的原始的なSPPと呼ばれるプロファイルなのですが、これも片方向しかサポートされて無いようです。接続待機をする側がサーバ、接続をする側がクライアントと考えると、SPPクライアントの機能しか呼び出すことが出来ません。ドライバとして実装されてないのでしょうか?。DUN-GWも、このSPPをベースとしたサーバ機能の一種ですが、まだまだそこへの道は遠いようで・・・

OS2氏作のプログラムは、一旦Ad[es]側で対象機器へのBluetooth接続を確立した状態で通信回線を開く、と言った使い方になります。Bluetoothは繋ぎっぱなしになるので、その分の電力消費はありますが、適宜回線は切る事が出来るので、Ad[es]側のW-SIMの電力消費は下げられそうですね。この構成でも、出来ると出来ないでは天と地以上の差があります。本当に素晴らしい。


当方でも、手持ちのありったけの種類の機器でちょっと接続を試みてみました。PCでは、既にいくつも動作報告が出ていますが、WindowsMobile系、LinuxZaurus系はちょっとした工夫が必要になります。というわけで、ちょっとした接続手順のご紹介をして見ます(^^

ここ最近のスマートフォン&Bluetooth接続環境は?――DUN-GW冬の時代へ

先日、Advanced W-ZERO3[es]やらX01Tやらが発表されて、今なお盛況気味なスマートフォンの世界ですが、未だに「スマートフォンを定額状態でワイヤレスモデムに出来る」組み合わせが出ていないのが現状のようです。食指がいまいち動きませんねorz


PDAもしくはスマートフォンをワイヤレスモデム化したい場合には、いくつかやり方が考えられますが、主には


1.Bluetooth DUN-GWを使用する
2.Bluetooth SPPもしくはIrCOMMによるダイアルアップPPP&ルーティング
3.Bluetooth PAN&ルーティング
4.無線LAN&ルーティング


みたいな方法が挙げられます。1.は、そもそもスマートフォンにその機能があれば、何の苦労も無く繋げられるという天国的ソリューションです。が、Advanced es向けのMini USB BluetoothアダプタIMUB-01でも、このプロファイルはサポートされていません。最早意図的か?と思うくらいのサポートされなさっぷりですね・・・一番現実的なはずなのに。
2.は、スマートフォンにインターフェースがあるだけでは駄目で、PPPサーバ機能と、ルーティング機能が必要になります。Linuxザウルスであれば余裕ですが、PocketPC / Windows Mobileにその機能がある、とは寡聞にして聞きません・・・
3.も、あるいは可能らしいのですが、PANをスマートフォンがホストモードで形成した後、ルーティングを行う必要があります。これも2.と同じ理由で壁になります。
4.も、(以下同文)


というわけで、1.以外のソリューションは、スマートフォン本体の「ルーティング機能」の不足によって実現できていない、ということになります。
そこで検索してみると・・・


と言う感じで、あるところにはあるものですね・・・。IMUB-01も、PANプロファイルはサポートしているようなので、おそらくAdvanced esがPANのホストになる事も可能なはず(確証無し)
結論としては、「モデム(ルータ)化が出来る環境は既に揃っている」ということのようです。ただし、問題としては使い勝手でしょうか・・・。


実際接続をすると考えると、

  1. Advanced esをW-SIMでネットに接続
  2. PAN有効化
  3. DHCP起動
  4. DNS起動


という一連の手順をこなす必要があります。PANはサービス的に起動しっぱなしに出来るはずですが、常時ネットに接続状態を維持するのは、おそらく電池の消費その他諸々に悪影響は避けられません。この辺が自動化できれば、実用性の壁を越えられそうですが、果てさて?


#WX310Kも、Bluetooth接続手順には毎回ながらうんざりさせられてますが、上の
#方法だと、下手したらそれ以上にうんざりしそうな予感が(^^;;

猿島、大牟田三池炭坑跡、西武安比奈線跡――廃墟ツアー3連戦

旅に行ったら、写真をまとめよう、とは毎回思うのですが、毎回ながら挫折しますねorz
GWで猿島、そして帰省のついでに三池炭坑、先週は西武安比奈線跡と、廃墟、廃線を堪能してきました。


最初に横須賀沖にある無人島・猿島。知る日とぞ知るスポットらしいのですが、かつて、東京湾にいくつか据えられた防御要塞である「台場」の第一関門として機能していた島だとか。その後、第二次大戦でも高射砲陣地として機能し、その後米軍に接収・返還という、軍事とは切っても切り離せない歴史を持っています。明治時代に組まれた石垣・レンガ造りの要塞跡と、その造りを生かして高射砲を設置した砲台跡が印象的でした。


次に福岡、大牟田三池炭坑跡。炭坑跡、というより、「大牟田」そのものが、かつて栄華を誇っていた炭鉱町の空気を、今尚色濃く残す土地でした。1997年頃に廃線となった三池炭坑専用鉄道を辿る形で、宮原坑、万田坑、そして三池港に至るルートを適当に計画して、そのまま辿ってみました。
・・・・途中で三井化学工場の引込み線に惑わされ、まんまと迷い込みorz
ナビのついていない車&情報が古すぎる地図という状況で、否応無くAxim X50v+GU-BT1+LiveSearchを使う羽目に。
地図と併用しながら位置を確認して、現在の地図に載っていない廃線跡をようやく探し出し、廃線ルートに乗る事に成功。カーナビとは比べるべくも無いけれど、無いとあるでは大違いです。さすがに。

宮原坑、万田坑と巡っているうちに日が落ち始め、最後の三池港に至りました。
日本の石炭政策は終わってしまったけれど、いつの日かまた復活を。という思い入れが垣間見えるように、廃坑になった後も炭坑関連施設の撤去は、てきぱきと進んではいないようです。未来と過去のジレンマを感じる旅でした。


最後に西武安比奈線跡。こちらは、西武新宿線南大塚駅から、貨物用の支線として伸びた線の跡です。元々、近くを流れる入間川の砂利を運ぶ貨物用だったらしいのですが、砂利を採取しなくなってからそのまま休止され、廃止されないまま撤去もされず、今に至るようです。

休止とは言っても、所々線路はアスファルトで埋められ、時に切断され、架線を張っていた架線柱も、所々崩壊している状況のため、そのまま復活できる状況ではありません。廃止されたのが1967年と古いため、廃線跡を歩いていると、時の流れを如実に感じる事が出来ます。特に夏場近くになると、森のトンネルが素晴らしい雰囲気を醸し出しています。



今回の旅では、先日購入したPSPソフトの「みんなの地図」と、GPSPSP-290」の組み合わせでナビを行いながら歩きました。この性能に関しては色々語りたいところもあるのですが、それはまた後日(^^;; 今回は上手く機能してくれて、ほぼ廃線の位置を見失うことなく歩き続け、車庫跡で確認できる最後の架線柱まで見つける事が出来ました。


ふらっと家を出て思い立ってからの旅だったのですが、まさか気軽な廃墟歩きでここまで強歩会状態になるとは思わないくらいに歩きましたorz 良い運動がてら歩きたい、と言う方にはうってつけの場所かもしれません。ちなみに、土曜のお昼過ぎから歩くのがお勧めです。3時半過ぎくらいの帰りで、南大塚行きのバスが使えます。



#退廃の美学、というと安直ですが、かつての息遣いを思い起こさせる場所、というのは何故か惹きつけられますね。
#何か起こっては、すぐに忘れられていく、と言う流れの速い時代にあって、せめて自分は過去を忘れないでいたい、
#と言うささやかな反抗心の表れなのかも。

さようなら最速PocketPC――Aximシリーズ終了に添えて


今更と言うニュースですが、DellPocketPCの扱いをやめるのですね。電子手帳型の小型コンピュータは、その利用形態から通信機能は必須と言うことで、これからは専らSmartPhoneの時代が来るようです。個人的には今の日本の状態を見るに、まだまだキャリアと端末を結びつけて考えたいとはとても思えないのですが、これも抗えない時代の流れのようです。


今から考えると、袋小路的な進化を遂げていたともいえる非電話型のPocketPC。その一つのAximシリーズは、いち早く高速CPUや高性能ビデオチップなど、先進的な性能てんこ盛りで気を吐いていました。特にX50v/51vはXScaleで最も高速なPXA272の624MHz版と、専用のビデオチップ2700Gを搭載した超高性能PDAでした。メモリの少なさと、VGA解像度特有の画面処理のもたつきはあったものの、PDAとしての実用性とマルチメディア性能の高さはまさに「小さなPC」。自分自身、昔から求めていた小型コンピュータの一つの姿であったのですが、世間的には受け入れられたとは言えない結果だったようです。嗚呼無常。


日々の手帳として、今尚手元でX50vが頑張ってくれていますが、ふとこの販売終了を機に、秘められた高性能を一度は引き出してみたい、と思ってみました。搭載の2700Gビデオチップは、他ならぬ「PowerVR」の末裔です。その昔、PC上でバーチャロンが開発されたり、RaveRacerが発売されると噂されたあのPowerVRです。第二世代がDreamcastに搭載されて再び脚光を浴びた、あのPowerVRです。今では、携帯電話向けの省エネルギービデオチップとして頑張っているようです。ちなみに、同じくDreamcastのCPUであった「SH-4」も似た様な道を辿っていますね。手元の「京ぽん2」は、ルネサス製のSH-4Mobileで動作しています。


話を戻して2700G。専用ビデオチップとは言っても、専用APIでしか使えないのであれば本末転倒。というわけで、本家サイトにてSDKが公開されています。embeddedVisualC++との組み合わせで、OpenGL|ESを使った3Dアプリケーションが開発可能との事。字面だけを見れば、PS3と同じAPIですね。やった!
・・・とはいえ、PS3はESの2.0規格、2700Gは1.1の、さらに限定規格(Common liteプロファイル:固定小数点計算&機能限定版)だそうです。プログラマブルシェーダまでは備えていません。それでも、バンプマッピング機能などを搭載している辺り、立派なものです。


そんなAximですが、マイナー過ぎたのか、本家のデモ以外はほとんどアプリケーションを見る事が出来ません。本家にあるPowerVR Racerを見るに、かつてRaveRacerを発売まで持っていけなかった悔しさと執念を見る気がします。今に至るまでも、あまり報われてはいないのかもしれませんが。無念orz


その数少ないアプリケーションの一つに、「Quake3Arena Mobile」なるものがあります。まさにQuake3ArenaのPocketPC移植版。Quake3エンジン自体、ソースコードは公開されているので、元々OpenGL準拠だったソースを、ES準拠に書き換えて移植を行ったもののようです。ARMv4(StrongARM以降)版と、2700G版があって、これを今回両方とも試してみました。なお、バイナリ本体は、既に本家サイトが消滅しているため、ゲットするにはネットの海を徘徊する必要があります。
相当にメモリを消費するため、基本的に40MB位エリアを空けておく覚悟が必要です。ARMv4版の方がメモリ的に非常に厳しく、ItaskMgrで不要なアプリケーションをすべて終わらせて40MBきっちり耳をそろえて開けてから、ようやく起動しました。ちなみに、WM5のX51vでは、128MBアップグレードを行わないと絶対に起動できないのだそうで・・・。もちろん、X50v/51vにとってはARMv4版を敢えて使用する必要は全くありません。実際に動かしてみたら1fpsしか出ず、どう考えてもプレイは無理な代物でしたorz
2700G版はまだまだ設定を詰める必要があるのですが、見栄え的にPC版のQuake3とほぼ変わらない状態でも、10〜14fpsをうろうろする位のようです。もっと軽くは出来ますが、表示しているディテールを考えると、非常に頑張ってるようです。実際に遊べるレベルです。すばらしい。



OpenGL互換でここまで来た、と考えると、本当に時代の流れを感じます。かつては数百万するハイエンドビデオカードだけの特権だった世界が、まさに手のひらに。とはいえ、この手のひらの中には、これからの未来は無いようです。EMOBILEEM-ONEにも、OpenGL|ES対応のGoForce5500が搭載されているのですが、その3D性能は未だ封印されたままだとか。専らワンセグ放送H.264デコードのみに使われているのだそうで。勿体無い。


#と、感傷に浸ってみましたが、こんな時代もあったねと、的にゲームを動かしてみました。
#いまや、PSPの方が高い3D性能を持っているのですが、PSPも先は決して明るくは無い様で。
#ポリゴンと言う手法も、それ単体では既に古典的なテクニックになってきているのかもしれませんね。