カーネルとユーザランド
動作確認に利用したLinuxカーネルバージョン:2.6.26-at4
動作確認に利用したAtmark Distバージョン:20090318
Linux標準ドライバ
Linuxカーネルに含まれているsierraドライバを利用できますが、2.6.26までのカーネルではドライバにC01SWのデバイス情報(VENDOR IDとPRODUCT ID)が登録されていないため追加する必要があります。
具体的に、カーネルソースのdrivers/usb/serial/sierra.cを修正してデバイステーブル配列(id_table)に以下の定義を登録します。
- VENDOR ID: 0x1199
- PRODUCT ID: 0x6890
以下のような定義になります。
{ USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6890, 0xFF, 0xFF, 0xFF)},
メーカー提供ドライバ
2.6.26の標準ドライバではC01SWの初期化に問題があって通常より時間がかかります。メーカーのサイトからダウンロードできる新しいドライバ(バージョン1.6.0以降)ではこの問題が修正されているので、最新版を利用することをおすすめします。このドライバではC01SWのデバイス情報が既に登録されているので、追加する必要はありません。
デバイスノード
デバイスが認識されるとttyUSBデバイスノードが沢山生成されますが、利用可能なノードは以下の3つだけになります。
ノード名 (linux-2.6.26まで) | ノード名 (linux-2.6.27以降) | 用途 |
---|---|---|
/dev/ttyUSB9 | /dev/ttyUSB3 | ATコマンド制御 |
/dev/ttyUSB12 | /dev/ttyUSB4 | データ通信 |
/dev/ttyUSB18 | /dev/ttyUSB6 | データ通信 |
- 他のUSBシリアルデバイスが接続されていない状態で、C01SWのノードがttyUSB0から始まる前提になっています。
- データ通信のノードはどちらでも利用できます。
- 接続開始に必要なATコマンドにはデータ通信のノードでも利用できます。
PPP設定
pppdを含んだユーザランドを利用します。Atmark Distのmake menuconfigで以下のようにpppdを選択できます。
Userland Configuration Network Applications ---> [*] pppd
以下のpppd設定で動作を確認しました。
/etc/ppp/peers/softbank
lcp-echo-failure 0 /dev/ttyUSB12 115200 debug defaultroute usepeerdns ipparam softbank ipcp-max-failure 4 ipcp-accept-local ipcp-accept-remote noauth user "ai@softbank" crtscts lock connect 'chat -v -f /etc/chatscripts/softbank'
/etc/ppp/chap-secrets
"ai@softbank" * "softbank"
/etc/chatscripts/softbank
ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT 'NO CARRIER' ABORT DELAYED '' AT OK ATZ OK 'AT+CGDCONT=1,"IP","softbank"' OK-AT-OK "ATD*99#" CONNECT \d\c
これで、pppd call softbank
を実行して接続できます。