2009/10/08(Thu)Fedora11でE-mobile D23HWを使う方法

2009/10/08 5:25 Software::Linux
ググれば色々と出てくるのだが、今までPPPをLinuxで扱ったことがなかったので、慣れる意味も込めて調べてみた。

wvdial

どうやら、wvdialというのを使うと簡単につなげてくれるらしい。
wvdialというのをyumで入れる。
が、これの起動にkudzuも必要らしいので、併せて入れておく。
# yum install wvdial kudzu
で、E-mobile D23HWをUSBポートに差し込むと、/dev以下にデバイスが出現
$ ls /dev/tty*

/dev/ttyUSB0
/dev/ttyUSB1
この状態で認識は完了。

設定ファイル

設定に関しては、自動でやってくれるコマンドがあるので、ある程度は機械任せ。
# wvdialconf

Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0   S1   S2   S3   
WvModem<*1>: Cannot get information for serial port.
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyUSB1<*1>: ATQ0 V1 E1 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB1<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB1<*1>: Speed 9600: AT -- OK
ttyUSB1<*1>: Max speed is 9600; that should be safe.
ttyUSB1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found a modem on /dev/ttyUSB0.
/etc/wvdial.conf<Warn>: Can't open '/etc/wvdial.conf' for reading: No such file or directory
/etc/wvdial.conf<Warn>: ...starting with blank configuration.
Modem configuration written to /etc/wvdial.conf.
ttyUSB0<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
ttyUSB1<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
で、後は電話番号とユーザ名とパスワードを適宜修正する。
Phone, Username, Passwordの3行を変えればOK。
あと、私はボーレートが9660になっていたので、460800に変えた方がいいかも。
# vi /etc/wvdial.conf

[Dialer Defaults]

Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
Phone = *99***1#
ISDN = 0
Username = em
Password = em
Modem = /dev/ttyUSB0
Baud = 460800

繋いでみる

繋ぎ方は実に簡単
# wvdial

--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
--> Carrier detected.  Waiting for prompt.
--> Don't know what to do!  Starting pppd and hoping for the best.
--> Starting pppd at Thu Oct  8 04:38:58 2009
--> Pid of pppd: 4600
--> Using interface ppp0
--> pppd: ???[08](??[08]

--> pppd: ???[08](??[08]

--> pppd: ???[08](??[08]

--> pppd: ???[08](??[08]

--> pppd: ???[08](??[08]

--> pppd: ???[08](??[08]

--> Disconnecting at Thu Oct  8 04:39:00 2009
--> 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
--> Cannot get information for serial port.
--> Initializing modem.
...(以下ループ)...
となって繋がらない。
これも同じような現象がどこかで紹介されていたのだが、/var/log/messageを見てみると、認証には成功しているらしい。
Oct  8 04:39:35 eel05 pppd[4637]: pppd 2.4.4 started by root, uid 0
Oct  8 04:39:35 eel05 pppd[4637]: Using interface ppp0
Oct  8 04:39:35 eel05 pppd[4637]: Connect: ppp0 <--> /dev/ttyUSB0
Oct  8 04:39:35 eel05 pppd[4637]: CHAP authentication succeeded
Oct  8 04:39:35 eel05 pppd[4637]: CHAP authentication succeeded
Oct  8 04:39:36 eel05 pppd[4637]: Modem hangup
Oct  8 04:39:36 eel05 pppd[4637]: Connection terminated.
Oct  8 04:39:36 eel05 pppd[4637]: Exit.

解決策

またどこかに「一度Windows機で接続してLinuxに繋ぎ直したら、繋がるようになった」という情報があったので、同じようにやってみると、なんと繋がった。なんだこりゃ?

繋がったときのログはこんな感じ。
文字化けは仕方ないですね。
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
--> Carrier detected.  Waiting for prompt.
--> Don't know what to do!  Starting pppd and hoping for the best.
--> Starting pppd at Thu Oct  8 04:57:22 2009
--> Pid of pppd: 5187
--> Using interface ppp0
--> pppd: @{鐃・Xy鐃・
--> pppd: @{鐃・Xy鐃・
--> pppd: @{鐃・Xy鐃・
--> pppd: @{鐃・Xy鐃・
--> pppd: @{鐃・Xy鐃・
--> local  IP address 114.51.19.24
--> pppd: @{鐃・Xy鐃・
--> remote IP address 10.64.64.64
--> pppd: @{鐃・Xy鐃・
--> primary   DNS address 117.55.64.154
--> pppd: @{鐃・Xy鐃・
--> secondary DNS address 60.254.209.158
--> pppd: @{鐃・Xy鐃・

DNSの設定

どうやら、wvdialはDNSまで面倒を見てくれないらしいので、そこは手動で設定が必要とのこと。
# echo "nameserver 117.55.64.154" > /etc/resolv.conf
これでうまく使えるようになりました。

通信速度など

下り
emobile-d23hw-1.png


上り
emobile-d23hw-2.png