モバイルデータ通信USBスティック Softbank C02LC を使う
背景・概要 †
引越先のマンションで光ファイバが利用可能になるのが2ヶ月後などと聞かされ、 半ばヤケになり立ち寄ったビックカメラでSoftbankのデータ通信カード"C02LC"が1円で売られていたので早速契約。 なんとかUbuntuで動かすことに成功した。
実験環境 †
- Xubuntu 9.10 Karmic Koala 32bit版
- Xubuntu 10.04 Lucid Lynx 32bit版
参考 †
"Ubuntu C02LC"とか"linux C02LC"で検索すると以下のような記事が見つかる。
が、上記のページの内容をそのままやっただけでは自分の環境では動かなかった。
動かすには †
- wvdialパッケージをインストールする。*1
$ sudo apt-get install wvdial
- C02LCを挿した状態でPCを起動する。
- このようにすると、C02LCはモデムとして認識される。
- 起動してから挿すと、C02LCはUSBストレージとして認識されてしまう。 こういう時は"usb_modeswitch"というプログラムで動作モードを変更するのが定石だが、C02LCではそれもうまくいかないようだ。
- 端末からlsusbを実行してベンダIDとプロダクトIDを確認する。モデムとして認識されているなら
Bus 002 Device 005: ID 1c9e:9900
こんな感じに表示される。ストレージとなってしまっている場合、Bus 002 Device 005: ID 1c9e:f000
となる。 - モデムとして認識されているのを確認したら、
$ sudo modprobe usbserial vendor=0x1c9e product=0x9900
として、シリアルポートデバイス(/dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2)を作成。 - /etc/wvdial.confに以下のように書く
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Password = em Phone = *99***1# Modem Type = Analog Modem Stupid Mode = 1 Carrier Check = no Baud = 9600 New PPPD = yes Dial Command = ATDT Modem = /dev/ttyUSB2 ISDN = 0 Username = em
上記のうち、"Stupid Mode"と"Carrier Check"の設定が多分、ミソ。 あと、何気にモデムデバイスが/dev/ttyUSB2というのもびっくりする。 - 覚悟ができたら
$ sudo wvdial
- うまくいけば、ppp0などというネットワークインタフェースが作成され、使えるようになっているはず。
起動時にストレージとして認識される (2010/06/13追記) †
きっかけは不明だが、なぜかC02LCが起動時にストレージとして認識されるようになってしまった。 しょうがないのでusb_modeswitchを使ったらとりあえず動いた。
Lucidでは、usb_modeswitchはパッケージとして提供されている。
$ sudo aptitude install usb-modeswitch
依存関係でインストールされる"usb-modeswitch-data"にはいろんなデバイス用のコンフィグファイルが収められている。 C02LCがストレージとして認識されていると、ベンダーID=0x1c9e, プロダクトID=0xf000なので、これのためのコンフィグを試してみる。
$ sudo usb_modeswitch -c /etc/usb_modeswitch.d/1c9e:f000
ちなみにこのコンフィグファイルの中身は
######################################################## # MobiData MBD-200HU DefaultVendor= 0x1c9e DefaultProduct=0xf000 TargetVendor= 0x1c9e TargetProductList="9063,9603,9000" CheckSuccess=20 MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
こんな感じ。意味は分かりません。
実行時のメッセージからすると失敗してたようにも見えたが、lsusbで確認するとちゃんとモードが切り替わってたので、あとは上記の手順で接続できた。
接続スクリプト †
c02lc_connect ※自己責任でお使い下さい
C02LCを使って接続するためのシェルスクリプトを書いてみた。 wvdialとusb_modeswitchをインストールして設定済みであることが前提条件。 C02LCがストレージとして認識されているのか、モデムとして認識されているのかを自動で判断して接続する。
バグ? †
C02LCを挿したままPCを再起動すると、たまにgdmが立ち上がらなかったりテーマ設定が変わったり、何か妙な挙動をする。 何なんだ?再現性も今いちだし、放置するしかないか…。
