SH-04Aをbluetoothモデムとして利用する(in Gentoo)


かなり色々やったのでとりあえずメモ。

まずはカーネルの構築から。

Network Setting --> [*] Bluetooth 〜 --> とりあえず全部選択(モジュー
ルにできるものはモジュールとして)

で、USB接続関連で、UHCI 〜とかなっているものも選択。この辺は勘でい
きます。

そしてmakeしたら、忘れずに/bootにコピーして(GRUB利用している人は大
抵こうなっていますよね)、reboot。

再起動して、lsusbで見慣れないデバイスが認識されていたりしたらそれか
もしれません。

次に、bluetooth用のツールなどをインストールします。

emerge bluez-tools bluez-libs

とりあえずこれで全部入ります。

・・・この辺りはgentoo のドキュメントに書かれていますので、そっちを
閲覧したほうがよっぽどいいとは思いますが。

そして、bluetoothを起動します
$ sudo /etc/init.d/bluetooth start

gentooのドキュメントでは、hcid、sdpd、rfcommdの三つが起動するようになっているかもしれませんが、現在では
hcidにsdpdの機能が取込まれたためか、hcidとrfcommdしか起動しません。

現在bluetoothとして認識されているものを確認するためにhciconfig。

上手い具合に次のように表示されたら、ちゃんと認識されています。

$ hciconfig
hci0:    Type: USB
    BD Address: 00:24:33:D5:16:08 ACL MTU: 1021:8 SCO MTU: 64:1
    UP RUNNING PSCAN ISCAN 
    RX bytes:16618 acl:450 sco:0 events:504 errors:0
    TX bytes:10806 acl:421 sco:0 commands:88 errors:0

/etc/bluetooth/hcid.confを設定することになります。基本的にはgentooのをそのまま利用する形で問題ありませんが、一つだけ注意が。

gentooドキュメントでは、pinコードの設定は/etc/bluetooth/pinに書くように言われていますが、bluez-3.*では、各hci内部に、

passkey "任意のPINコード";

のように記述します。
hcid.confの記述が終わったら、とりあえずは/etc/init.d/bluetooth restart します。

さて、ここからSH-04側でも設定が必要になります。

SH-04Aのトップメニュー --> LifeKit --> Bluetoothから、「新規機器登録」を選択。
そしたら、hcid.confで記述した名前の機器が見つかると思いますので、選択後、hcid.confで記述したpasskeyを入力します。

これで問題無く認識されたら、SH-04Aを「接続待機」状態にします。これは単純にメニューから選択するだけです。
接続待機状態になると、SH-04Aのメイン画面の上に、bluetoothのアイコンが点滅するようになります。

PC側から見えているかを確認するために、hcitool scan で確認してみます。

derui@vaio_z ~ % hcitool scan
Scanning ...
    (SH04Aのデバイス情報)

というように表示されたら成功となります。

さて、次はペアリングなんですが、これはちょいと面倒になります。
まずはGentoo側で、SH-04Aの情報を確認します。

$ sdptool search DUN

上記を実行した結果、表示される情報から、「Channel : 〜」となっている部分をメモっておきます。

そして、/etc/bluetooth/rfcomm.confを編集します。
この辺もGentooハンドブックを参考にしていただくとして、その中でchannel 〜;という行がありますが、ここのchannelの値として、さっきメモしたものを設定します。

rfcomm.confを編集できたら、/etc/init.d/bluetooth restartで再起動します。

ここまできたらSH-04Aとのペアリングをしてみます。SH-04A側を接続待機状態にして、以下のコマンドを打ってみます。

$ rfcomm connect 0 

成功すると、SH-04ABluetoothアイコンの点滅が止まり、灰色になったと思います。Gentoo側は、"Connected /dev/rfcomm0 〜"のように表示されており、
"Press CTRL-C for hangup" と表示されたままで停止していれば成功です。

さて、次に実際にモデムとして接続するんですが、接続される方はパケホーダイ・ダブルであることを確認しておいてください。パケホーダイ・ダブルは現在PCとのデータ通信(パケット通信)で、13,000円まで利用した場合は、以降定額となるようになっています。

・・・なんですが、さっぱり接続できません。正確に言えば、Bluetooth経由でSH-04Aにパケット接続を開始させることはできているんですが、そこから先に行けない状態です。

私の/etc/conf.d/netは次のようになっています。

config_ppp1=( "ppp" )
dhcp_ppp1="nontp"

link_ppp1="/dev/rfcomm0"

pppd_ppp1=(
        "defaultroute"
        "usepeerdns"
        "ipcp-accept-remote"
        "ipcp-accept-local"
        "lock"
        "460800"
        "modem crtscts"
)

phone_number_ppp1=( "*99***1#" )
username_ppp1='test'
password_ppp1='test'

chat_ppp1=(
        'ABORT' 'BUSY'
        'ABORT' 'ERROR'
        'ABORT' 'NO ANSWER'
        'ABORT' 'NO CARRIER'
        'ABORT' 'NO DIALTONE'
        'ABORT' 'Invalid Login'
        'ABORT' 'Login incorrect'
        'TIMEOUT' '5'
        '' 'ATZ'
        'OK' 'AT'
        'OK' 'ATDT\T'
        'TIMEOUT' '60'
        'CONNECT' ''
        'TIMEOUT' '5'
        '~--' ''
)

どっかが悪いんだとは思いますが。状況が変わったら追記していこうと思います。