L-02C でインターネット接続する方法

  • 最初、Debianサーバーに差し込み、NetworkManager を正しくセットアップするのに試行錯誤しましたが、使えるようにはなりました。

  • しかし、通信がなくなると切断してしまう、ソケットを抜き差ししないと使えなくなる、などの現象を解決できず、結局、Windowsクライアントのほうに挿す事にしました。

  • 恐らく、Debianサーバーに、省電力や接続時間を短縮する為の設定が入っているのだろう、とは推測されますが、別途の機会に検証したいと思います。

  • (2016/03) 検証を再開しました。

ZeroCD 機能への対処

  • ZeroCD 機能とは、最初 CD-ROM のように振舞いwindows用のドライバを提供し、それをイジェクトすると、モデムとして振舞う機能です。(docomoではゼロインストールと呼んでいる)
  • デフォルトでは、L-02C はこれが有効になっている。
  • これを回避し常時モデムとして振舞うようにするには、一般的な方法として、usb-modeswitch を使う方法と、L-02C 固有の方法として、AT%USBMODEM=0 とATコマンドを入力する方法がある。
    • (!) usb-modeswitch には、最初から L-02C が登録されているので、設定は不要。

  • ネットで見つけた記述:
    以下を一度実行しておくと、次回の接続以降は最初から USB モデムとして認識するようになります。

$ screen /dev/ttyUSB2
ATZ <– 念の為初期化
OK
AT%USBMODEM=0 <– モデムとして最初から認識するように設定
[0] MODEM DRIVER

OK
ATZ0 <– 現在の設定値を保存
OK
[Ctrl-A] k <– screen コマンドを抜ける

ATZ がタイムアウトする問題

  • 「Some modem like Novatel LTE can take up to 5 seconds to complete the ATZ command.」[1] なんだそうだ。

  • 上手くいかない事があったのはこの為だ、だが、wvdial には、タイムアウトを細かく制御する機能がない。
  • <img alt=”” height=”16″ src=”http://ultra.tank.jp/public/moniker/img/attention.png” title=”” width=”16″ /> pppconfig (=>pppconfig に関する Tips)で設定し、pon、poff を使って間接的に chat を呼び出したほうが確実に繋がる。

    • (!) chat のタイムアウトはデフォルトで40数秒だから、短か過ぎることはまずない。

USBモデムのデバイスファイル名について

問題-1 L-02C を抜き差しした場合

  • wvdial 等の接続アプリは、モデムデバイスを指定する必要があるが、これは一番最初は /dev/ttyUSB2 になる。

  • L-02C を抜き差しするとこれの末尾の数字が変わってしまい、通信ができなくなってしまう。
    • (環境によっては数字が変わらないこともある、確認済)
  • 論より証拠:
    Mar 19 08:54:26 localhost kernel: [291109.241715] option 1-6:1.3: device disconnected
    Mar 19 08:54:26 localhost pppd[7435]: Connection terminated.
    Mar 19 08:54:30 localhost kernel: [291113.004035] usb 1-6: new high-speed USB device number 17 using ehci-pci
    Mar 19 08:54:30 localhost kernel: [291113.138566] usb 1-6: New USB device found, idVendor=1004, idProduct=618f
    Mar 19 08:54:30 localhost kernel: [291113.138578] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    Mar 19 08:54:30 localhost kernel: [291113.138584] usb 1-6: Product: docomo L02C
    Mar 19 08:54:30 localhost kernel: [291113.138589] usb 1-6: Manufacturer: NTT DOCOMO, INC.
    Mar 19 08:54:30 localhost kernel: [291113.141784] option 1-6:1.0: GSM modem (1-port) converter detected
    Mar 19 08:54:30 localhost kernel: [291113.142687] usb 1-6: GSM modem (1-port) converter now attached to ttyUSB19
    Mar 19 08:54:30 localhost kernel: [291113.143019] option 1-6:1.1: GSM modem (1-port) converter detected
    Mar 19 08:54:30 localhost kernel: [291113.143559] usb 1-6: GSM modem (1-port) converter now attached to ttyUSB21
    Mar 19 08:54:30 localhost kernel: [291113.143956] option 1-6:1.2: GSM modem (1-port) converter detected
    Mar 19 08:54:30 localhost kernel: [291113.146539] usb 1-6: GSM modem (1-port) converter now attached to ttyUSB22
    Mar 19 08:54:30 localhost kernel: [291113.146980] option 1-6:1.3: GSM modem (1-port) converter detected
    Mar 19 08:54:30 localhost kernel: [291113.147357] usb 1-6: GSM modem (1-port) converter now attached to ttyUSB23
    $ ls -l /dev/ttyUSB*
    crw-rw---- 1 root dialout 188, 19  3月 19 08:54 /dev/ttyUSB19
    crw-rw---- 1 root dialout 188, 21  3月 19 08:54 /dev/ttyUSB21
    crw-rw---- 1 root dialout 188, 22  3月 19 09:51 /dev/ttyUSB22
    crw-rw---- 1 root dialout 188, 23  3月 19 08:54 /dev/ttyUSB23

問題-2 L-02C の無通信監視タイマーがタイムアウトし、接続が切れた場合

  • 通信がない状態が続き、無通信監視タイマーがタイムアウトすると、L-02C は一旦抜き差ししたのと同じ状態になる。(謎)
  • これも抜き差しした時と同じくモデムデバイスファイルの末尾の数字が変わってしまい、通信ができなくなってしまう。
    • (環境によっては数字が変わらないこともある、確認済)

問題-3 長時間接続中に突然接続が切れた場合

  • 長時間接続していても、突然通信が切れることがある。経験的には24時間に一回くらい。
  • やはり抜き差しした時と同じくモデムデバイスファイルの末尾の数字が変わってしまい、通信ができなくなってしまう。
    • (環境によっては数字が変わらないこともある、確認済)

対処方法

  • /dev/ttyUSB2 の代わりに /dev/serial/by-id/usb-NTT_DOCOMO__INC._docomo_L02C-if02-port0 を使えば、常に同じデバイスファイル名で扱える。

  • /! デバイスファイル名が常に同じになったので、pppd の自動再接続によって、接続を保つ事ができるようになった。

    • $ ls -l /dev/serial/by-id/usb-NTT_DOCOMO__INC._docomo_L02C*
      lrwxrwxrwx 1 root root 14  3月 19 08:54 /dev/serial/by-id/usb-NTT_DOCOMO__INC._docomo_L02C-if00-port0 -> ../../ttyUSB19
      lrwxrwxrwx 1 root root 14  3月 19 08:54 /dev/serial/by-id/usb-NTT_DOCOMO__INC._docomo_L02C-if01-port0 -> ../../ttyUSB21
      lrwxrwxrwx 1 root root 14  3月 19 08:54 /dev/serial/by-id/usb-NTT_DOCOMO__INC._docomo_L02C-if02-port0 -> ../../ttyUSB22
      lrwxrwxrwx 1 root root 14  3月 19 08:54 /dev/serial/by-id/usb-NTT_DOCOMO__INC._docomo_L02C-if03-port0 -> ../../ttyUSB23
    • 参考

Fixed udev rules for USB modems – Unix & Linux Stack Exchange

Linuxで複数のシリアルポートやデバイスを見分ける – TK’s HP

無通信監視タイマーへの対応策

  • 当面、ntp で通信を途切れないようにしているが、今のところ上手くいっている。
  • ネットで見つけた記述:
    サーバに対して時間確認を行う頻度のことを、ポールインターバル (poll interval) と呼ぶ。
    ポールインターバルは、ntpd では動的に変化していく。
    これは、最小 (minpoll) と最大 (maxpoll) で規定され、デフォルトでは、ローカルの時計が安定しないうちは 64 秒毎、それから次第に、128 秒、256 秒と間隔が長くなり、最終的には最大ポールインターバルである 1024 秒 (デフォルトの場合) に落ち着く。
    これらふたつの値は server コマンドのオプションとして "minpoll num " または "maxpoll num " あるいはその両方を指定して、変更することもできる。
    間違えやすいのは、この num が文字通りの秒数ではないという点だ。
    num は 2を基底とする指数、つまり「2 の n 乗」の n にあたるもの (ビット数とも言える)。
    maxpoll のデフォルト値は 10 (1024秒) で、指定可能な最大値は 17 (約36時間25分)。
    minpoll のデフォルトは 6 (64秒) で、指定できる最小値は 4 (16秒) となっている。例では maxpoll を 30分くらいにしたいと思い、num を 11 (約34分) に設定している。
    また、minpoll を 30 秒くらいにしたいなら num には 5 (32秒) を指定する。

 

pppconfig に関する Tips

  • pppconfig による設定方法。
    $ sudo pppconfig xxxx
  • xxxx は好きな名前、iij とか、dmm とか、provider とするとデフォルトの設定になるらしい。
  • 接続は、pon、切断は、poff
    $ pon xxxx

chat の設定ファイル

  • pppconfig で設定すると、/etc/chatscripts/ の中に、指定した名前のファイルが出来る。
  • ネットで検索すると、初期化コマンドに ATH を追加しないと上手くいかないようなので、このファイルに'OK''ATH'の一行を追加する。

  • 設定例:/etc/chatscripts/iij
    # This chatfile was generated by pppconfig 2.3.18.
    # 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
    '' ATZ
    'OK''ATH'
    # ispnumber
    OK-AT-OK "ATDT*99***1#"
    # ispconnect
    CONNECT \d\c
    # prelogin
    # ispname
    # isppassword
    # postlogin

# end of pppconfig stuff

DNS の設定について

  • pppconfig で、DNS の設定を指定できるが、dynamic 以外に指定しても勝手にresolv.conf を書き替えてしまうようだ。
  • DNS を独自に設定したい場合は、 /etc/ppp/ip-up.d/0dns-up の実行権限を取り去ればとりあえず対応できる。
    $ sudo chmod -x /etc/ppp/ip-up.d/0dns-up

L-02C が挿入されたのを検知して ppp 接続する(工事中)

参考

Raspberry Pi 2 + systemd + udevで、USBデバイス挿入時にサービスを起動する – メモ的な思考的な

  • pppconfig の自動再接続指定(Advanced options の persist を enable)さえしておけば、1回の pon コマンドでずっと繋がっているようなので、然程意欲が沸きません、悪しからず。

参考・引用元

脚 注

PrivateMoinAtUltra: MyProof/HowToUseL-02C (last edited 2016-04-01 04:57:22)

カテゴリー: 未分類 | コメントする