2009/10/14(水)Ubuntuなmbookで内蔵HSDPAを使う

nblogの中の人が所有しているmbookはHSDPA(USIMスロット)を内蔵しています。もしここにWILLCOM CORE 3GのSIMカードを入れて通信できたらいいなあ、という夢のお話です。


現状
WindowsからはUSB外付け状態、SIM内蔵状態ともに接続できる
UbuntuでもUSB外付け状態でgnome-pppまたはNetworkManagerで接続できる


ですから、UbuntuでSIM内蔵状態で通信できる夢を見たいわけです。


夢でやったこと
mbookに内蔵されているのは、買物隊によるとC-motech CHE-628Sというモデムです。lsusb で確認すると以下のように表示されます。
Bus 004 Device 002: ID 16d8:6007 CMOTECH Co., Ltd.
しかし、ttyUSBが存在しないことから、usbserialのドライバはまだ入っていないようです。
$ ls /dev/ttyUSB*
ls: /dev/ttyUSB*にアクセスできません: No such file or directory
ということで、まずはmodprobeでドライバを入れます。
$ sudo modprobe usbserial vendor=0x16d8 product=0x6007
もう1度、ttyUSBを確認します。また3つ出てきました。
$ ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2
毎回入力するのは面倒なので、udevに組み込みます。/etc/udev/rules.d/50-local.rules というファイルを作成して、以下のような中身にします。
SUBSYSTEM=="usb", SYSFS{idProduct}=="6007", SYSFS{idVendor}=="16d8", RUN+="/sbin/modprobe usbserial vendor=0x16d8 product=0x6007"

あとは gnome-ppp の設定です。前回のUbuntu9.04で~を見れば大丈夫だと思います。設定は例によってATコマンドがわからないので適当なのですが、モデムは /dev/ttyUSB1 を使用、Options の Check carrier line のチェックを外す、この2つは大事なのでメモっておきます。

gnome-ppp の起動は前回 sudoer を変更すると書きましたが、システム管理>ユーザーとグループ>ユーザーのプロパティ>ユーザーの権限で、「モデムを使ってインターネットに接続できる」にチェックを入れるのがスマートかもしれません。

USB外付け状態ではNetworkManagerで接続できるところまでがんばりましたが、SIM内蔵では gnome-ppp で接続するところでお手上げです。hal情報に書いておけばNetworkManagerで認識すると思っていたのですが、そんなに甘くなかったようです。こちらのほうは9.10になったらまたチャレンジしたいと思います。

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)

2009/10/11(日)mbookでUbuntu9.10ベータ

いくつか確認しておきたいことがあったので、mbookに入っているUbuntu9.04を9.10ベータにアップグレードしてみました。


1000個ほどファイルがアップデートされて300個(もっとあった気もする)ほど新規でインストールされました。毎度のことですが、/etc以下のファイルを変更しまくってると、設定ファイルの更新でいちいち聞かれて面倒なので、ある程度見切りをつけられるなら新規インストールがいいです。

まだベータなので仕方ないのですが、日本語化されていないところが多くて、英語と混ざっていて読みにくいです。アップグレード直後は9.04をインストールしたときと同じで、mbookの機能がまったく使えない状態になってます。ちなみに起動と終了処理は今までと比較して早くなっています。

まったく関係ないですが、起動、終了、サスペンド(スリープ)はMac OS Xが、なんでこんなに速いんだ?的な速度なので、一度体感することをおすすめです。


カーネルは2.6.31でしたが、予想通り*1無線LANはまったくだめ。ファームウェアを /lib/firmware に置くことでデバイスは認識されていますが、NetworkManager、Wicdともにあいかわらず接続と同時にフリーズします。頼みの綱のconnmanはバージョンが0.4から0.5に上がっていましたが、無線デバイスを認識してくれませんでした。

ディスプレイドライバは以下を参考にしました。
Ubuntu wiki - HardwareSupportComponentsVideoCardsPoulsbo

無線LANがダメだった時点でかなりがっかりで、タッチパネル等はチェックしませんでした。今から9.10の設定しまくって、リリース直後には使えるようにしようとこっそり思っていたのですが、ディスプレイドライバはしばらくすればPPAでKarmicに対応するだろうし、とにかく無線がiwconfigでしか使えないのはどうにもならないので、フリーズする問題を片付けることにしました。

原因はだいたいつかんでいるので、たぶん近日中に上がるはずです。

*1 : 無線に関してはUbuntu9.04にPPA kernelで2.6.31まで入れて確認を取っていました

2009/10/09(金)アクセスちょっと増加

ここのところmbookネタを多く扱っているせいかアクセス数が増えました。


Google Analyticsをみると、やっぱりmbook関連とHDD交換の辺りがアクセスが多いみたいです。以前、別のところで玄箱中心のblogをこっそりやっていましたが、そこも玄箱が売れ始めたらアクセス数がグングン伸びたので、やっぱり旬な話題とかあるなあ、なんて思った次第です。

下のほうにこっそり貼っているGoogle AdSense見ると、$1.53で支払い額までまだまだ届きそうにありません。1年4ヶ月でこれだとなかなか厳しいものあります。

Amazonアフィリエイトもそんなペタペタ貼ってるわけではないのでほとんどなし(なぜかPS2のHDDが売れてるw)です。

nblog.jpで検索するといくつか引用してもらってるところもあるようなので、がんばって閉鎖しないように続けていきたいと思います。

お金儲けに走るわけでないありませんが、ドメイン代(年3400円)とプロバイダ代(月500円)ぐらいは稼げるようにするのが最初の目標です。

2009/10/09(金)mbookでWILLCOM CORE 3G

先週末、WILLCOM CORE 3Gを契約しました。というわけでいつものように忘れないようにメモです。


購入した端末はHX003ZT(ZTE MF633)です。ポイントが付くお店だったので、一括22800円で購入しました。おかげで縛りはないし、使わない月はお金がかからない(ユニバーサルサービス料金のみ)と思います。

Windows上で、モデムをそのまま差し込んで使うときの方法をまとめていきます。WindowsではUSB端子に刺し込むとCD-ROMドライブとして認識(ゼロインストールというらしい)されます。自動実行をオンにしてるとそのままインストーラーが開始しますので、そこでドライバとユーティリティをインストールして終了です。光学ドライブのないネットブックではドライバやユーティリティのインストールが面倒だったりするのですが、この方法はお手軽で簡単です。

ZTEutility.png

ユーティリティを起動するとモデムとして認識されますので、「接続」ボタンを押せば、何も設定する必要なく3Gで接続されます。


================
ここからはアレゲな話になります。このモデムはCD-ROMとして認識されるという話をしましたが、世の中には最初からモデムとして認識された方が幸せな人(nblogの中の人もそうです)もいます。そういった人のためかどうかは知りませんが、ATコマンドでモデムとして認識させることができます。
AT+ZCDRUN=8
AT+ZCDRUN=9
8でゼロインストール無効でモデムとして認識、9でゼロインストール有効でCD-ROMとして認識です。オークションで入手したけど、無効になっていた場合もこれで安心です。

ちなみにドライバやユーティリティが必要なときで、ゼロインストール無効の状態だと、詰んでしまいます。ATコマンドを通すためにはドライバを入れてモデムとして認識させないといけないのですが、ゼロインストールが有効になっていないとドライバを抜き出せません。ゼロインストールを有効にするためにはモデムのドライバが必要になります。鶏と卵の関係に、、、

そんなときは英語版ですが、以下からダウンロードすることができるようです。
http://www.zte.com.au/main/Product_Downloads/MF633_downloads.htm
ドライバがインストールされるとモデムがCOMとして認識されますので、ATコマンドを入力してゼロインストールを有効に戻せば大丈夫です。英語版の接続ユーティリティを実行するとAPNの1をtelstra.internetに書き換えてしまうので、あとで戻しておきましょう。もちろんwillcomのユーティリティを使ってもAPNは戻ります。

APNの確認・変更は以下のコマンドで行います。
AT+CGDCONT?
AT+CGDCONT=1,"PPP","a.willcomcore.jp"
APNは複数設定できますが、このモデムはwillcomでしか使わないので、自分はAPNの1をwillcomにする設定をモデムの追加初期化コマンドに入れています。
================


だいぶ長くなりましたが、ここからがWindowsXPなmbookの夢のお話です。

nblogの中の人の黒mbookにはUSIMスロットがついていますので、HX003ZTからSIMカード取り出して移し替えることができます。MicroSDと同じでカチッと音がするまで奥に差し込みます。C-motech接続ユーティリティを立ち上げて、無事SIMカードが認識されると以下のようになるはずです。
cmotech.png


toolprofile.png

こんな感じで設定すればよさそうです。


cmotechmemory2.png

C-motechのユーティリティは電波の状況確認と接続ログが残るのでそれなりに便利なのですが、上の画像のように結構メモリを使う(上3つ)ので、このユーティリティを使いたくない人は自分で設定します。

基本的には「新しい接続ウィザード」で、普通のモデムと同じように設定します。前半の説明で使った、HX003ZTのwillcomユーティリティをインストールした場合はすでに設定が1つ作られていると思いますが、それは使えませんので新しく自分で作ります。あとC-motechのユーティリティを使うとやっぱりAPNが書き換わりますので、モデムの追加初期化コマンドに AT+CGDCONT=1,"PPP","a.willcomcore.jp" を入れておくとよいと思います。

ダイアル番号は *99# で、APN1が存在する場合は *99***1# と同じ意味になります。*99***1# はAPN1に接続ということを明示してるだけで省略すると *99# というわけです。APNを複数設定した場合、*99***2#(2番目のAPNに接続)という使い方をするようです。つまりSIMカードの内部に接続先の情報があって、それを電話番号で切り替えて呼び出していることになります。


最後に速度についてですが、ちまたでは惨事(3G)とか言われていますが本当に速度は出ません。ベストエフォート表記の最大7.2Mbpsを少しでも信じると悲しいことになりますので注意しましょう。DoCoMoのネットワークを使っているので、どこでもつながるということと、使わなければお金がかからない(一括購入の場合)をメリットとして考えた方が幸せになれると思います。

参考にしたサイト
prog.rams - WILLCOM CORE 3GをZTEユーティリティ使わず接続できるようにしてみた
netcreates blog - ZTE 110FU を純粋にモデムとして使うには