SoftBankの C01SW (USB接続モバイル端末)を使用して、インターネットに接続する方法を紹介します。C01SW は、マスストレージ(microSD)とシリアルモデムの2種類のデバイスを利用できます。ここでシリアルモデムを使いSoftBankのサーバと ppp 接続をおこないます。
おおまかな手順は下記のようになります。
- シリアルモデムのドライバを用意する。
- ppp 機能を組み込む。
- ppp 関連の設定をおこなう。
- フラッシュイメージを作成する。
- ppp 接続をおこなう。
なお、本 Howto では、以下の環境を想定しています。
ご利用の環境に合わせて適宜読みかえてください。
- 対象製品: Armadillo-500 FX
- Atmark Distバージョン: 20090318
- Linuxカーネルバージョン: 2.6.26-at4
1. シリアルモデムのドライバを用意する。
シリアルモデムのドライバには、Linuxカーネルに含まれているドライバまたは C01SW のメーカーが提供しているドライバを利用できます。
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)ではこの問題が修正されているので、最新版を利用することをおすすめします。バージョン1.6.0のドライバでは C01SW のデバイス情報が既に登録されているので、追加する必要はありません。
ダウンロードしたアーカイブからsierra.cを取り出して、カーネルソースに含まれているドライバ(drivers/usb/serial/sierra.c)を上書きします。
カーネル設定
ドライバのソースを準備できたら、以下のようにAtmark Distのmake menuconfigを実行してカーネルのフラッシュイメージにドライバを含むように設定します。
[PC ~/atmark-dist]$ make menuconfig
Main Menu Vendor/Product Selection ---> --- Select the Vendor you wish to target (AtmarkTechno) Vendor --- Select the Product you wish to target (Armadillo-500-FX.dev) AtmarkTechno Products Kernel/Library/Defaults Selection ---> --- Kernel is linux-2.6.x (default) Cross-dev (None) Libc Version [*] Customize Kernel Settings (NEW)
Linux Kernel Configuration Device Drivers ---> [*] USB support ---> <*> USB Serial Converter support ---> <*> USB Sierra Wireless Driver (NEW)
デバイスノードについて
デバイスが認識されると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コマンドにはデータ通信のノードでも利用できます。
2. ppp 機能を組み込む。
pppdを含んだユーザランドを利用します。Atmark Distのmake menuconfigで以下のようにpppdを選択できます。
Main Menu Vendor/Product Selection ---> --- Select the Vendor you wish to target (AtmarkTechno) Vendor --- Select the Product you wish to target (Armadillo-500-FX.dev) AtmarkTechno Products Kernel/Library/Defaults Selection ---> --- Kernel is linux-2.6.x (default) Cross-dev (None) Libc Version [*] Customize Vendor/User Settings (NEW)
Userland Configuration Network Applications ---> [*] pppd
pppdを選択してから make します。
[PC ~/atmark-dist]$ make
3. ppp 関連の設定をおこなう。
まず、pppd が使用する /var/lock ディレクトリを作成します。
[PC ~/atmark-dist]$ mkdir romfs/var/lock
次に、pppd が使用する設定ファイルを作成します。
romfs/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'
romfs/etc/ppp/chap-secrets
"ai@softbank" * "softbank"
romfs/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
4. フラッシュイメージを作成する。
イメージを作成し、Armadillo に書き込みます。 カーネルも書き換えるのを忘れないようにしてください。
[PC ~/atmark-dist]$ make image [PC ~/atmark-dist]$ hermit download -i images/linux.bin.gz -r kernel [PC ~/atmark-dist]$ hermit download -i images/romfs.img.gz -r userland
5. ppp 接続をおこなう。
C01SW をArmadilloに接続してから、以下のコマンドを実行して接続します。
[armadillo /etc/ppp]# pppd call softbank
接続にはしばらく時間がかかります。
正常に接続できると、「ppp0」というネットワークインターフェースが作成されます。
ネットワークインターフェースの状態はifconfigコマンドで確認できます。
[armadillo /etc/ppp]# ifconfig ppp0
最後にDNSサーバのIPアドレスをシステムログ(/var/log/messages)で調べて設定します。
[armadillo /etc/ppp]# grep nameserver /var/log/messages
[armadillo /etc/ppp]# vi /etc/resolv.conf
nameserver IPアドレス
カーネルとユーザランドイメージ
動作確認に利用したフラッシュイメージ (Armadillo-500 FX用)