wvdialへの3G接続がIPを取得できず、コード16で終了しました。

wvdialへの3G接続がIPを取得できず、コード16で終了しました。

私はRaspbian、3G USBアダプタを使って試していusb_modeswitchますwvdialこのチュートリアル以前は他の3Gアダプタとうまく機能していました。

私の3GアダプタはZTE D6601で、SIMカードにはPINがなく、WindowsとUbuntu 15に組み込まれているモバイルブロードバンドツールを使用してISPツールと完全に接続されています。ただし、これはRaspberry Piのコマンドラインを介して行う必要があります。

これまでに試したことは次のとおりです。 Raspbianを起動するとlsusb返されます。

Bus 001 Device 004: ID 19d2:0154 ZTE WCDMA Technologies MSM 

だから私は走る

sudo usb_modeswitch -I -v 19d2 -p 0154 -c /etc/usb_modeswitch.conf 

これにより、ProductIDが次のように変更されます。

Bus 001 Device 009: ID 19d2:0108 ZTE WCDMA Technologies MSM 

IDが0154の3Gドングルが2つ以上あるため、DefaultProduct標準の移行ルールはusb_modeswitch機能しません。 0108は、Ubuntuがデバイスを切り替える場所、またはsudo eject仮想CDドライブの場合に何が起こるのか、それを使用しました。

私は/etc/network/interfacesWiFi接続を使用するように変更されました。

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

今まではそんなに良くなった。を実行すると、sudo wvdialconfモデムがで検出されます/dev/ttyUSB1。その後、次のように定義さsudo wvdial dcomれていますdcom(APN "e-connect"が正しいため、ユーザー/パスは不要です)。

[Dialer dcom]
Modem = /dev/ttyUSB1
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","e-connect"
Stupid Mode = 1
Modem Type = Analog Modem
Phone = *99#
ISDN = 0
Username = { }
Auto Reconnect = 1
Password = { }
Baud = 460800

シェルは以下を返します。

--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","e-connect"
AT+CGDCONT=1,"IP","e-connect"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT 21600000
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Sat Apr 25 18:09:08 2015
--> Pid of pppd: 5530
--> Using interface ppp0
--> pppd: [08]FX[01]�FX[01]8GX[01]p<X[01]�PX[01]�QX[01] (+4 more times)

実行すると生成されたとifconfig言われますppp0が、割り当てられたIPアドレスはありません。そして約10秒後、次のようなことが起こります。

--> Disconnecting at Sat Apr 25 18:09:39 2015
--> The PPP daemon has died: A modem hung up the phone (exit code = 16)
--> man pppd explains pppd error codes in more detail.
--> Try again and look into /var/log/messages and the wvdial and pppd man pages for more information.
--> Auto Reconnect will be attempted in 5 seconds
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATZ
ATZ
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","e-connect"
AT+CGDCONT=1,"IP","e-connect"
OK
--> Modem initialized.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATZ
ATZ
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","e-connect"
AT+CGDCONT=1,"IP","e-connect"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
ERROR
--> Invalid dial command.
--> Disconnecting at Sat Apr 25 18:09:45 2015

もう一度実行すると、wvdial dcom上記の2番目の接続試行()の出力が繰り返され、設定もInvalid dial command実行されませんppp0。奇妙なことは、すぐにsudo wvdialconf(期間は/etv/wvdial.conf同じままです)再接続できますが、IPを割り当てずに10秒後に接続が切断されることです。私はこれを何度も繰り返しました。

おそらくこれも興味深いでしょう。自動的に再接続するように設定されているにもかかわらず、生成されたwlan0瞬間にIPが失われ、ppp0再び動作するようにできましたsudo ifdown wlan0sudo ifup wlan0

ベストアンサー1

ついに解決策を見つけました。捨てて代わりに(包装で)wvdial使用しました。 10時間前に接続を確立しましたが、まだ同じIPで接続が有効になっています。これが私がする方法です:nmclinetwork-manager

ステップ1:usb-modeswitch3G USBスティックがストレージデバイスではなくモデムとして認識されるように、実行を開始してください。そこには多くのチュートリアルがあるのでここでは詳しく説明しません(はい)。

ステップ2:インストールするネットワーク管理者RPiで:sudo apt-get install network-manager network-manager-gnome -y.を実行して、NetworkManagerがモデムを認識していることを確認しますnmcli dev。その場合、次の表が表示されます。

DEVICE        TYPE                      STATE
ttyUSB2        gsm                      disconnected

(そうしないと、usb-modeswitch欠陥がある可能性があり、システムはモデムを見つけることができません。)

ステップ3:Xサーバーを起動し、startxメニューからNetworkManagerを開き、新しいモバイルブロードバンド接続を作成します(モバイルブロードバンドタブ>追加)。ウィザードはプロセスを案内し、プロバイダーを選択することもできますので、APNの設定を気にする必要はありません。ツールは接続ファイルを生成し、/etc/NetworkManager/system-connections/次のステップで接続名として使用されるため、ファイル名を記録しておく必要があります。

ステップ4:質問で述べたように、Xサーバーなしでコマンドラインでそれを実行できるはずです。ここでsudo nmcli con up id "Connection ID"、接続IDは、手順2で作成した接続の名前です。これがすべてです。接続を切断するには、を実行しますsudo nmcli con down id "Connection ID"

おすすめ記事