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用)