ppdデバッグの心得.md

2730 ワード

説明
  • ppdは、3 gモジュールを駆動するための形態であり、その本質は、オペレータAPNと協議し、接続を確立する
  • である.
  • は、オペレータとの間でpppプロトコルを使用し、ユーザがアプリケーション層でシステムから提供されるsocketを使用すればよく、ハードウェアの違いによるアプリケーションの違いを避けるために、どのインターフェースのデバイスを使用しているかを無視することができる.
    ppdのコマンドは一般的に
    ppd call[option]
    pppdプログラムに入ると、フロントを占有する可能性があります.CTRL-Cを使用して、同時にpppdを終了したり、コマンドの後に'&'を追加して、他のスレッドで動作させたり、コンソールが占有されないようにします.
    プロセス
    二つの過程に分類します.
  • chat
  • pppネゴシエーション
  • chat
  • は、AT命令を使用して、モジュールをAPNの制定に接続し、PPPモード
  • に進む.
    私は自分のchatスクリプトを共有します.
    quectel-chat-connect
    #!/bin/sh
    exec /opt/usr/bin/chat -s -v		\
    ABORT "BUSY"				\
    ABORT "NO CARRIER"			\
    ABORT "NO DIALTONE"			\
    ABORT "NO ANSWER"			\
    TIMEOUT 5				\
    "" AT					\
    'OK-+++\c-OK' ATE0			\
    OK ATI					\
    OK AT+CSQ				\
    OK AT+CPIN?				\
    OK AT+COPS?				\
    OK AT+CGREG?				\
    0,1 AT+CGDCONT=1,"IP","$LTE_APN",,0,0	\
    OK ATDT*99#				\
    CONNECT					
    
    quectel-chat-disconnect
    ABORT "ERROR"
    ABORT "NO DIALTONE"
    SAY "\NSending break to the modem
    " "" +++ATH SAY "
    Good bye
    "
    IPの取得に成功したら、デバイスはpppインターフェースを通じてインターネットを利用することができます.
    その中:
  • AT+COPS?キャリア
  • を取得することができます.
  • AT+CGREGモジュールがネットワークに接続されているかどうかを確認してもいいです.応答+CGREG:0,1はインターネットに登録されていることを表しています.
  • AT+CGDCONTは、APNを設定するコマンドであり、異なるキャリアのAPNが異なるため、誤ったオペレータを使用すると、カードがロックされる可能性があります.
  • ATDT命令はダイヤルアップ命令*99菗は番号で、私が実験した時に移動/聯通はこの番号でインターネットを利用できます.
    ppp協議
    ppp協議時にAPNサーバと協議し、通信時に使用するパラメータを決定し、自機IPを取得する.
    quectel-ppp
    hide-password
    noauth
    connect /etc/ppp/peers/quectel-chat-connect
    disconnect '/opt/usr/bin/chat -E -s -v -f /etc/ppp/peers/quectel-chat-disconnect'
    debug
    /dev/ttyUSB2
    19200
    # If you want to use the HSDPA link as your gateway
    defaultroute
    # pppd must not propose any IP address to the peer
    noipdefault
    # No ppp compression
    novj
    novjccomp
    noccp
    ipcp-accept-local
    ipcp-accept-remote
    local
    # For sanity, keep a lock on the serial line
    lock
    dump
    logfile /var/log/pppd_log
    -detach
    # retry when failed
    persist
    maxfail 10
    user "test" password "test"
    crtscts
    remotename 3gppp
    ipparam 3gppp
    # Ask the peer for up to 2 DNS server addresses
    usepeerdns
    
    その中:
  • prsistは重連パラメータであり、maxfailは最大重連回数
  • を設定する.
  • -detach設定pppはバックグラウンドで動作し、SIG信号を印刷したり受信したりしません.nodetachを使用するとフロントで動作し、SIG信号
  • を承諾して受信します.
    収穫
  • 私のワークフローは毎回ppdダイヤルする前に4 GモジュールのRESET再起動モジュールを引っ張って、1 s過ぎたらまた高くなります.
  • は更に15 sを過ぎて、ダイヤルを始めて、モジュールが再起動した後に、システムはUSBの再列挙を行う必要があります.これは時間がかかります.
  • はppd call quectel-pppを実行してppp接続を行って、この時カードのネットを過ぎるのが遅いならば、初めてネットを打つことができるかもしれません.
  • 、APNはLTEを通じています.APN=CMNETは、shellスクリプト内部変数として、pppdプログラムの
  • に伝えられます.