USB-WSIMをLinuxで使う。

I/O DataのUSB-WSIMは、WILLCOMのSIM STYLEカードを使ってAIR-EDGE接続するための汎用ジャケットである。うちはW-ZERO3に入っていたSIMカードを差し込んだ。

しかしこれ、ただのUSBシリアルのくせにWindowsでしか使えない。よって、ぐぐってhackしてみた。

準備するもの

Linuxカーネルソースとパッケージ群

うちはDebianなので、Debianのソースを用意した。

移植に関する情報

こちらのページに情報があった。ちょっとカーネルのバージョンが違うけど、脳内diffしてありがたく利用させていただく事に。

作業

カーネルソースを取り寄せると/usr/srcに落ちるけど、fakeroot使えば一般ユーザ権限でもいいので、作業しやすいユーザホームに展開しよう。

展開したら、以下をやるぞ :D

ここを改造する(Linuxカーネルソース)

 (drivers/usb/serial/pl2303.h)

#define IODATA_VENDOR_ID 0x04bb
#define IODATA_PRODUCT_ID 0x0a03
#define IODATA_PRODUCT_ID_RSAQ5 0x0a0e
+ #define IODATA_USB_WSIM_ID 0x0940

 (drivers/usb/serial/pl2303.c)

{ USB_DEVICE(ALCOR_VENDOR_ID, ALCOR_PRODUCT_ID) },
{ USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) },
{ USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) },
{ USB_DEVICE(YCCABLE_VENDOR_ID, YCCABLE_PRODUCT_ID) },
+ { USB_DEVICE(IODATA_VENDOR_ID, IODATA_USB_WSIM_ID) },
{ } /* Terminating entry */
};

カーネルをコンパイル・インストール

最後のupdate-grubは保険のようなものだ。たぶん打たなくても勝手にやってくれるだろう。

$ cd カーネルソースのルート
$ cp -v /boot/config-カーネルバージョン .config
$ make-kpkg clean
$ make-kpkg --revision 1.0s --config menuconfig configure
$ fakeroot make-kpkg kernel-image --revision 1.0s
$ sudo dpkg -i できたLinuxカーネルパッケージ.deb
$ sudo update-grub

Linuxは基本がモノリシック構造なので、さすがに動作中のカーネルの交換となると再起動するのが基本となる。再起動しよう。

ppp設定する。

ubuntuでもDebianでも、添付のダイヤルアップツールだとうまくいかない。ハマってしまうので、ここは懐かしいpppconfigを使おう。GNOME-PPPを使えばGUIでPPPonできるので、接続時にはそう気にすることはない。電話番号と接続アカウント・パスワードだけでOK。

あと、W-SIMが古い(410など)だとx4での接続は無理があるようだ。うちのはZERO3初代の奴なのでまさにこれで、x2で接続することになった。新つなぎ放題利用なら、端末の方も代えるかW-SIMを機種交換するともっといいかも。