Help us understand the problem. What is going on with this article?

Raspberry PiにてUSB-LTEモジュール+格安SIMでインターネット接続

More than 3 years have passed since last update.

はじめに

Qiitaに投稿するのも初めてで、おっかなびっくり書いてみる。

概要

家庭内LANのない場所でもRaspberry Piをオンライン利用したく、LTE-USBモジュールを用いてネット接続を試みたもの。
途中やりだが、記録として残しておく。

構成

-Raspberry Pi Zero(not W)
-Raspbian(not lite)
-L-03F(LG/ドコモ)
-OCNモバイルoneのSIM
-USBハブ付き有線LANアダプタ LAN-TXU2H3A

下準備

1.L-03FをWindows環境にて接続。CD/DVDドライブ(ドライバインストールディスク)として認識されないよう、設定しておく。(すみません、各自調べてください。)
2.Raspberry Pi ZeroにRaspbianをインストールしておく。
3.有線LANアダプタを接続。必要に応じて、IPアドレスを固定。
4.L-03Fを接続。

手順

wvdialのインストール

LAN環境にて。

$ sudo apt-get install wvdial

lsusbコマンドにて、L-03Fが認識されていることを確認。

$ lsusb
Bus 001 Device 004: ID 1004:6366 LG Electronics, Inc.

上記から、Vender IDが1004、Product IDが6366であることがわかります。

modprobeコマンドでデバイスを認識させる。

上記にて調べた、ベンダーIDとプロダクトIDを用います。

$ sudo modprobe usbserial vendor=0x1004 product=0x6636

/dev/にttyUSB?デバイスとして表示されればOK

上記modprobeコマンドの実行結果を確認する。

$ ls -l /dev/ttyU*
crw-rw---- 1 root dialout 188, 0  8月 20 15:11 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1  8月 20 15:13 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2  8月 20 15:06 /dev/ttyUSB2

lsusbコマンドにて、L-03Fの詳細を調べる。その1。

$ lsusb -d 1004:6366 -v | grep "bNumEndpoints"
Couldn't open device, some information will be missing
      bNumEndpoints           2
      bNumEndpoints           3
      bNumEndpoints           3

lsusbコマンドにて、L-03Fの詳細を調べる。その2。

$ lsusb -d 1004:6366 -v | grep "bInterfaceNumber"
Couldn't open device, some information will be missing
      bInterfaceNumber        0
      bInterfaceNumber        1
      bInterfaceNumber        2

認識状況まとめ

こういう状況らしい。

デバイス bNumEndpoints bInterfaceNumber
ttyUSB0 2 0
ttyUSB1 3 1
ttyUSB2 3 2

ダイヤル設定の修正

wvdial.confを、OCNモバイルoneにあわせて修正します。

$ sudo nano /etc/wvdial.conf
wvdial.conf
 [Dialer Defaults]
Phone = *99***1#
APN = lte-d.ocn.ne.jp
Username = mobileid@ocn
Password = mobile
New PPPD = yes
Stupid Mode = yes
Init1 = ATZ
Init2 = AT+CGDCONT=1,"IP","lte-d.ocn.ne.jp"
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Dial Attemps = 3
Modem Type = Analog Modem
Modem = /dev/ttyUSB1
Dial Command = ATD
Baud = 460800
ISDN = 0
Carrier Check = no
Auto DNS = 1
Check Def Route = 1

L-03Fの場合は、ttyUSB1がモデムとして動作するようです。(方々の状況より)

ためしにつないでみる

$sudo wvdialを実行

$sudo wvdial
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT+CGDCONT=1,"IP","lte-d.ocn.ne.jp"
AT+CGDCONT=1,"IP","lte-d.ocn.ne.jp"
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATD*99***1#
--> Waiting for carrier.
ATD*99***1#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Sun Aug 20 16:33:52 2017
--> Pid of pppd: 4243
--> Using interface ppp0
--> pppd: 委鷆枇[01]効[01]
--> pppd: 委鷆枇[01]効[01]
--> pppd: 委鷆枇[01]効[01]
--> pppd: 委鷆枇[01]効[01]
--> pppd: 委鷆枇[01]効[01]
--> pppd: 委鷆枇[01]効[01]
--> local  IP address 153.157.201.255
--> pppd: 委鷆枇[01]効[01]
--> remote IP address 10.64.64.64
--> pppd: 委鷆枇[01]効[01]
--> primary   DNS address 222.146.35.1
--> pppd: 委鷆枇[01]効[01]
--> secondary DNS address 221.184.25.1
--> pppd: 委鷆枇[01]効[01]

文字が化けますが、接続が確認できるかと思います。
L-03Fのランプでも接続が確認できます。

今回は試すだけなので、終了します。[ctrl]+[c]押下にて中断。

^CCaught signal 2:  Attempting to exit gracefully...
--> Terminating on signal 15
--> pppd: 委鷆枇[01]効[01]
--> Connect time 0.2 minutes.
--> pppd: 委鷆枇[01]効[01]
--> pppd: 委鷆枇[01]効[01]
--> pppd: 委鷆枇[01]効[01]
--> Disconnecting at Sun Aug 20 16:34:02 2017

自動接続化(udev)

ここらへんから雲行きが怪しくなってくる

udevの編集

udevにファイルを追加することで、一連の設定の自動実行を試行する。

udev(userspace device management)とは,カーネルがパソコンへの接続を検出したデバイスに対して,動的に「デバイス・ファイル」を作成して割り当てるための仕組みです。 Linuxは,システムに存在するあらゆるリソースをファイルとして扱うという特徴を持っています。 - IT Proより。

$sudo nano /etc/udev/rules.d/99-usb.rulesにて、udevを編集する。設定ファイル名は、適当。
2桁数字+任意の文字.rulesでよいらしい。)

99-usb.rules
KERNEL=="ttyUSB*", ATTRS{../idVendor}=="1004", ATTRS{../idProduct}=="6366", ATTRS{bNumEndpoints}=="02", ATTRS{bInterfaceNumber}=="00", SYMLINK+="modem"

idVendor、idProduct、bNumEndpoints、bInterfaceNumberは、それぞれ最初に調べた値を記入。

再起動

上記、udevの設定を確認するため、再起動。

$reboot

ここで躓く

方々のサイトによれば、この段階で、/dev/ttyUSB*/dev/modemが見えるはずなのだが、私の環境では、/dev/modemが見えなかった。
というか、/dev/ttyUSB*も見えない。
modprobeコマンドを再実行したところ、/dev/ttyUSB*が見えるようになった。modprobeコマンドって、起動のたびに再実行が必要なのかな??

udevの編集(2度目)

試行錯誤し、99-usb.rulesの先頭に一行追加した。
編集後のファイルは下記の通り。

99-usb.rules
ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6366", RUN+="/sbin/modprobe usbserial vendor=0x1004 product=0x6366"
KERNEL=="ttyUSB*", ATTRS{../idVendor}=="1004", ATTRS{../idProduct}=="6366", ATTRS{bNumEndpoints}=="03", ATTRS{bInterfaceNumber}=="01", SYMLINK+="modem"

1.1004:6366をみつけたら、modprobeコマンドを実行。ttyUSB*を作成。
2.ttyUSB*の中に1004:6366をみつけたら、シンボリックリンク/dev/modemを実行

といったところだろうか。

再起動

上記、udevの設定を確認するため、再起動。

なんかちがう・・・

$ ls -l /dev/mo*
lrwxrwxrwx 1 root root 7  8月 20 15:06 /dev/modem -> ttyUSB0

使いたいのはttyUSB1なのに、ttyUSB0にシンボリックリンクが張られてしまった・・・
→解決しました。

自動接続化(ifup/ifdown)

気を取り直して、続き(うまくいくはずの作業)を書いてみる。

/etc/network/interfacesの編集

$ sudo nano /etc/network/interfaces

を実行し、/etc/network/interfacesの最下部に、下記記述を追加する。

allow-hotplug ocn
iface ocn inet wvdial

ダイヤル設定の修正

wvdial.confを、自動接続化にあわせて修正します。
/dev/ttyUSB1/dev/modemに修正。

$ sudo nano /etc/wvdial.conf
wvdial.conf
 [Dialer Defaults]
Phone = *99***1#
APN = lte-d.ocn.ne.jp
Username = mobileid@ocn
Password = mobile
New PPPD = yes
Stupid Mode = yes
Init1 = ATZ
Init2 = AT+CGDCONT=1,"IP","lte-d.ocn.ne.jp"
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Dial Attemps = 3
Modem Type = Analog Modem
Modem = /dev/modem
Dial Command = ATD
Baud = 460800
ISDN = 0
Carrier Check = no
Auto DNS = 1
Check Def Route = 1

ifupで接続、ifdownで切断

$ sudo ifup ocn

でインターネット接続、

$ sudo ifdown ocn

でインターネット切断ができる。

今後の展開予定

-自動接続を実現する。
-Raspberry Pi単独でDDNSを運用する。

参考記事

http://qiita.com/dietposter/items/068019ee53252206a6bf
http://qiita.com/hiroyasu55/items/e0ad9d04a9d8feb5c654
http://qiita.com/yumatsud/items/e159d7ffe73de3a65deb
http://qiita.com/gimy/items/1d49f8e08210e9c9f20a

jiisenonba
20歳新卒で特定派遣エンジニアになるも色々あり過ぎて29歳で退職。30代で経理事務職になるも、マクロやRPAで事務仕事効率化を進めたらやりすぎで(?)仕事がなくなり退職。もう一度エンジニアを目指すか、事務職に留まるか、別方面を目指すか悩んでいる40前のおっさん。
https://twitter.com/jiisenonba
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした