雑対処法集:cdmaOne端末C413SとLinuxをBluetoothでつなぐ
SonyのcdmaOne携帯電話端末「C413S」はBluetoothを搭載しており、 ダイアルアップ接続やOBEXでのデータ交換ができます。 ここではLinuxでau.NETにダイアルアップ接続するためのHOWTOを説明します。
注意!! 以下の記事はあくまで2004年頃の事情を反映したものです。 現在はもっと簡単に接続できるようになっています。
用意するもの
まずはPC側でBluetoothが使えなければ話になりません。 Bluetoothモジュールが内蔵されて、かつLinuxで動作するのであればいいのですが、 そうでない場合はBluetoohデバイスを買ってきましょう。 私は後先考えずにとりあえず買ったのがたまたま動作しましたが、貴方は次の節を読んで、 動作が確認されているデバイスを買ってきましょうね。
以降、私が買ったPlanexの GW-BH01U(実売価格8800円くらい) というUSBデバイスの使用を前提に説明します。ちなみにこの製品はミツミのWIF-0402Cと同等のもののようです。
デバイスドライバのインストール
いくつか候補はあるのですが、2.4.6からLinuxカーネルに正式採用となった、 Bluezを使いました。 Bluez-Kernel 2.1をダウンロードし、指示どおりにコンパイルしてインストールしておきます。 カーネル2.4.6に含まれているBluezはやや古いので、使いません。追記:今では充分に使えるバージョンが含まれています。
Bluezでサポートされているデバイスは、次のページを参照してください。
ユーティリティのインストール
やはりBluezのサイトから、Bluez-LibsとBluez-Utilsをダウンロードしてインストールします。 私はDebianパッケージをそのままインストールしています。さらにrfcommdをインストールしましょう。 こちらはソースパッケージのみ置かれています。
ダイアルアップ接続の設定
ここではau.NETに接続するための設定を説明します。pppconfigで、以下のように設定してください。
Provider Name | au.NET (ここは何でもよい) |
---|---|
Nameservers | static (210.196.3.183, 210.141.112.163) |
Method | PAP |
User | au@au-net.ne.jp |
Password | au |
Speed | 115200 |
Pulse or Tone | Tone |
Phone Number | 9999 |
Com | 空のまま |
設定が済むと、/etc/ppp/peers/au.NET の中身は以下のようになる筈です。
# This optionfile was generated by pppconfig 2.0.10. # # hide-password noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/au.NET" debug 115200 defaultroute noipdefault user au@au-net.ne.jp remotename au.NET ipparam au.NET
RFCOMMdの設定
次に、Bluez対応のrfcommデーモンである、RFCOMMdの設定をしておきます。 /usr/local/etc/rfcommd.conf の中身を以下のようにしてください。
options { psm 3; # Listen on this psm. ppp /usr/sbin/pppd; ifconfig /sbin/ifconfig; route /sbin/route; firewall /sbin/ipchains; } # Default session default { up { ppp "call au.NET"; }; } na { channel 1; up { ppp "call au.NET"; }; }
Bluetoothデバイスの接続と確認
それではBluetoothデバイスをPCに接続しましょう。必要な設定はデバイス毎に違うので、 ドキュメントを参照してください。GW-BH01Uの場合は、 あらかじめ hci_usb というモジュールをロードしておきます。 また、bluez-utils というinitスクリプトを起動しておきます。 (Debianの場合は /etc/init.d/ の下にインストールされます)
デバイスを接続したら、hcitool を使って、デバイスが認識されているかどうかを確認しましょう。 コマンドラインで
$ hcitool dev
と入力し、
Devices: hci0 xx:xx:xx:xx:xx:xx
のように出力されれば、認識されている事がわかります。
C413Sとの接続
次に、C413Sとの接続試験をしましょう。まずC413S側で、「Bluetoothメニュー」を開き、 「オブジェクトサーバー」を選択し、接続待ち状態にしておきます。次に、以下のコマンドを実行してください。
$ hcitool scan
次のような出力が得られれば、BluetoothデバイスがC413Sを見付けた事がわかります。
Scanning ... 00:A0:96:xx:xx:xx C413S
ここで、"C413S"の左側に表示されるのが、C413SのBD addressです。 C413Sの方で「Bluetooth情報」を開いて表示される「機器アドレス」の値と同じである筈です。
ダイアルアップ接続の開始
それではダイアルアップ接続を始めましょう。まずC413S側で「ダイヤルアップネットワーク」を選択し、 接続待ち状態にしてください。
次に、さっき調べたC413SのBD addressを用い、以下のようにrfcommdを起動してください。
$ rfcommd na 00:a0:96:xx:xx:xx
画面が変わって、パケットの送受信状態を表示したら、成功です。
ppp接続に失敗する場合
/var/log/syslog の中を見て、
など、Serail lineに関するエラーメッセージが出ている場合は、 pppの接続先との認証手続きに失敗している可能性があります。/etc/chatscripts/ を覗いて、 設定を見直してください。また、PPP-HOWTOを参照してください。
ダイアルアップ接続の終了
poffコマンドでpppdを終了させればOKです。