Dragino社製IoTゲートウェイ LG01-JPを、SORACOM スターターキット(3G USBドングル AK-020)を使ってSORACOM Airに接続する。


イントロダクション

※この記載方法だと、Firewallの設定で、LAN側から3G側に通信ができなかったので、修正版の投稿をあげておきました(こちら)。この方法でも、Firewallの設定変更で対応できると思いますが、より簡単な方法を投稿しておきました。
Dragino社製のIoTゲートウェイ、LG01-JPを、SORACOM社のSORACOMスターターキット(3G USBドングル AK-020)を使ってSORACOM Airに接続する方法を説明します。
SORACOMスターターキットは、ABIT社製の3G USBドングル 「AK-020」と、SORACOM Air SIMが付属します。
AK-020は、DVDディスクと、3Gドングルの両方の機能を持っており、Linuxに差した場合には、3Gドングルとして認識させなければPPP接続ができません。
認識させるには、USBを差した後に、DVDディスクをEjectすればよいのですが、LG01-JPのLinux(OpenWRT)Kernelでは、DVDドライブのドライバーが組み込まれていないため、認識できず、Ejectできません。

この説明では、LG01-JPでAK-020を3G USBドングルとして認識させ、SORACOM Airに接続するまでを説明します。

AK-020をDVDドライブとして認識させる

まずは、LG01-JPにDVDドライブとして認識させEjectし、3G USBドングルとして認識させます。

1. LG01-JPのKernelだと、CD-ROMのejectができないため、Kernelを更新します。

opkgコマンドでパッケージをインストールできるようにします(このコマンドは再起動後は毎回実行しないとパッケージのインストールができないようです)。

# opkg update

2. Kernelパッケージをダウンロードし、インストールします。

  • rootディレクトリに移動します。

# cd /root

  • kernelパッケージをダウンロードします。

# wget http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kernel_3.10.49-1-0114c71ed85677c9c1e4911437af4743_ar71xx.ipk

  • kernelパッケージをインストールします。

# opkg install --force-downgrade kernel_3.10.49-1-0114c71ed85677c9c1e4911437af4743_ar71xx.ipk

3. 必要なパッケージをインストールします。

  • sdparm(SCSIデバイスを制御するコマンドです)をインストールします。

# opkg install sdparm

  • SCSI-CDROMドライバをインストールします。

# opkg install kmod-scsi-cdrom

  • LG01-JPを再起動します。

# reboot

ここまでで、AK-020をDVDドライブとして認識させることができるようになりました。

AK-020を3G USBドングルとして認識させる

AK-020のDVDドライブをEjectし、3G USBドングルとして認識させます。

1. AK-020のDVDドライブをejectする

# sdparm --command=eject /dev/sr0

2. 3G USBドングルとして認識されたか確認する

  • AK-020のVendorIDは15eb、ProductIDは、DVD:a403、3G USBドングル:7d0eです。lsusbコマンドで、ProductIDが7d0eになっていることを確認します。

# lsusb
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 15eb:7d0e

3. LG01-JP起動時に、usbseriakドライバが組み込まれ、AK-020が3G USBドングルとして認識されるための設定をします。

# vi /etc/modules.d/80-usbserial

80-usbserial
usbserial vendor=0x15eb product=0x7d0e

# vi /etc/rc.local
(LG01-JP起動時にsdparmコマンドで、DVDをejectします。)

rc.local
sdparm --command=eject /dev/sr0

※exit 0の前に上記を追加

4. 再起動します。

# reboot

  • USBデバイスが存在するか確認します。

# ls /dev | grep ttyUSB
ttyUSB0
ttyUSB1
ttyUSB2
ttyUSB3

5. ppp接続の設定

  • pppの設定ファイルを作成します。

# mkdir /etc/ppp/peers
# vi /etc/ppp/peers/soracom-ak020

以下を記述します。

soracom-ak020
# This optionfile was generated by pppconfig 2.3.18.
#
#
hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/soracom-ak020"
debug
/dev/ttyUSB0
460800
defaultroute
noipdefault
user "sora"
remotename soracom
ipparam soracom
usepeerdns
persist
replacedefaultroute
  • chatscriptを作成

# vi /etc/chatscripts/soracom-ak020

soracom-ak020
# This chatfile was generated by pppconfig 2.3.18.
'' ATH
OK AT+CFUN=1
OK ATZ
OK 'ATQ0 V1 E1 S0=0 &C1 &D2'
OK AT+CGDCONT=1,"IP","soracom.io"
# Please do not delete any of the comments.  Pppconfig needs them.
#
# ispauth PAP
# abortstring
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
# ispnumber
OK-AT-OK "ATDT*99#"
# ispconnect
CONNECT \d\c
# prelogin
# ispname
# isppassword
# postlogin
# end of pppconfig stuff
  • PPP接続を実行します。

# pppd call soracom-ak020

20秒くらいまってから、接続されたか確認します。

# ifconfig

※Ppp0があるかを確認する。
※Soracomのコンパネでオンラインになっているか確認する。

6. 起動時に自動でPPP接続させる設定をおこないます。

# vi /etc/rc.local

rc.local
sdparm --command=eject /dev/sr0
pppd call soracom-ak020

※pppd call soracom-ak020を追加
Rebootして動作確認

  • PPP接続を切断するには、pppdのプロセスIDを調べて、killして停止します。

# ps | grep pppd
# kill -9 xxxxx(PID)

以上です。

※SORACOM、SORACOM Airは、株式会社ソラコムの登録商標です。