EMOBILE のデータ通信モジュールを使用して、インターネットに接続する方法を紹介します。
データ通信モジュールは、USB 接続タイプの D02HW/D21HW/D22HW/D23HW を使用します。
これらは Linux からは、マスストレージ、シリアルモデム、シリアル端末の三種類のデバイスに見えます。
それらのうち、シリアルモデムを使いプロバイダのサーバと ppp 接続をおこないます。
おおまかな手順は下記のようになります。
- USB デバイスドライバを修正する。
- ppp 機能及び USB デバイスドライバを組み込む。
- ppp 関連の設定をおこなう。
- 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 端末を使用してインターネットに接続すると、ほぼ同じ手順ですので、そちらの記事もご参照ください。