2013年12月22日日曜日

[Ubuntu]USBモデム「L-03D」をセットアップ

UbuntuでUSBモデム「L-03D」をセットアップして、ppp接続設定を行う方法をご紹介します。今回はNetworkManagerを使わない方法です。

usb_modeswitchを設定


L-03DはUSBポートに挿すとCDROMとして認識される仕様になっています。これはWindowsマシンに挿した時に自動的にWin専用の接続アプリを立ち上げるためです。これを解決するためにUbuntu上では usb_modeswitch を使います。usb_modeswitchはUSBモデムを正しく認識させるためのユーティリティです。
$ sudo apt-get install usb-modeswitch


/lib/udev/rules.d/40-usb_modeswitch.rules
...
# LG L-03D
ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6327", RUN+="usb_modeswitch '%b/%k'"
...
最新のusb_modeswitchには /lib/udev/rules.d/40-usb_modeswitch.rules に上記のような L-03D の設定が既にあるはずです。万が一無ければ追加しておきましょう。


/etc/usb_modeswitch.d/1004:6327
DefaultVendor= 0x1004
DefaultProduct= 0x6327

TargetVendor= 0x1004
TargetProduct= 0x6326

MessageContent=555342431234567800000000000005f1010100000000000000000000000000
次に /etc/usb_modeswitch.d/1004:6327 というファイルを新規作成し、上記の内容で保存します。


/etc/modules
...
usbserial vendor=0x1004 product=0x6326
次に /etc/modules に上の一行を追加します。これにより、OS起動後にL-03Dを自動的にUSBモデムとして認識してくれるようになります。


minicomでCIDを確認


$ sudo apt-get install minicom
$ sudo minicom -D /dev/ttyUSB2
AT+CGDCONT?
minicomを使ってCIDを確認しておきます。L-03D は /dev/ttyUSB2 を使用します。
minicom起動後に入力した AT+CGDCONT? は、CID一覧を表示するためのATコマンドです。

※CIDを新規に割り当てるには?
AT+CGDCONT=n,"IP","xxx.xxx.xxx"
minicom上で上記のコマンドを実行します。n=CID, xxx.xxx.xxx=APNです。


pppconfigで設定


$ sudo apt-get install pppconfig
$ sudo pppconfig
次に pppconfig を使ってプロバイダ接続設定を行います。GUIで設定できますので、プロバイダ設定を見て入力してください。

例:
Number: *99# (CIDを明示的に指定するときは、*99***<CID># とします)
User: プロバイダから提供されたユーザ名
Password: パスワード
Speed: 115200
Com: /dev/ttyUSB2 (L-03Dの場合は固定)
Method: CHAP

参考までに下記に私のpppconfigの設定内容を載せておきます。設定内容は主に、   /etc/ppp/peers/<CONNECTION_NAME> と   /etc/chatscripts/<CONNECTION_NAME> に登録されています。ちなみに私の契約は、ドコモの 「mopera U」 の定額プランです。


/etc/ppp/peers/mopera
# This optionfile was generated by pppconfig 2.3.18. 
# 
#
hide-password 
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/mopera"
debug
/dev/ttyUSB2
115200
defaultroute
noipdefault 
user "<USER_ID>"
 
ipparam mopera

usepeerdns


/etc/chatscripts/mopera
This chatfile was generated by pppconfig 2.3.18.
# Please do not delete any of the comments.  Pppconfig needs them.
# 
# ispauth CHAP
# abortstring
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
'' ATZ
'' ATH
# ispnumber
OK-AT-OK "ATDT*99#"
# ispconnect
CONNECT \d\c
# prelogin

# ispname
# isppassword
# postlogin

# end of pppconfig stuff
さっきもちょっと触れましたが、ATDT*99#のところは、お使いの環境によって ATDT*99***<CID># と読み替えることになります。例えばCIDを1に割り当てていた場合は、ATDT*99***1# となります。私の場合はデフォルトのままでよかったので ATDT*99# としています。

設定は以上です。


接続と切断


接続するときは、
$ pon mopera
切断するときは、
$ poff mopera
とします。
L-03Dは一度切断すると物理的に抜き差しするまで二度と接続できなくなる仕様のようですが、/etc/chatscripts/mopera の OK-AT-OK "ATDT*99#" の直前に '' ATH を追加することで、それが回避されるようです。


トラブルシューティング


切断できなかった時
poffで切断できないときは、もう一度 pon mopera するとなぜか切断できました。

再接続できなかった時
poffで切断後、次のponで再接続できない現象が発生。そんなときは、もう一度ponすると接続できます。

OS起動後USBモデムの認識に時間がかかる
ターミナルから以下のコマンドを叩けば即座にUSBモデムとして認識されます。※上で作った /etc/usb_modeswitch.d/1004:6327 という設定ファイルを明示的に読み込ませているだけです。
$ sudo usb_modeswitch -c /etc/usb_modeswitch.d/1004\:6327

以前にNetworkManagerで設定する方法を紹介しましたが、今回の方法ならターミナルから接続・切断を行えて、よりLinuxっぽい運用ができますね。

ちなみに今回使ったUSBモデム「L-03D」はこれです。


関連エントリ
[Ubuntu] ATコマンドでUSBモデムの電波強度を確認

0 件のコメント:

コメントを投稿