警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : SoftBankのC01SWを使用してインターネットに接続する

対象製品: Armadillo-500 FXArmadillo-500

SoftBankの C01SW (USB接続モバイル端末)を使用して、インターネットに接続する方法を紹介します。C01SW は、マスストレージ(microSD)とシリアルモデムの2種類のデバイスを利用できます。ここでシリアルモデムを使いSoftBankのサーバと ppp 接続をおこないます。

おおまかな手順は下記のようになります。

  1. シリアルモデムのドライバを用意する。
  2. ppp 機能を組み込む。
  3. ppp 関連の設定をおこなう。
  4. フラッシュイメージを作成する。
  5. 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用)

関連情報