GL-AR150とL-02CでLTEモバイルルータを作ってみた

はじめに
---

[GL Technologies & Microuter Technologies社](https://www.gl-inet.com/)のルータは標準で[OpenWRT](https://openwrt.org/)を実装しています。
[GL-AR150](https://www.gl-inet.com/products/gl-ar150/)と[L-02C](https://ja.wikipedia.org/wiki/L-02C)を使いLTEモバイルルータを作ってみました。SIMカードはLINEモバイルを使います。

GL-AR150の仕様
---

- Atheros 9331 SoC, 400MHz CPU
- 150Mbps
- 16MB Flash, 64M RAM
- OpenWRTプレインストール
- USBポート x 1
- GPIOポート x 4
- 省電力、超小型、安い、分解しやすい

**これだけのスペックならいろいろできますよ。**
<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/9cbde9a9-a631-1de8-fb64-7f7ba073c61d.jpeg">


GL-AR150の初期設定をします
---

####1.GL-AR150の裏蓋にWi-FiのSSIDとKEY(パスワード)が表示されているのでパソコンから接続し、ブラウザで http://192.168.8.1/ に接続します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/a7ccacc5-c94c-5c12-9872-dc5152626ee1.jpeg" width=50%>

####2.言語は【English】を選択します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/a93e9cdd-a762-9851-0ce0-39b99a6414be.png" width=50%>

####3.標準時は【Asia/Tokyo】を選択します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/56679865-8473-f6f8-af51-bdb1dbeed3de.png" width=50%>

####4.パスワードを設定します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/b890a0c7-cc32-e98b-7012-491c206ebbc7.png" width=50%>

####5.下記画面が表示されます。GL-AR150本体のスイッチボタンを【Left】（ルータモード）に変更します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/999fc6c8-6f62-bc3e-c9a4-c4bf750b17dc.png" width=50%>

####6.Wi-Fiパスワードを設定します。その後、新しいWi-Fiパスワードで再接続します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/ae952602-720d-4a8a-38d9-3a29032c1685.png" width=50%>


####7.上位ルータ(192.168.3.1)と接続しインターネット接続できるようWANポートを設定します。メンテナンス用として設定します。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/233665af-2a1a-d719-6132-bc4686df89c6.png" width=50%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/806fb693-cd97-5a56-2e06-4ad53046618b.png" width=50%>

####8.上位ルータとGL-AR150 WANポートをLANケーブルで接続すると、WANポートがアクティブになります。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/e5092bd5-a6f6-ccd0-3614-595c8fcdaabb.png" width=50%>

####9.ファームウェアを最新版にアップグレードします。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/60df4209-495d-51d0-a9b6-3a6e6c88968b.png" width=50%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/01ccb6ce-9c3f-9cdf-416e-585803a0775d.png" width=50%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/97c0a22a-aac4-8319-99a9-c4d032819350.png" width=50%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/6f4604a7-3bee-e9a4-5dc1-9e7dd52bdb3b.png" width=50%>

####10.ファームウェアのアップグレードが終わり、一度セッションが切れます。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/2f072e27-dc9a-a03e-b37e-7fc26b1adc3f.png" width=50%>

####11.もう一度GL-AR150に接続しログインします。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/0f4a8787-3ee7-452f-54d3-17f0fdec5c1a.png" width=50%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/0ca95ae8-11a6-4d1c-d59a-f2ca87fcbc49.png" width=50%>

####12.GL-AR150にsshできるようにします。

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/3458e119-0a74-2eda-7c65-8733eabfb360.png" width=50%>

```shell-session
$ ssh root@192.168.8.1
The authenticity of host '192.168.8.1 (192.168.8.1)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.1' (RSA) to the list of known hosts.
root@192.168.8.1's password: 


BusyBox v1.25.1 () built-in shell (ash)

     _________
    /        /\      _    ___ ___  ___
   /  LE    /  \    | |  | __|   \| __|
  /    DE  /    \   | |__| _|| |) | _|
 /________/  LE  \  |____|___|___/|___|                      lede-project.org
 \        \   DE /
  \    LE  \    /  -----------------------------------------------------------
   \  DE    \  /    Reboot (17.01.4, r3560-79f57e422d)
    \________\/    -----------------------------------------------------------

root@GL-AR150:~# 
```

####13.上位ルータ(192.168.3.1)で、GL-AR150ネットワーク(192.168.8.0)への経路設定をします。

|属性|値|
|:-----------------:|:------------:|
|ネットワーク・アドレス|192.168.8.0|
|サブネットマスク| 255.255.255.0|
|ゲートウェイ| 192.168.3.8|
|メトリック| 1|


GL-AR150にL-02Cを接続し、LINEモバイルのAPN設定をします
---

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

```shell-session
root@GL-AR150:~# opkg update
root@GL-AR150:~# opkg install comgt kmod-usb-serial kmod-usb-serial-option kmod-usb-serial-wwan usb-modeswitch
root@GL-AR150:~# opkg install kmod-usb-net kmod-usb-net-rndis kmod-usb-net-cdc-ether usbutils udev
root@GL-AR150:~# opkg install luci-proto-3g
root@GL-AR150:~# halt
```

####2.GL-AR150にL-02Cを挿入し、WANポートのLANケーブルを外して、電源を入れ直します。

####3.L-02Cを認識しているか、設定内容を確認します。

```shell-session
$ ssh root@192.168.8.1
root@192.168.8.1's password: 

root hubR150:~# lsusb
Bus 001 Device 003: ID 1004:618f LG Electronics, Inc. Ally/Optimus One
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@GL-AR150:~# dmesg | grep ttyUSB
[   18.379276] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[   18.392167] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[   18.405031] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
[   18.417804] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3

root@GL-AR150:~# gcom info -d /dev/ttyUSB2
##### Wireless WAN Modem Configuration #####
Trying list of devices
Product text:

NTT DOCOMO, INC.
OK
====
Manufacturer:           LG Electronics Inc
IMEI and Serial Number: xxxxxxxxxxxxxxx
Manufacturer's Revision: 
L02C-MDM9200-V10e-Jun-11-2014-DCM-
Hardware Revision:

Network Locked:         

Customisation:          

Band settings:          (
)
APN:
##### END #####
```

####4./etc/config/networkを設定します。'3g'を追加します。

```shell-session
root@GL-AR150:~# cp -p /etc/config/network /etc/config/network.org

root@GL-AR150:~# vi /etc/config/network
### Add 9 lines at the end of the file
config interface '3g'
        option proto '3g'             
        option service 'umts'         
        option apn 'line.me'          
        option username 'line@line'   
        option password 'line'        
        option device '/dev/ttyUSB2'  
        option pppd_options 'noipdefault'
        option demand '0'
```

####5./etc/config/firewallを設定します。'3g'の追加と、GL-AR150ネットワーク(192.168.3.0)周りの設定をします。

```shell-session
root@GL-AR150:~# cp -p /etc/config/firewall /etc/config/firewall.org
root@GL-AR150:~# vi /etc/config/firewall
config zone                    
        option name 'wan'
### Modify 1 line ###
#       option input 'REJECT'
        option input 'ACCEPT'
##########################
        option output 'ACCEPT'
        option forward 'REJECT'
### Add 1 line ###
        option masq_dest '!192.168.3.0/24'
##################
        option masq '1'     
        option mtu_fix '1'   
### Modify 1 line ###
#       option network 'wan wan6'
        option network 'wan wan6 3g'
#####################

### Add 3 lines ###
config forwarding
        option src 'wan'                                   
        option dest 'lan'
###################
```

####6./etc/chatscripts/3g.chatを設定します。LINEモバイルへのAPN接続設定をした後、再起動します。

```shell-session
root@GL-AR150:~# cp -p /etc/chatscripts/3g.chat /etc/chatscripts/3g.chat.org
root@GL-AR150:~# vi /etc/chatscripts/3g.chat
ABORT   BUSY
ABORT   'NO CARRIER'
ABORT   ERROR
REPORT  CONNECT
TIMEOUT 10
""      "ATZ"
OK      "ATH"
OK      "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
OK      'AT+CGDCONT=1,"IP","line.me"'
SAY     "Calling UMTS/GPRS"
TIMEOUT 30
OK      "ATD*99***1#"
CONNECT ' '

root@GL-AR150:~# reboot
```

####7.インターフェース'3g-3g'を確認します。

```shell-session
$ ssh root@192.168.8.1
192.168.8.1's password:
root@GL-AR150:~# ifconfig 3g-3g
3g-3g     Link encap:Point-to-Point Protocol  
          inet addr:xx.xx.xxx.xxx  P-t-P:xx.xx.xx.xx  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:416 errors:0 dropped:0 overruns:0 frame:0
          TX packets:592 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:71691 (70.0 KiB)  TX bytes:387335 (378.2 KiB)
```

####8.経路情報を確認します。

```shell-session 
root@GL-AR150:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         xx.xx.xx.xx     0.0.0.0         UG    0      0        0 3g-3g
default         192.168.3.1     0.0.0.0         UG    10     0        0 eth0
xx.xx.xx.xx     *               255.255.255.255 UH    0      0        0 3g-3g
192.168.3.0     *               255.255.255.0   U     10     0        0 eth0
192.168.8.0     *               255.255.255.0   U     0      0        0 br-lan
```

さいごに
---
GL-AR150は[OpenWRT](https://openwrt.org/)も[dd-wrt](https://dd-wrt.com/)も簡単に利用できるようになります。やったね。GPIOポートを上手に使えたらいいな、と思ってる今日この頃です(=^・^=)


参考情報
---

**ありがとうございました。**

- [Rondo Room - WZR-HP-AG300H + OpenWRT + L-02CでWANを3Gでつないでみた](http://yokb.blogspot.jp/2015/10/wzr-hp-ag300h-openwrt-l-02cwan3g.html)
- [OpenWrt - Use 3g/UMTS USB Dongle for WAN connection](https://wiki.openwrt.org/doc/recipes/3gdongle)
- [DD-WRT OpenWrt 適材適所で両方使いたい人向け @ ウィキ - LTE > 3G USBドングルでのWAN接続 > (1)動作環境](https://www57.atwiki.jp/ddwrt_openwrt/pages/53.html)
- [/dev/stkinosh - L-02CでLTEルータ作成](http://trtr.hatenablog.jp/entry/2014/11/23/124239)
- [/dev/stkinosh - L-02Cを最初からUSBモデムで認識させる／手動でAPN登録する](http://trtr.hatenablog.jp/entry/2014/11/27/011913)
- [bearmini's blog - SORACOM を使って学ぶ AT コマンド - 3. 実践編](http://bearmini.hatenablog.com/entry/at-command3)
- [OpenWRT - Routed Client](https://wiki.openwrt.org/doc/recipes/routedclient)