警告メッセージ

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

Howto : EMOBILE の データ通信モジュールを使用してインターネットに接続する

対象製品: Armadillo-500 FXArmadillo-500Armadillo-300Armadillo-9Armadillo-240Armadillo-220

EMOBILE のデータ通信モジュールを使用して、インターネットに接続する方法を紹介します。
データ通信モジュールは、USB 接続タイプの D02HW/D21HW/D22HW/D23HW を使用します。
これらは Linux からは、マスストレージ、シリアルモデム、シリアル端末の三種類のデバイスに見えます。
それらのうち、シリアルモデムを使いプロバイダのサーバと ppp 接続をおこないます。

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

  1. USB デバイスドライバを修正する。
  2. ppp 機能及び USB デバイスドライバを組み込む。
  3. ppp 関連の設定をおこなう。
  4. ppp 接続をおこなう。

なお、本 Howto では、以下の環境を想定しています。
ご利用の環境に合わせて適宜読みかえてください。

  • 対象製品:Armadillo-220
  • atmark-dist:v20090318
  • linux-kernel:linux-2.6.12.3-a9-17
  • データ通信モジュール:D02HW

1. USB デバイスドライバを修正する。

Linux 2.6.12.x では Huawei Technologies 社製 USB 通信モジュールを使用するための機能が不足しているため、USB デバイスドライバを修正します。

Linux カーネル 2.6.12.x ソースに、Huaweiパッチをあててください。
(Linux カーネル 2.6.26 では、パッチは不要です)


[PC ~]$ ls
linux-2.6.12.3-a9-17/   linux-2.6.12_usb-hw.diff.gz
[PC ~] cd linux-2.6.12.3-a9-17
[PC ~/linux-2.6.12.3-a9-17]$ gzip -cd ../linux-2.6.12_usb-hw.diff.gz | patch -p1
patching file drivers/usb/serial/Kconfig
patching file drivers/usb/serial/option.c
patching file drivers/usb/storage/unusual_devs.h
patching file drivers/usb/storage/initializers.h
patching file drivers/usb/storage/initializers.c
patching file include/linux/usb.h

2. ppp 機能及び USB デバイスドライバを組み込む。

カーネルに、以下のデバイスドライバを組み込みます。

  • PPP (point-to-point protocol) support (CONFIG_PPP)
  • PPP support for async serial ports (CONFIG_PPP_ASYNC)
  • USB Mass Storage support (CONFIG_USB_STORAGE)
  • USB Serial Converter support (CONFIG_USB_SERIAL)
  • USB driver for GSM and CDMA modems (CONFIG_USB_SERIAL_OPTION)

また、ユーザランドのアプリケーションとして、pppd を組み込みます。

make menuconfig を使用した場合の設定は下記のようになります。


[PC ~/atmark-dist]$ make menuconfig

Main Menu では、下記のように設定してください。
Productは、使用する Armadillo の種類に応じて適切に選択してください。


Main Menu

Vendor/Product Selection  ---> 
--- Select the Vendor you wish to target
(AtmarkTechno) Vendor
--- Select the Product you wish to target
(Armadillo-220.Base) AtmarkTechno Products 

Kernel/Library/Defaults Selection  --->
--- Kernel is linux-2.6.x
(default) Cross-dev
(None) Libc Version
[*] Customize Kernel Settings (NEW)
[*] Customize Vendor/User Settings (NEW)

次に、カーネルの設定をおこないます。


Linux Kernel Configuration

Device Drivers  --->
    Networking support  --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    USB support  --->
    <*>   USB Mass Storage support
          USB Serial Converter support  --->
          <*> USB Serial Converter support 
          <*> USB driver for GSM and CDMA modems

最後に、ユーザランドの設定をおこないます。


Userland Configuration

Network Applications  --->
[*] pppd

make します。


[PC ~/atmark-dist]$ make dep all

3. ppp 関連の設定をおこなう。

pppd の動作に必要な設定を行います。

まず、pppd が使用する /var/lock ディレクトリを作成します。


[PC ~/atmark-dist]$ mkdir romfs/var/lock

ppp のデバイスノードを追加します。
変更する ext2_devtable.txt は、make menuconfig の際に選択した Product のものとなります。


[PC ~/atmark-dist]$ vi vendors/AtmarkTechno/Armadillo-220.Base/ext2_devtable.txt

下記の1行を追加してください。


/dev/ppp           c      660    0     0     108     0       0       0     -

次に、pppd が使用する設定ファイルを、変更します。
EMOBILE のデータ通信モジュールを使用する場合は、ユーザ名は「em」、パスワードも「em」となります。
また、アクセスポイントは「*99***1#」を使用します。
御利用の環境に合わせて適宜読みかえてください。

/etc/ppp/ppp-on-dialer


#!/bin/sh
exec chat -s -v -t 60                                   \
        TIMEOUT         3                               \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nNO CARRIER\r'                \
        ABORT           '\nNO DIALTONE\r'               \
        ABORT           '\nBUSY\r'                      \
        ''              \rAT                            \
        'OK-+++\c-OK'   ATH0                            \
        TIMEOUT         30                              \
        OK              ATDT*99***1#                    \
        CONNECT         '\d\d'

/etc/ppp/options


lock
name em
defaultroute
usepeerdns

/etc/ppp/pap-secrets


# Secrets for authentication using PAP
# client        server  secret                  IP addresses
em    *       em

ppp-on-dialer はシェルスクリプトですので、実行権限を与えます。


[PC ~/atmark-dist]$ chmod +x romfs/etc/ppp/ppp-on-dialer

resolv.conf は ppp で取得されるものを使用しますので、シンボリックリンクに変更します。


[PC ~/atmark-dist]$ rm romfs/etc/resolv.conf
[PC ~/atmark-dist]$ ln -sf /etc/ppp/resolv.conf romfs/etc/resolv.conf

変更したら、イメージを作成し、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

4. ppp 接続をおこなう。

デバイスドライバを組み込んだ Armadillo-220 にデータ通信モジュールを接続すると、下記のように表示されます。


usb 1-2: new full speed USB device using ep93xxusb and address 2
usb 1-2: Product: HUAWEI Mobile
usb 1-2: Manufacturer: HUAWEI Technologies
scsi0 : SCSI emulation for USB Mass Storage devices
  Vendor: HUAWEI    Model: Mass Storage      Rev: 2.31
  Type:   CD-ROM                             ANSI SCSI revision: 02
sr0: scsi-1 drive
Uniform CD-ROM driver Revision: 3.20
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 5
usb 1-2: USB disconnect, address 2
usb 1-2: new full speed USB device using ep93xxusb and address 3
usb 1-2: Product: HUAWEI Mobile
usb 1-2: Manufacturer: HUAWEI Technologies
option 1-2:1.0: Option 3-port card converter detected
usb 1-2: Option 3-port card converter now attached to ttyUSB0
option 1-2:1.1: Option 3-port card converter detected
usb 1-2: Option 3-port card converter now attached to ttyUSB1
scsi1 : SCSI emulation for USB Mass Storage devices
  Vendor: HUAWEI    Model: Mass Storage      Rev: 2.31
  Type:   CD-ROM                             ANSI SCSI revision: 02
sr0: scsi-1 drive
Attached scsi generic sg0 at scsi1, channel 0, id 0, lun 0,  type 5

USB Serial converter は、ttyUSB0 と ttyUSB1 にアタッチされますが、最初の tty がシリアルモデムになります。
そのため、ttyUSB0 を使用して ppp 接続を行います。


[armadillo ~]# pppd /dev/ttyUSB0 460800 connect /etc/ppp/ppp-on-dialer

接続にはしばらく時間がかかります。
正常に接続できると、「ppp0」というネットワークインターフェースが作成されます。


[armadillo /etc/ppp]# ifconfig ppp0
ppp0      Link encap:Point-Point Protocol
          inet addr:XXX.XXX.XXX.XXX  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:1653 (1.6 KiB)  TX bytes:2225 (2.1 KiB)

以上で、EMOBILE のデータ通信モジュールを使用して、インターネットに接続することができます。


今回のHowtoは、Armadillo-220/240、Armadillo-9、Armadillo-300、Armadillo-500/500 FX に適用することができます。
また、今回の手順は、WILLCOM の PHS 端末を使用してインターネットに接続すると、ほぼ同じ手順ですので、そちらの記事もご参照ください。