Howto

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

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 端末を使用してインターネットに接続すると、ほぼ同じ手順ですので、そちらの記事もご参照ください。