SonyのcdmaOne携帯電話端末「C413S」はBluetoothを搭載しており、 ダイアルアップ接続やOBEXでのデータ交換ができます。 ここではLinuxでau.NETにダイアルアップ接続するためのHOWTOを説明します。
まずは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
次に、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デバイスを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側で、「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
画面が変わって、パケットの送受信状態を表示したら、成功です。
/var/log/syslogの中を見て、
pppd[4807]: Serial line is looped back.
など、Serail lineに関するエラーメッセージが出ている場合は、 pppの接続先との認証手続きに失敗している可能性があります。/etc/chatscripts/を覗いて、 設定を見直してください。また、PPP-HOWTOを参照してください。
poffコマンドでpppdを終了させればOKです。