前回記事
前回ラズパイと4Gモジュールの接続確認を説明しました。今回はインターネット接続まで行います。
① PPP接続準備
まずPPPパッケージ(ドライバ?)を以下のようにインストールします。
$ apt-get install ppp
ppp接続を、APN(インターネットプロバイダ)毎の設定を編集します。ひな形の入手先は忘れましたのでファイル全体をのっけときます。以下太字部をAPNに合わせて変更します。ファイル名はAPN名とします。今回は “rnet” としました。
# example configuration for a dialup connection authenticated with PAP or CHAP
#
# This is the default configuration used by pon(1) and poff(1).
# See the manual page pppd(8) for information on all the options.
# MUST CHANGE: replace myusername@realm with the PPP login name given to
# your by your provider.
# There should be a matching entry with the password in /etc/ppp/pap-secrets
# and/or /etc/ppp/chap-secrets.
user "APNログイン名@APNパスワード名"
# MUST CHANGE: replace ******** with the phone number of your provider.
# The /etc/chatscripts/pap chat script may be modified to change the
# modem initialization string.
connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs -T APN名"
# Serial device to which the modem is connected.
4Gモジュールの接続先デバイスファイル名(例:/dev/ttyUSB2)
# Speed of the serial line.
4Gモジュールとの通信速度(例:115200)
# Assumes that your IP address is allocated dynamically by the ISP.
noipdefault
# Try to get the name server addresses from the ISP.
usepeerdns
# Use this connection as the default route.
defaultroute
# Makes pppd "dial again" when the connection is lost.
persist
# Do not ask the remote to authenticate.
noauth
ラズパイのGPIOで接続指示するタイプの4Gモジュールの場合は、GPIOへの出力を開始します。以下、GPIO 6で、接続を開始する一例です。
#!/bin/sh
# Port of 4G-module on/off is enable.
echo "6" > /sys/class/gpio/export
sleep 0.1
# Set port of 4G-module on/off mode to output.
echo "out" > /sys/class/gpio/gpio6/direction
# Turn on 4G-module.
echo "0" > /sys/class/gpio/gpio6/value
② PPP接続実行
“rnet”は、/etc/ppp/peers/ に配置します。配置後、PPP接続コマンド”pon”を以下のようにたたきます。もちろんスーパーユーザで。
$ pon APN名
接続を確認するには、ifconfig をたたけばよいです。以下のようなにppp0とwwan0が現れればOKです。
ifconfig
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 100.70.xx.xx netmask 255.255.255.255 destination 10.64.xx.xx
(中略)
wwan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.xxx.xx.xx netmask 255.255.0.0 broadcast 169.xxx.xx.xx
(中略)
接続が確認できない場合は、エラー内容はsyslog に出力されているので、内容を確認します。尚接続解除は、”poff”コマンドをたたきます。
OS再起動時、PPPは自動接続されますが、ラズパイのGPIOで接続指示するタイプの4Gモジュールの場合は、rcスクリプトにGPIOへの出力を追加する必要があります。
③ インターネット接続確認
適当なドメインにpingで確認すればよいでしょう。PPP側のルーティング情報を、ルーティングコマンド”route”で以下のように追加設定します。
$ route add -net 0.0.0.0 ppp0
pingの結果は、以下のとおりです。初回すこし時間かかります。ping拒否のドメインもあるので、yahoo かgoole、自社ドメインが適当です。
$ ping yahoo.co.jp
PING yahoo.co.jp (183.79.xx.xx) 56(84) bytes of data.
64 bytes from 183.79.xx.xxx (183.79.xxx.xxx): icmp_seq=1 ttl=51 time=46.5 ms
64 bytes from 183.79.xx.xxx (183.79.xxx.xxx): icmp_seq=2 ttl=51 time=159 ms
( 後 略 )
④ 自動接続設定
ルーティング設定は、OS再起動するとなくなるため、OS起動毎に設定する必要があります。当方では、ppp接続後に自動呼出しされるスクリプト”/etc/ppp/ip-up”に追加しました。
#!/bin/sh
(中 略 )
# if pon was called with the "quick" argument, stop pppd
if [ -e /var/run/ppp-quick ]; then
rm /var/run/ppp-quick
wait
kill $PPPD_PID
fi
/sbin/route add -net 0.0.0.0 ppp0
# Donot exec this shell. exec from /etc/init.d.
##/home/remolog/remolog_main.sh &
また、当方ではラズパイの無線LAN側を、DHCPでなく固定IPでないとうまくいきませんでした。何かの誤りかもしれませんが、注記いたしておきます。
PPP接続側は、/etc/network/interfaces に以下太字部を追加します。
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
auto rnet
iface rnet inet ppp
provider rnet
source-directory /etc/network/interfaces.d
これでインターネット接続までできました。実用時の問題と対策に続きます。
次記事