2009/10/12(月)Ubuntu9.04でWILLCOM CORE 3G

UbuntuでWILLCOM CORE 3Gを使うときのメモです。今回はUbuntu9.04のgnome-ppp、NetworkManagerそれぞれで動作確認をしました。

最初にすること

以前にも書きましたが、今回使用したモデムはHX003ZT(ZTE MF633)です。このモデムにはゼロインストール機能というものがついており、そのままUSBに差し込むとUbuntuではストレージとして認識されます。Windowsだととても便利なのですが、Ubuntuではこれをモデムとして認識させる必要があるため、ワンステップ手間が増えてしまいます。

モデムとして認識させる方法は調べた限りでは2通りで、1つが USB_ModeSwitch というツールを使う方法で、もう1つがATコマンド(AT+ZCDRUN=8)で切り替える方法です。

USB_ModeSwitch
USB_ModeSwitch は、USBデバイスが複数の機能を持っているとき切り替えるソフトです。nblogの中の人は試していないので、詳しくは書けないのですが、以下を参考に設定するといいと思います。
Linuxメモ Ubuntu 9.04 (Jaunty Jackalope) - Willcom CORE 3G(HX003ZT)を使う

AT+ZCDRUN=8
ATコマンドで設定する方法ですが、モデムとして認識させたWindowsマシンで、ハイパーターミナルやPuTTYから直接モデムにATコマンドを送りつけます。
ATE
AT+ZCDRUN=8
これでWindows、Ubuntu問わずモデムとして認識されるようになります。戻す(ゼロインストールを有効にする)ときは AT+ZCDRUN=9 です。急にユーティリティやドライバが必要になったりすると困るので、事前に中からファイルを抜き出しておいてMicroSDに入れ、そのMicroSDをHX003ZTに挿しておくと便利だと思います。

どちらの場合でも、USBコネクタにHX003ZTを差し込んだあと、/dev に ttyUSB0~2 まで作成されていれば問題ないと思います。問題ないのですが、なんでデバイスが3つ作成されるのか、調べてもわかりませんでした。

Gnome-ppp編

まずはgnome-pppをインストールします。
$ sudo apt-get install gnome-ppp
WILLCOM CORE 3Gにあわせて設定していきます。
GNOME-PPP
Username: wcm
Password: wcm
Phone number: *99#
Setup
Device: /dev/ttyUSB2
Type: USB Modem (Analogでも接続できる、たぶん関係なし)
Speed: 早め
Init Strings(というかATコマンド)はいまだによくわかっていないので、適当に空白にしています。nblogの中の人はAPNがよく書き換わるので以下のような設定です。
Init Strings
Init2 : ATZ
Init3 : AT+CGDCONT=1,"PPP","a.willcomcore.jp"
ここまでで gnome-ppp の設定は終了です。Connect を押して接続できれば大丈夫です。以降は gnome-ppp の起動に関する設定です。


pppdにroot権限が必要なので、起動時は sudo gnome-ppp と入力しないといけないのですが、コンソールから毎回手入力は面倒なので visudo で設定をします。しかし、visudo なのにエディタがviじゃないので、まずはエディタをviにします。
sudo update-alternatives --config editor
sudo visudo で最後の行に以下を追加
%admin ALL=NOPASSWD: /usr/bin/gnome-ppp
アプリケーションメニューの gnome-ppp を sudo gnome-ppp に変更します。これでメニューから gnome-ppp が起動できるようになります。

NetworkManager編

USBに差し込んだ段階で、ZTEのモデムとして表示されるので、すぐ使えそうですがそうでもありませんでした。これとは関係ないですが、emobileのUSBモデムも VendorID と ProductID を変えて読んでもらえれば、そのままいけると思います。

HX003ZTの VendorID と ProductID はlsusbで確認できます。この場合 VendorID が 19d2、ProductID が 0031です。ちなみにストレージとして認識されている状態だとProductID は 2000になるようです。このblogを書くときに数台のUbuntuマシンに導入して確認したのですが、ONDA Communication S.p.A.は表示されるマシンとされないマシンがありました。
Bus 002 Device 004: ID 19d2:0031 ONDA Communication S.p.A. 

HX003ZT(MF633)の認識
/usr/share/hal/fdi/information/10freedesktop/10-modem.fdi を編集するのですが、すでにZTEのモデム群の設定がありますので、MF632の下に付け加えます。
        <!-- ONDA MF633 HSDPA USB dongle -->
        <match key="@info.parent:usb.product_id" int="0x0031">
          <match key="@info.parent:usb.interface.number" int="0">
            <append key="modem.command_sets" type="strlist">IS-707-A</append>
          </match>
        </match>
udevとNetworkManagerを再起動して、モデムをUSBに差し込むと、NetwokManagerの表示が「モバイルブロードバンド」となるはずです。ちなみに以前のバージョンではhalの情報でモデムを識別していたそうなので、これだけで使えるようになったそうです。しかし今ではもう少し設定が必要なので次にいきます。


NetworkManagerの識別
NetworkManagerがきちんとモデムを識別する必要があります。というわけで確認のため以下のコマンドを入力します。
$ /lib/udev/nm-modem-probe -x /dev/ttyUSB2
ID_NM_MODEM_GSM=1
ID_NM_MODEM_PROBED=1
これはGSMとして識別されている状態です。WILLCOM CORE 3GはCDMAモデムなので、以下のように返ってこないといけません。
ID_NM_MODEM_IS707_A=1
ID_NM_MODEM_PROBED=1

9.10がまもなく出ることですし(直ってるかどうかはわかりませんが)、WILLCOM CORE 3G以外のモデムを使う予定もないので、参考サイトのお二方と同じように /lib/udev/nm-modem-probe を以下のように書き換えることにします(もともとの nm-modem-probe はバックアップしておきます)
#!/bin/sh
echo "ID_NM_MODEM_IS707_A=1"
echo "ID_NM_MODEM_PROBED=1"
もう1度udevとNetworkManagerを再起動して、モデムをUSBに差し込むとNetwokManagerの表示が「自動モバイルブロードバンド(CDMA)接続」に変わるはずです。すでに設定がある人はGSMの設定がベースとなっていると思うので、1回削除して作り直したほうがいいと思います。

システム>設定>ネットワーク接続、で接続先の編集をして、あとは接続ボタンにチェックを入れるだけ。これでNetworkManagerからWILLCOM CORE 3GのHSDPA接続できるようになります。

参考にしたサイト
higuchi.com - Jolicloud 実戦配備 (Ubuntu 9.04 の Network Manager で e-mobile につなぐ)
God is in the details - Ubuntu 9.04 and E-Mobile (D03HW)