Edited at

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

More than 1 year has passed since last update.


イントロダクション

※この記載方法だと、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は、株式会社ソラコムの登録商標です。