LTE 通信端末 L-02C を RaspberryPi 上で動かしてみる

IoT
dav

前回 Windows から LTE 通信端末の L-02C を使ってインターネットアクセスしようとしましたが、断念しました。

LTE 通信端末 L-02C を Windows10 上で動かしてみる
現在、↓にあるように、Raspberry Pi から L-02C を動作させてみようと考えています。この L-02C は中古で手に入れたものです。なので、まずは動作確認として手始めに Windows10 上で動作できるか、やってみよう...

今回はターゲットをラズパイに絞って動作を試みます。

参考にさせて頂いたサイト

いきなりですが、今回は自分ひとりの力ではとても出来なかったので、以下のサイト様を参考にさせてもらいました。

USB 3G モデム L-02CをRaspberry Pi 3で使えるようにしてMVNOのSIMカードで通信する
MVNOのSIMをUSB接続で使えるUSB 3G モデム L-02Cを買いました。Raspberry Pi 3で使えるようにしてみます。 これで外で自由に通信できるようになります。
Qaplaの覚書・メモ・備忘録・独言 Raspberry Pi をUSBモデムでインターネット接続
プログラミングやサーバ設定などの覚え書きを中心に書いています。
2015年12月 – matoken's meme
L-02CでLTEルータ作成 - orenomemo
ArchLinux な BeagleBone Black を L-02C でルータ化した時のメモ書き。L-02Cは接続が切れたあとの再接続に抜き挿しが必要と一部で言われてたりするが、実際にはまず以前の接続を切ってやるようにすると問題なくリダイアル可能。wvdialconf で設定ファイルの雛形を作った場合、この ATH...
L-02CのAPNを手動で設定する方法 - orenomemo
USB LTEモデムL-02CのAPNをWindowsのツール無しで設定する方法について。

セットアップ手順

参考サイト様の受け売りになりますが、自分の備忘録として、一応残しておきます。

ちなみに、上記で挙げているこちらのページで、中盤まではほぼそのままいけます。

接続条件

  • 使用する SIM
    • mineo のDプラン(200MB)のお試しのやつ

  • 使用する LTE ドングル
    • L-02C

必要なパッケージのインストール

$ sudo apt-get update
$ sudo apt-get install ppp usb-modeswitch wvdial

モードの切り替え設定

L-02C は、ストレージモードとモデムモードという、2つのモードが存在するらしいです。
そして、デフォルトではストレージモードらしく、モデムとして使用するためにはわざわざモードを切り替えないといけいないということです。
(ストレージモードは、ファームウェアとかのインストーラが入っているらしいですが、RaspberryPi では使用しません)

で、切り替えるためには「一回ストレージを eject する必要がある」とか、「usb-modeswitch をインストールしてからL-02Cを接続すると勝手にモデムとして認識される」とか、情報が錯綜していますが、とりあえず今回は安牌をとって、ストレージモードと認識されたモデムをモデムモードに切り替える usb_modeswitch の設定をしておきます。(前述の通り、不要の可能性があります)

設定ファイルを開きます。

$ sudo leafpad /etc/usb_modeswitch.conf

以下をファイル末尾に追加して保存します。

# LG L-02C LTE
DefaultVendor=0x1004
DefaultProduct=0x61dd
TargetVendor=0x1004
TargetProduct=0x618f

なお、これは本来はちゃんと調べてやる必要があるみたいですが、今回は省略しています。なので、他環境での動作は保証できません。

認識されているか確認

以下を実行し、モデムモードとして認識しているか確認します。

# モードとして認識しているか確認
$ dmesg | grep ttyUSB
[   38.792796] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
[   38.796105] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
[   38.796761] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2
[   38.797243] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB3

# デバイスを認識しているか確認
$ ls -la /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0  8?  4 23:04 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1  8?  4 23:04 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2  8?  4 23:04 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3  8?  4 23:04 /dev/ttyUSB3

詳細はよくわかっていないですが、L-02Cの場合は ttyUSB0 〜 ttyUSB3 が認識され、そのうち ttyUSB2 を通信に使用するらしいです。

LTE のネットワークにつなぐための設定

デバイス側の設定

L-02C に対して、APN を設定してやる必要があるみたいです。
よくわかっていないですけど、たぶん L-02C 内のメモリに対して書き込みを行うという認識です。

まずデバイスと対話形式で設定するためのツールをラズパイにインストールします。

$ sudo apt-get install cu

そして、cu を使って以下のように対話形式で設定を行います。
なお、この cu はかなりシビアなやつで、途中で入力ミスしても BackSpace が効かないので困っちゃいます。失敗したら ~. で抜けれますが、レスポンス悪いですし、一から設定やり直しになります。私がちゃんと理解していないだけ?

$ cu -l /dev/ttyUSB2
Connected.
# これはオマジナイらしい
ATZ
OK

# デバイスの確認
ATI
NTT DOCOMO, INC.
OK

# SIMカードの確認
AT+CPIN?
OK

# 今回はマイネオのSIMを使うのでこうしていますが、他SIMだと適切なAPNを設定する必要あり
AT+CGDCONT=1,"IP","mineo-d.jp"
OK

# 設定できているか確認するためのエコー
AT+CGDCONT?
+CGDCONT: 1,"IP","mineo-d.jp",,0,0,0
OK

# 設定を保存
ATZ0
OK

# 終了
~.

ちなみにですが、私は最初実行したとき AT+CPIN? で ERROR が返ってきました。ググっても情報でてこないのでかなり焦ったのですが、単純に SIM カードを裏表逆に入れてしまっていただけでした。逆に言うと、裏表逆でも ATI は正常に OK が返ってくるので、お気を付けください・・・(といってもこんなミス普通しませんが😓)

ツール側の設定

LET で接続するためには、 wvdial というツールを使うのですが、それに対する設定をします。

$ sudo leafpad /etc/wvdial.conf

設定ファイルを、以下のように書き換えます。

[Dialer Defaults]
Init1 = ATZ
Init2 = ATH
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
# 適切な APN を設定する
Init4 = AT+CGDCONT=1,"IP","mineo-d.jp"
Dial Attempts = 3
Stupid Mode = 1
Modem Type = Analog Modem
Dial Command = ATD
Stupid Mode = yes
Baud = 460800
New PPPD = yes
# 適切な APN を設定する
APN = mineo-d.jp
Modem = /dev/ttyUSB2
ISDN = 0
# 電話番号っぽいので個別設定が必要な気がするけど、以下のような固定記述でよいっぽい
Phone = *99***1#
Carrier Check = no
# 適切なやつ(たぶんSIMカードの同封資料に書いてある)
Password = mineo
# 適切なやつ(たぶんSIMカードの同封資料に書いてある)
Username = mineo@k-opti.com

接続してみる

上記まで設定したら、ちゃんと接続できるはずです。
以下を実行します。

$ sudo wvdial

すると、以下のように「CONNECT」が出ると接続出来たっぽいです。

--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATH
ATH
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","mineo-d.jp"
AT+CGDCONT=1,"IP","mineo-d.jp"
OK
--> Modem initialized.
--> Sending: ATD*99***1#
--> Waiting for carrier.
ATD*99***1#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Sun Aug  4 21:45:14 2019
--> Pid of pppd: 2101
--> Using interface ppp0
--> local  IP address XXX.XXX.XXX.XXX
--> remote IP address XXX.XXX.XXX.XXX
--> primary   DNS address XXX.XXX.XXX.XXX
--> secondary DNS address XXX.XXX.XXX.XXX

なお、このまま放置しておくと接続されっぱなしになって、不本意にパケットを消費してしまうかもしれないので、不用な時は Ctrl+C 等で切断しておいたほうが良いと思います。

以上が、接続するまでの流れになります。

現状できていないこと・課題点

  • L-02C をズパイに接続のまま起動すると、結構な頻度でハングアップする
    • OS 起動時なので結構めんどくさそう
    • とりあえずの解決策は、起動後に L-02C を接続することだが・・・
    • ウェブ上にはいくつか情報がありそうなので、解決する気もする
  • 起動後、自動で LTE 接続が有効にならない
    • LTE 接続するためには、 sudo wvdial を実行しないといけない
    • こちらとか、こちら(こちらの方法は試したけどうまくいかなかったが・・・)に挙げられているので、試したらなんとかなるかも
  • 現在やろうとしている状況では、複数のラズパイで同じ環境を作る必要がある。そのため、簡単なセットアップ方法を用意しておきたい
    • Docker のコンテナ的なのが用意できればいいんだけど、現状気力もないしスキルもない
    • シェルスクリプト化するのが一番現実的か?

コメント

タイトルとURLをコピーしました