私の知る限り、一部の携帯電話は IrCOMM 標準を採用しています。Ericsson SH888 と NOKIA 6110 がそうです (NOKIA 8110 については分かりません)。 恐らく、他の携帯電話は IrOBEX 標準 (これに対して接続を確立するやり方は Palm III の章を参照してください) か IrMC を採用していると思われます。 Linux と携帯電話の接続に関する全般的な情報が知りたければ、 MobiliX をご覧下さい。
gnokii は Linux/Unix 向けツール群で、もうすぐ Nokia (GSM) 携帯電話用の modem/Fax ドライバとして使えるようになります。サポートされている端末は 3110、3810、8110、5110、6110 と、その後継機種です。
Michael McConnell さんから Motorola Timeport GSM と Linux-IrDA とが話せるようにするためのガイドを 彼のウェブサイト に掲示したとの投稿がありました。
/dev/ircomm0 を用いて通信セッションを開始するには、たとえば以下のようにします。
dip -t > port ircomm0 > term |
多分 dip の代わりに cu や xc を使うこともできるでしょう。そのときは cu -l /dev/ircomm0 または xc -l /dev/ircomm0 とします。 Ericsson GF768 と IR Modem DI 27 の組み合わせを試行中との報告もありました。
Benny Amorsen さんによると「SH888 はシリアルケーブル接続の際に IrDA ポートをエミュレートします。 設計者がなぜこんな妙なことを考えたのかはちょっと想像もつきませんが、Windows との組み合わせで動かすにはこのやりかたを使います。 私は Windows で動かそうとしたことはありませんけど」
Ales Dryak さんから以下のサーベィを貰いました (Debian/GNU Linux ディストリビューションのようなので、設定を適宜書き替えてください)。Mobile Ericsson SH888 は ati1 = 980408 1035 PRGCXC125101 で、
mknod /dev/ircomm0 c 161 0 mknod /dev/ircomm1 c 161 1 |
とします。
/etc/conf.modules は次のとおり
alias tty-ldisc-11 irtty alias char-major-161 ircomm-tty |
irattach /dev/ttyS0 -s # (IrDA ポートは SIR モード) |
<ABORT stuff> "" \d\d\d\d\d\dATZE0 OK ATD<phone number to call) CONNECT \d\c |
noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/sh888" /dev/ircomm 115200 defaultroute noipdefault user <your username> # don't forget to add your password to chap secrets or chat script |
SH888 に対して pppd 呼び出し (pppd call sh888) を行い、少し待った (だいたい 30 秒) 後は、私たちのイントラネットとインターネットに対して自由にアクセス (telnet、ftp、www、icmp はテストしました) できるようになっています。 さらには /dev/ircomm で minicom を使って AT コマンドを打ち込めるようになります。ばっちりです。 また安定に動作するようです。
Gerhard Gonter さんの報告です「メーリングリストの数名のメンバが Ericsson 社の携帯電話 SH888 を Linux-IrDA ソフトウェアで使うことに成功しています。このソフトウェアは AT コマンドを使って電話の各部にアクセスでき、とても役に立ちます。 内蔵の電話帳は興味深い操作対象でしょう。
インターネットで少々検索した (FreshMeat、Deja、Yahoo など) 範囲では、Linux またはその他の Unix 向けの、電話帳のツールを見つけることはできませんでした。 というわけで、小さな Perl スクリプトと関連モジュールを書いてみました。 現在個人的には使える処まで来ましたので、整理して開発の初期段階としてのリリースを行います。tarball は 次のところ にあります。」
メーリングリストでは gsmlib の同時使用が推奨されていましたが、 これを赤外線ポートで使うことも、私の SH888 と接続することもできていません。 Florian Lohoff さんの報告では「S25 の種の携帯電話では動くようです。 ただ、S25 が CR LF に反応しないようなので ifdef を変更する必要はありました。 その変更後、/dev/mobilephone -> /dev/ircomm で張ったリンクで S25 経由での SMS 送信は問題なく行えています。 電話帳のバックアップはまったく動いていません。これは電話帳が空の場合に S25 がわけのわからない応答を返すためです」
SMS メッセージと電話帳の詳細仕様は、無料 (FSF の意味でのフリー、ではなく ;-) で ETSI からダウンロードできます。GSM 07.07 (それと、多分 GSM 07.05 も必要になるでしょう) を探してみてください。 ダウンロードする前に登録が必要です。この標準は Acrobat PDF 形式です。S25 がサポートするコマンドは無料で Siemens のウェブサイトに PDF 形式であります。
SH888 の AT コマンドをまとめて解説した文書が Ericsson のサイトの 888_R1D.pdf にあります。
Carlos Vidal さんによると 「私の勘違いなら教えてほしいんですが、どうやら Nokia の携帯電話には純粋なハードウェアモデムは搭載されておらず、PC の WinModem と同じ類のものが載っているようです。Nokia がモデム接続のことについて書いている個所には毎回 "Windows ソフトウェアモデム" とか、それに類する語が使われています。 これに加えて傍証として、この携帯電話には Nokia 専用のウィンドウズ向けソフトウェア (Nokia Cellular Data Suite という名称です) が必要ですし」
Joonas Lehtinen さんによると「61xx シリーズの機種では、確かにそうです。 8810、9000(i) と 9110 の各機種は問題なく動作します (つまり、本物のモデムを内蔵しています)。 私の Nokia 9000 は linux との組み合わせでは IrCOMM と答えます」
Carlos Vidal さんからの試行と修正案は「私の Nokia 6110 で Linux を使ってどこまでできるか試してみています。ちょうど gnokii-0.2.4 [1] をコンパイルしたところですが、これは動きませんでした [2]。手元に Nokia Data Suite ソフトウェアがあるので、これまでに以下の接続を試しています。
Nokia 6110 <-- Nokia Cable --> PC/Linux <-- Null-modem cable --> PC/W95
PC/Linux では program snooper (Itoh Jun-ichiro (いとじゅん) さん作) をシリアルポートを正しく設定できるよう小変更を加えて使っています。 これ以外の同様の動作を行えそうな sniffer ソフトウェア (たとえば sniffit) の URL は見つけられませんでした(原注: シリアルスニファについては付録参照)。
通常は snooper が正しいボーレートに設定されているなら、電話と PC/W95 は snooper が間にない場合と同じように通信できるはずです。 これはミノルタのディジタルカメラのプロトコルを解読した際にはうまく動いたのですが、Nokia の携帯電話の場合、電話のほうが応答しないか、しばらくだんまりになってしまいます。
どうやら、通信の最初の段階ではタイミングがきわめて重要なようです。 これまでで得られたログは次のものです。
0>1: UUUUUUUUUUUUUUUUUUUUUUUU line 0: LE *DTR *RTS ST SR CTS CD RI *DSR line 1: LE *DTR *RTS ST SR CTS CD RI *DSR 0>1: UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUU\x1e\x00\x0c\x02\x00\x09\x00\x01\x00\x0d\x00\x00\x02\x01@\x00P\x 06 1>0: \x18\x00\x00\x00\xfc\x18\x00\x00\x00\x00\x00\x00\xc0\xf0 0>1: \x1e\x00\x0c\x02\x00\x09\x00\x01\x00\x0d\x00\x00\x02\x01@\x00P\x06 1>0: \x18\x00\x00\x00\x18\x00\x00\xc0\xf0\x18\x00\x00\x00\x00\x00\x00\xc0\xf0 0>1: \x1e\x00\x0cd\x00\x06\x00\x01\x00\x10\x01`\x13\x13 1>0: \x18\x00\x00\xf0\x00\x00\xfc 0>1: \x1e\x00\x0cd\x00\x06\x00\x01\x00\x10\x01`\x13\x13 |
0 は PC/95 で、1 は電話です。通信は一連の 'U' (0x55) で、DSR/DTR が on の状態で始まります。電話は '0x18 0x00 ...' と答えます。 この一連の会話はしばらくの間、両方ともだんまりになるまで続き、 最後には電話がクラッシュしてリセットする唯一の方法は電池を抜くだけ、という状態になります。
私の推定では、電話が正しいボーレートを見つけようとし、それが snooper を入れたことに伴う遅れのため失敗している、という現象ではないかと思います。 恐らく赤外線接続で用いている IrDA プロトコルで何かしないといけないのではないかと思っています」
Wessel de Roode さんによると「私は (Palm Pilot では) Discovery IR hint ビットを使うようにしています。
Discover: 0:xxxxxxxx:81.01 01 IR_HINT_PNP 01 IR_HINT_TELEPHONY (IrMC ?) 80 IR_HINT_EXT Device info query: \006Device\012DeviceName 4e 6f 6b 69 61 20 36 31 30 30 Nokia 6100 |
Nokia の PNP デバイスクエリができるようにもしました。Nokia は一台の PNP デバイスを持っています。このデバイスは具体的には 9600 ボーのモデムに相当する PNPC100 です。このクエリの設定を消してしまったので、回復するためのヒントを持っている人は教えてください。 確か IrDA:<dunno>:PNP:Comp#01 のようなものだったはずです。 同じ IrDA のクエリの IrDA:<dunno>:PNP:CompCnt は Nokia で使える PNP デバイス数を返します。ここではこれはひとつだけです。
ほかにも SMS メッセージを送受したり、アドレス帳を更新するのに gsmlib を使うことに関する報告を受けています。 これらの機能は、細かい文字集合の問題を除いて動作しています。
これは Florian Lohoff さんによるものです。「一歩一歩すすめましょう。まず irttach /dev/ttySx 等で irda が動くようにしておいてください。次に /proc/net/irda/discovery を実行してみて次のようになっているか見てください。
(flo@paradigm)~# cat /proc/net/irda/discovery IrLMP: Discovery log: nickname: SIEMENS S25, hint: 0x9024, saddr: 0x4286ce23, daddr: 0x04295741 |
次に ircomm と ircomm-tty をロードします。普通は /dev/ircomm* の正しいものを使って minicom などでダイヤルや、電話帳のロードやバックアップが容易に行えるはずです」
Timo Felbinger さんが東芝のラップトップと Siemens S25 の接続について説明してくれています。
「kernel 2.2.12 と patch-2.2.12-irda3、カーネル組み込みの IrDA サポートと ircomm と ircomm-tty をモジュールで用意します。
mknod /dev/ircomm0 c 161 0 とします。
modprobe ircomm と modprobe ircomm-tty をおこないます。
/etc/irda/drivers の最初の部分に modprobe toshoboe を記載しておき、 irattach を開始します。ここで注意しておきたいのは、irattach の前に toshoboe モジュールをロードしないこと。 さもないとデバイスビジーやリソースビジーになります。
dip -t の後、コマンドポート ircomm0 と S25 間で接続が成立しているはずです。 ここで、IR ポートと S25 のどちらも起動されている必要がもちろんあります。 この時の距離はあまり問題にはならないようです。
ターミナルを立ち上げれば、S25 は普通の Hayes 互換モデムのように振る舞い、通常の AT コマンドで使用できます。
pppd によるダイアルアウト接続は特に設定しなくとも使えます」
以下はドイツの e-plus ユーザ向けの記述です。
e-plus 契約には Free&Easy を除いて WWW への PPP 接続が含まれており、別の登録は必要ありません。このサービスは電話番号 123100 でドイツ国内のどこでもつかえます。 また、これは買ってきて直ぐに使えます。
pppd 設定は
/dev/ircomm0 defaultroute netmask 255.255.255.0 debug mtu 552 crtscts noauth connect '/usr/sbin/chat -v -f /etc/ppp/eplus.chat' chat script /etc/ppp/eplus.chat: |
ABORT "BUSY" ABORT "ERROR" ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "NO ANSWER" SAY "initializing modem..." "" "AT" "OK" "ATZ" SAY "dialing..." "OK" "ATDT123100" SAY "waiting for CONNECT..." "CONNECT" "" SAY "connected!" SAY "" |
ネームサーバとしては 192.76.144.66 を使えます。 ユーザ名やパスワードは不要です。
[1] | 原注: gnokii は Nokia 社の携帯電話をシリアルケーブルで接続するための Linux および *BSD 向けのツールで、 gnokii で入手できます。 |
[2] | 原注: 最新の gnokii コマンドを試してみてください。 挙動が改善されているはずですし、携帯電話との IrDA 接続についての役に立つ文書も用意されています。 |