Vine Linux 5でFOMAやb-mobile 3Gを使う話

はじめに

ThinkPad X200sにVine Linux 5を入れているのだが、 外でネットワークを使用したい時に 私の手持ちのデバイスは、FOMA(N905iμ)か b-mobile 3G(MF636)かしかない。

Vine Linux 5での利用にどちらも結構苦労したので、 そのメモをここに書くことにする。

問題点

まず、FOMA(N905iμ)を使う上での問題点は以下の通りである。

また、b-mobile 3Gを使う上での問題点は以下の通りである。

FOMA(N905iμ)の対応

モジュール(ドライバ)のインストール

ともかく通信ポートとして認識しなければ どうにもならないため、そのようなモジュール(ドライバ)を導入する。

  1. ダウンロード
    sourceforgeのこのあたりにacm-FOMAがあるので、 それをダウンロードする。
  2. 展開
    ダウンロードしたファイルを展開し、さらにacm-FOMA.cを取り出す。
    $ tar zxf acm-FOMA.v0.26.08.tar.gz 
    $ cd acm-FOMA.v0.26.08
    $ patch -f -p4 < acm-FOMA.v0.26.08.patch
    
  3. コンパイル
    こんな感じの適当なMakefileを 同じディレクトリに置いてコンパイルし、 acm-FOMA.koというファイルを生成する。。 ただし、あらかじめkernel-develパッケージを インストールしていることが必要である。
    $ mv ../Makefile .
    $ make
    
  4. モジュールを配置し使えるようにする。
    もちろん、その時その時でinsmod acm-FOMA.koと手で打ってもよいのだが、 差せば使えるようになるというのも魅力なので、 rootの権限で先ほど作ったファイルを適切な場所に配置する。
    # mkdir -p /lib/modules/`uname -r`/usb/class
    # cp ./acm-FOMA.ko /lib/modules/`uname -r`/usb/class
    # chmod 744 /lib/modules/`uname -r`/usb/class/acm-FOMA.ko
    # /sbin/depmod -ae
    
    (「`」と「'」の違いに注意)

CDMAの強制指定

ここまでの設定で通信用のポートまでは使えるようになる。 しかし、NetworkManagerを使っている場合、 携帯の機種によると思われるが、 CDMAではなくGSMとして認識されてしまう場合がある。

GSMとして認識されてしまうと、 NetworkManagerはGSM専用のやりとりを行おうとするため、 ネットワークの通信が確立できない。 そこで、ここでは強制的にCDMAであると認識させることにする。 (NetworkManagerではなくnetworkを使っている場合は不要と思う)

NetworkManagerはudevの仕組みとhalの仕組みの両方を使って 通信モデムを認識するのだが、 udevとhalの結果が異なる場合udevの方を優先する。 そのためudevのところでGSMと認識されてしまうともうだめである。

このudevでのモデムの識別は /lib/udev/rules.d/77-nm-probe-modem-capabilities.rules で行っているものなので、このファイルを書き換えて対応する。

具体的には、

# vi /lib/udev/rules.d/77-nm-probe-modem-capabilities.rules
などとして、エディタを起動し、ファイル内に2箇所ある 「IMPORT{program}="nm-modem-probe<略>」という記述を見つけ、 二つ目の記述の前の行に、以下の2行を書き加える。

SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0409", ATTRS{idProduct}=="0220", ENV{NM_MODEM_USB_INTERFACE_NUMBER}=="00", ENV{ID_NM_MODEM_IS707_A}="1", ENV{ID_NM_MODEM_PROBED}="1", GOTO="nm_modem_probe_end"
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0409", ATTRS{idProduct}=="0220", ENV{ID_NM_MODEM_PROBED}="1", GOTO="nm_modem_probe_end"

ただし、これらの行内にある、「0409」「0220」はN905i用なので、 適宜書き換えるべきものである。 もしかしたら「00」も書き換える必要が出るかも知れないが、 そのあたりは試しながらやるしかないだろう。 (接続した状態で「cat /proc/bus/usb/devices」と打てばあたりがつく)

通信設定

通信の設定は、他で書かれていることと同じである。

  1. APNの設定
    携帯の中に接続先をあらかじめ登録する必要があるらしい。 Windowsの方で接続を試していればそこで既に書きこまれているだろうが、 そうでなければ自分で登録する必要がある。
    パッケージuucpが入っている状態で、
    $ cu -l ttyACM0
    
    とし、Connected.と出たら「AT+CGDCONT?」と打って(改行を忘れずに)、 「mopera.ne.jp」を含む行が出ていれば、既に登録されている (各行の最初の数字が登録の番号である)。 そうでなければ、 「AT+CGDCONT=1,"PPP","mopera.ne.jp"」と打って登録する。 登録時に使う番号"1"は他でもよいが、 これを使うので覚えておくこと。
  2. ネットワーク接続の設定
    1. まずgnomeのネットワーク接続のウィンドウをどうにかして出す。
    2. 「モバイルブロードバンド」のタブをクリックし、 「追加」をクリックする。
    3. 「CDMA接続」の方を選び、「接続名」を適当に設定した後、 「モバイルブロードバンド」の「番号」のところに「*99***1#」と 書きこむ。ユーザ名とパスワードは空で良い。 もし、先の登録の番号が1以外の場合は、「番号」の数字を書き換えること
    4. 「適用」を押して登録終了

後は念のため再起動して、接続を試して見ると良い。 ただし、接続できずとも責任は負わない。

b-mobile 3Gの対応

(注意:手持ちの機器はMF636であり、それ以外は知らない)

機能切り替えプログラムの導入

手持ちのb-mobile 3gのUSBスティック(MF636)は、 モード切り替えによって、 WindowsのドライバをインストールするためのCDROMドライブになったり、 通信ポートになったりするようである。 そのための切り替えのプログラムが、 このDraisberghof - Software - USB_ModeSwitchのページで 配布されているので、これを使用することにする。

  1. ダウンロード
    この文章を書いた時点で、最新版は usb-modeswitch-1.1.2.tar.bz2であった。
  2. 展開とコンパイル
    $ tar jtf usb-modeswitch-1.1.2.tar.bz2 
    $ cd usb-modeswitch-1.1.2
    $ make
    
    (libusb-develが必要)
  3. 導入
    ちゃんと入れてもよいのだが、 ここでは簡易にプログラムのみ導入することにする。 (ちゃんとするときは、usb-modeswich-dataも必要)
    # install -m 755 ./usb_modeswitch /usr/local/sbin/
    
  4. 設定
    つないで放っておくとCDROMドライブになってしまうが、 CDROMに用はないため、つないだ後に切り替えのプログラムが働くようにする。 そのため、ここに書くような udevのルールファイル(99-bmobile-switch.rules)をダウンロードして配置するか、 自分で書くかする。手でコマンドを打ってもよいが、Product-IDに注意。
    # cp 99-bmobile-switch.rules /etc/udev/rules.d/
    

CDMAの強制指定

ここはFOMAの時と一緒。GSMと認識されないために、 /lib/udev/rules.d/77-nm-probe-modem-capabilities.rules を書き換える。方法もほぼ同じで、

# vi /lib/udev/rules.d/77-nm-probe-modem-capabilities.rules

として、二つ目のnm-modem-probeの手前の行に、 以下の2行を挿入する。

SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0031", ENV{NM_MODEM_USB_INTERFACE_NUMBER}=="03", ENV{ID_NM_MODEM_IS707_A}="1", ENV{ID_NM_MODEM_PROBED}="1", GOTO="nm_modem_probe_end"
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0031", ENV{ID_NM_MODEM_PROBED}="1", GOTO="nm_modem_probe_end"

通信設定

これもFOMAの時とほぼ同様である。異なるのは、 APN, ID, Passwordである。 詳しくは、bmobileのサイトで、MacOS X v10.3用の説明か、 モバイルルータでの使い方の辺りを見ると書いてある。

  1. APNの設定
    $ cu -l ttyUSB2
    Connected.
    AT+CGDCONT=1,"IP","dm.jplat.net"
    OK
    
  2. ネットワーク接続の設定
    1. 「ネットワーク接続」のウィンドウを起動する。
    2. 「モバイルブロードバンド」タブをクリックする。
    3. 「追加」→「CDMA接続を作成」→「OK」
    4. 「接続名」を適当に。 「番号」は「*99***1#」。 「ユーザ名」は「bmobile@l3.jplat.net」。 「パスワード」は「bmobile」。 「適用」で終了。

後は、やはり念のために再起動して、 接続を試して見ると良い。

その他

ここで書いた内容は、Vine Linux 5の NetworkManager-0.7.0用である。 NetworkManager-0.8等ではまた設定が異なるかもしれない。

b-mobile 3gでは、抜き差ししないと2度目がつながらない。理由は不明。

(2010/5/14 作成)