Willcom03 で Zaurus SL-6000Wの復活!?

ザウルスSL-6000は非常に堅牢でお気に入りなのですが、WILLCOMで使おうとするとCF型のデータカードでしかネット使えません。WILLCOMでは現在主力(?)はW-SIMであり、このジャケットもPCMCIAかUSBしかなくてCFが使えない、CFが果たして出るのかも分からないという状態です。

私もW-SIMがメインになってからZaurus SL-6000Wを何とかこれで通信させようといろいろやってきましたが、usbやCF経由ではお世辞にスマートと言い難く、使用をあきらめておりました。

今回、BT内蔵のWillcom03(WS020SH)を入手したので、PCからのBT-MODEM接続を行い、更にSL-6000Wの内蔵BTからも接続ができました。あまりこの組み合わせでまとめた情報はない様なので、備忘録をかねてココに書きます。(すばらしいソフトを公開してくださったOS2さん、参考情報のページの皆様、ありがとうございます)

  1. 1. Willcom03をノートPC (Thinkpad X61 tablet, Win-XP tablet edition)のBTモデムとして設定する。

参考

  • ComrelayはComRelay 0.893を使いました。up0911.zipより入手し、Willcom03に転送して実行できるようにしておきます。
  • PCでは内蔵のBluetoothを使います。Bluetoothの制御ソフト=スタックですが、Thinkpadはwidcommのもののようです。
    • ポートの確認:「コントロールパネル」->「Bluetooth設定」で「ローカルサービス」タグを選びます。ここにあるBluetoothシリアルポート(無ければ作る)を記憶しておきます。{私の場合はCOM9でした。}
    • モデムのインストール:あらかじめ、ネットインデックスからDD(WS002IN)のWindowsドライバーをダウンロード、展開しておきます。「コントロールパネル」->「電話とモデムのオプション」で「モデム」のタブから、「追加」を選びます。
      • 一覧から選択したハードウェアをインストールするで、「モデム」を選択
      • 「モデムを一覧から選択するので検出しない」にチェック
      • ディスク使用をクリックで、参照先は展開したドライバーWS2002IN\Modem Driver\W-SIM.inf を選択し、OK
      • 「選択したポート」にチェックし、ここで、先ほど確認したポート{私の場合COM9}を選択、続行・完了
      • インスール後、モデムのプロパティを開き、「ネットワーク」「設定」「PPP設定」でLCP拡張...., ソフトウェア圧縮...., 単一リンク....のチェックを外します。TCP/IP設定で、「PPPリンクのIPヘッダーの圧縮を使う」のチェックも外します。
    • ダイヤルアップ設定:ThinkpadですとActive connectionを使っている人が多いと思います。私の場合は新規接続作成で先のモデムが選べませんでした。実はここの選択はあまり関係なく、Windowsの「新しい接続ウィザード」であらかじめ作った接続設定をACで選ぶことで対応しました。
      • BT modem化による接続はclubhで接続できません。(規約違反?、実際にもブロックされています)よって、ダイヤルアップは他のプロバイダーを使う必要があります。できるかどうかテストするならば、PRIN等でも良いでしょう。
    • BTでのペアリング:ThinkpadのBluethoothをONにします。Willcom03の「設定」「Bluetooth」で同様にBTをONにして、Willcom03側で「新しいデバイスの追加」でPCを検索・認識します。認識後、「このデバイスから使用するせービスを選択します」に「シリアルポート」が在ることを確認し、これを選択します。
    • Willcom03側で、「COMポート」「新しい発信ポート」を選び、接続したPCを選んで、COM7を割り当てます。(COM7はComRelayがポート決めうちのため)
    • 接続準備・ComRelay起動:ComRelayを起動します。設定に失敗していると黙って起動しませんので、注意してください。起動すると、PC側に「Bluetooth接続が正常に完了しました」というポップアップが出ます。(Thinkpad+widcommに場合)
    • BT用ダイヤルアップで接続します。BT通信がうまくいっていれば、ComRelay画面上の数字が刻々と変わるはずです。変わらなければ、BT通信設定に問題があります。
  1. Zaurus SL-6000WからWillcom03経由でBTモデム接続する
    1. Zaurus SL-6000WにスペシャカーネルとBlueZを導入する。
      • Zaurus SL-6000WはそのままではおそらくBluetoothは全く使えません。標準のネットワーク通信のBT接続も相手が限定されてほとんど使えないという話です。そこで、BlueZを入れるためにスペシャカーネルを入れる必要があります。
      • スペシャカーネルBluetoothの話はあちこちにあり、試行錯誤しましたが、結局 tosiponさんの情報を元にうまくいきました。
      • SL-6000用のスペシャカーネルの最終版は16cの様です。これをインストールしました。kernel modulesもインストールします。(http://tetsu.homelinux.org/zaurus/kernel/index.html)
      • bluez-zaurus_2.3-2.4.18d_arm.ipkをインストールします。他のbluez-zaurus-2.3b_arm.ipkなどは動きませんでした。(ここからインストール可能)
      • インストール後、コマンドラインでsuしてから、 /sbin/depmod -avを念のためやっておきます。うまくいけば、/etc/rc.d/init.d/bluetooth startでエラーを出すことなく各種デーモンが起動します。うまくいかないと、起動時にrfcommでエラーが出たりします。
    2. SL-6000W内蔵bluetoothを動かしてみる
      • hciattach /dev/ttyS2 csr 115200を実行すると、継続的に内蔵Bluetoothの青LEDがつくはずです。私の場合、最初は一瞬青LEDが点くものの、エラーになって動かなかったのですが、2.3_2.4.18dにバージョンではすんなり動きました。
      • hcitool scanで検出可能にしているWillcom03が見つかるはずです。見つければBTアドレスを記録して、/etc/bluetooth/rfcomm.confに設定しておきましょう。(注:この設定はいらないと思います)

bash-2.05$ hcitool scan
Scanning ...
00:13:E0:CB:4A:1B WM_030

      • /etc/bluetooth/pinと、/etc/bluetooth/givepinを000みたいなPIN番号にしておく。
      • tetsuさんの情報によると、内蔵Bluetoothバイスはhciattachしてから5秒ぐらいで勝手にリセットされるため、特別なスクリプトで起動する必要があるそうです。ここにそのスクリプトがありますが、最初を手直しして、SERVICES="SP" を追加としないとシリアルポートが使えません。また、中頃にあるdaemon dundの部分はコメントアウトしておきましょう。(後述のrfcommでエラーが出ます)

start()
{
hcistart
hciwait
hcireset

modprobe bnep
daemon pand --listen --persist --master --role NAP
#daemon dund --listen --persist --msdun --pppd /usr/sbin.rom/pppd call dun

for i in $SERVICES; do
sdptool add --channel=1 $i
done
}

      • hci.confでは、最後のところに、以下の設定をしないと、認証でパスコードを聞いてこないでうまくいかないようです。

encrypt enable;
auth enable;

      • bluetooth.shを適当なところ(/usr/local/bin)において、/usr/local/bin/bluetooth.sh startとします。エラーが出ず、青LEDの点灯を確認したら、Willcom03側のBluetoothでデバイス検索をしましょう。zaurusというデバイスが見え、そのサービスにシリアルポートが出てくれば成功です。チェックを入れて保存します。シリアルポートが出てこない場合、スクリプトのなかのsdptoolでのSPサービス登録に失敗しています。
      • SPサービスを動かします。"rfcomm listen 2 1"を実行して、エラーが出ずに接続待ちが出ることを確認します。エラーが出る場合、rfcomm.confの設定や、bluetooth.shのdundのコメントアウトが忘れられていないか、確認してください。
    1. ダイヤルアップ接続サービスの登録
      • たむたむさんのページに詳しいですが、ダミーで一旦赤外線接続のダイヤルアップを作り、これを手直ししてBT-modem用に作ります。詳しくはそちらに譲ります。
      • ポイントは、最後の/etc/ppp/peers/IRDAxxxxx の書き換えで、 "/dev/rfcomm0 115200"ではなく、 "/dev/rfcomm2 115200"を使うと言うことです。
    1. 接続テスト
      1. まず、ザウルスで /usr/local/bin/bluetooth.sh restart を行います。
      2. Willcom03でもBTをオンにしておきます。
      3. ザウルスでrfcomm listen 2 1を実行すると、「Waiting for connection on channel 1」でコネクト待ちになります。
      • Willcom03でComrelayを実行します。立ち上がると、ザウルス側に、以下の表示が出ますので、設定しておいたダイヤルアップを行うと接続します。

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


とりあえずつながりましたが、手順がまだまだ複雑です。Comrelayをキーに割り当てて、簡単に起動できるようすれば、すこしはましですが....
詳しくきちんと書きたいんですが、今は時間が無いので、このへんで...