警告メッセージ

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

Howto : ppp通信を行なう

対象製品: Armadillo-9

Armadillo-9でppp(point-to-point protocol)通信をするための説明をします。
ppp通信の実現にはpppdというアプリケーションを使用します。
ここでは、ppp-2.4.3を使うことにします。

また、通信デバイスには本多エレクトロンのAH-H403Cを使用しました。

1. pppdの準備

まず最初にpppのソースを取得します。
ソースを保存するディレクトリは/usr/local/src/pppと仮定します。


[armadillo ~]$ cd /usr/local/src
[armadillo src]$ mkdir ppp
[armadillo src]$ cd ppp
[armadillo ppp]$ apt-get source ppp

注意!ここで取得されるのは最新のソースのため、バージョンが違う場合があります。バージョンが違う場合は、パッチを修正する必要があるかもしれません。

次にppp-2.4.3のArmadillo-9用のパッチを取得します。


[armadillo ppp]$ cd ppp-2.4.3/upstream/tarballs
[armadillo tarballs]$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-9/patches/ppp-2.4.3-on-armadillo-9.patch

アーカイブを展開し、パッチを当てます。


[armadillo tarballs]$ tar zxvf ppp-2.4.3.tar.gz
[armadillo tarballs]$ cd ppp-2.4.3
[armadillo ppp-2.4.3]$ patch -p1 < ../ppp-2.4.3-on-armadillo-9.patch

configureを実行してビルドします。また、必要なものをTARで固めます。


[armadillo ppp-2.4.3]$ mkdir install_dir
[armadillo ppp-2.4.3]$ ./configure
[armadillo ppp-2.4.3]$ make CC=arm-linux-gcc
[armadillo ppp-2.4.3]$ make DESTDIR=`pwd`/install_dir ETCDIR=`pwd`/install_dir/etc/ppp TARGET=armadillo-9 install install-etcppp
[armadillo ppp-2.4.3]$ cd install_dir
[armadillo install_dir]$ tar czvf ppp-on-armadillo-9.tar.gz etc lib sbin

これでpppdの準備は完了です。

2. カーネルの設定とイメージの作成

次は、atmark-distにパッチを当てます。
atmark-distのディレクトリは、/usr/local/src/atmark-distと仮定します。


[armadillo ~]$ cd /usr/local/src
[armadillo src]$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-9/patches/ppp-on-atmark-dist.patch
[armadillo src]$ cd atmark-dist
[armadillo atmark-dist]$ patch -p1 < ../ppp-on-atmark-dist.patch

次にカーネルの設定をします。


[armadillo atmark-dist]$ make menuconfig

以下のように設定を行ないます。

  ●Vendor/Product Selection
  Vendor : AtmarkTechno
  Products : Armadillo-9.PCMCIA

  ●Kernel/Library/Defaults Selection
  (None) Libc Version
  [*] Customize Kernel Settings

Exit,Exit,yes で選択画面を終了させます。
次にKernelの設定です。

  ●Network device support
  [*] PPP (point-to-point protocol) support
  [*] PPP support for async serial ports

  ●Character devices
  [*] Standard/generic (8250/16550 and compatible UARTs) serial support

これでカーネルの設定は完了です。 次はイメージを作成します。


[armadillo atmark-dist]$ make dep all

終了したら、pppを組み込みます。
先ほど作成した、ppp-on-armadillo-9.tar.gzをatmark-distのディレクトリまで持ってきます。


[armadillo atmark-dist]$ mv /usr/local/src/ppp/ppp-2.4.3/upstream/tarballs/ppp-2.4.3/install_dir/ppp-on-armadillo-9.tar.gz .

次に展開します。


[armadillo atmark-dist]$ cd romfs
[armadillo romfs]$ tar zxvf ../ppp-on-armadillo-9.tar.gz

最後にイメージを作成します。


[armadillo romfs]$ cd ..
[armadillo atmark-dist]$ make image

imagesにできたカーネルとユーザーランドのイメージを、Armadillo-9に書込みます。

3. pppの設定例

Armadillo-9上での設定例です。

/etc/ppp/options


name -----
0.0.0.0:0.0.0.0
usepeerdns
defaultroute
lock
local
crtscts

/etc/ppp/pap-secrets


----- * -----

/etc/ppp/ppp-on-dialer


exec chat -v                                        \
      TIMEOUT        3                            \
      ABORT          \nBUSY\r                   \
      ABORT          \nNO ANSWER\r              \
      ABORT          \nRINGING\r\n\r\nRINGING\r \
      ''             \rAT                         \
      OK-+++\c-OK  ATH0                         \
      TIMEOUT        30                           \
      OK             ATD------------              \
      CONNECT        ''

pppdの起動


# /etc/rc.d/rc.pcmcia start
# /sbin/pppd /dev/ttyS2 115200 connect /etc/ppp/ppp-on-dialer

DNSがうまく動いていないとき


# cp /etc/ppp/resolv.conf /etc/resolv.conf

注意!固有の設定は"-----"と表しています。

4. パッチの内容

ppp-2.4.3-on-armadillo-9.patch

ターゲット用のインストール処理を変更しています。
defaultでは、hostのstripが実行されてしまうため、インストール時にエラーとなってしまいます。

ppp-on-atmark-dist.patch

デバイスノードを変更しています。
ttyS2、ttyS3を16550互換の標準シリアル用に追加しています。
ppp0を新しく追加しています。

ディレクトリ /var/lock を追加しています。pppdがロックファイルをここに作るためです。

必要なライブラリ(libdl.so.2)をインストールするようにしています。

カテゴリ: