• 差分
  • リロード
  • 一覧
  • 最終更新のRSS

モバイルデータ通信USBスティック Softbank C02LC を使う

#contents

* 背景・概要 [#yd77818a]

引越先のマンションで光ファイバが利用可能になるのが2ヶ月後などと聞かされ、
半ばヤケになり立ち寄ったビックカメラでSoftbankのデータ通信カード"[[C02LC:http://mb.softbank.jp/mb/data_com/product/usb/c02lc/]]"が1円で売られていたので早速契約。
なんとかUbuntuで動かすことに成功した。

** 実験環境 [#o0868ddd]
- Xubuntu 9.10 Karmic Koala 32bit版
- Xubuntu 10.04 Lucid Lynx 32bit版

* 参考 [#ue733d7f]
"Ubuntu C02LC"とか"linux C02LC"で検索すると以下のような記事が見つかる。
- [[CentOS 5.4 と Softbannk C02LC:http://ultrauseless.spaces.live.com/blog/cns!63D20CF80D9772C7!275.entry]]
- [[Ubuntu 9.10 で Softbank C02LC:http://ultrauseless.spaces.live.com/blog/cns!63D20CF80D9772C7!277.entry]]
- [[LinuxでSoftbank c02lcを使う:http://yyatsuo.com/?p=86]]

が、上記のページの内容をそのままやっただけでは自分の環境では動かなかった。

* 動かすには [#u91d6087]

+ wvdialパッケージをインストールする。((そもそもPCをネットにつなげないのなら、ネットカフェなどでパッケージだけダウンロードしてインストールする))
 $ 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追記) [#m6acff7c]

きっかけは不明だが、なぜか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で確認するとちゃんとモードが切り替わってたので、あとは上記の手順で接続できた。


* 接続スクリプト [#g925bf38]
- &ref(c02lc_connect); ※自己責任でお使い下さい

C02LCを使って接続するためのシェルスクリプトを書いてみた。
wvdialとusb_modeswitchをインストールして設定済みであることが前提条件。
C02LCがストレージとして認識されているのか、モデムとして認識されているのかを自動で判断して接続する。


* バグ? [#yc75ed6a]

C02LCを挿したままPCを再起動すると、たまにgdmが立ち上がらなかったりテーマ設定が変わったり、何か妙な挙動をする。
何なんだ?再現性も今いちだし、放置するしかないか…。