DELLの「Inspiron Mini 10v」を買いました。
しかも「WindowsXP」のではなく「Ubuntu8.04」のを。
何でこんなものを買ったのかというと、まぁ会社や外でメールやインターネットをするだけのPCを考えていて、だったらOSはWindowsXPではなく噂のUbuntuで良いんじゃね?という軽い気持ちだった。
それは大きな間違いだったのだ。やっぱり知識のある奴ではないと「Ubuntu」なんかに手を出してはいけないよ?それか私のような「ドM」な人間でないとやってられねぇよ?
今回ハマったのはイーモバイルの接続だった。
ネットで調べて実績や資料のある古い機種だったら問題は無いんだけど、私が持っているのは最新の「D31HW」。でもまぁ、何とかなるかな?と思っていたので、早速何も考えずに接続。「D31HW」のドライバをインストールするためのCDが開いたので、あ、これは楽勝かな、と。以下のサイトを見ながら設定をはじめる。
ubuntu イーモバイル編…接続されず。
そこでWindowsXPに接続したときのことを思い出す。この機種はmicroSDが入るようになっていて、ストレージとしても使えるのです。しかし接続直後は使えない。まずインストール用のCDイメージがマウントされ、ツールをインストールをした後に使えるようになるのです。
怪しい。実に怪しい挙動だ。
そこで仮説を立てた。この機種はツールをインストール前はストレージとして認識し、ツールインストール後はモデムとして認識するのではないかと。そこでGoogleで検索し、なんかソレらしいことが他の機種で書かれている。それが以下のサイト。
UbuntuでEmobileのD21LCを利用するなるほどー。USBのProductIDをスイッチしているのかー。って、何のこと?
なんかよく解らないまま上のサイトにある通りにやってみることにした。
…接続されず。
っていうか、/dev/ttyUSB*なんて出てこねぇよ!
…なるほど、それがやっぱり問題か。/dev/ttyUSB*がないということはモデムとして認識していないことか。何度見直してもVendorIDもProductIDも間違いは無い。後はコピペでやったので記述ミスは無いはずだ…。とすると、この情報自体が「D31HW」には適応できないと言うことか?
そこで、こちらのサイトを見つける。
ドコモ L-02A (USB モデム)を ubuntu Linux で使う (設定編) MessageEndpoint= と MessageContent= の値も重要な気がします。
あぁ…。恐れていたことが…。
USBのポートのやり取りをスニッフィングしないといけないのか…。
めんどくせぇ〜〜!
しかし、それでも素直にやってみる。それにしても上のサイトは不親切だ。切り替わるって何を基準に見れば良いのか解らないじゃん。やってみると解るけどログは膨大な量で上のサイトで上がっているキーポイントも該当するものが多すぎてよく解らない。
- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: と
(USBD_TRANSFER_DIRECTION_OUT (INもあります)
そして、 55 53 42 43 から始まる文字列です。55 で検索
していくといいかもしれません。
ざっと数えただけで100箇所あったよ!わぁ〜い!!
しかも、切り替わった直後?それとも切り替わる直前?それってどこ?
…諦めた。方法を変えよう。Device毎に取ってみよう。
SniffUSBの画面の「DeviceList」の「ListDeviceNotPresent」のチェックを付けて、まずは変更前のVIDとPIDを持つDeviceをスニッフィング。この段階では一箇所のみ。これかなぁと思うけど、続いて変更後のVIDとPIDを持つDeviceを見る。…多すぎ。とにかく最初の数箇所をテキストエディタで書き出しておく。
んで、もう一回挑戦。usb_modeswitch.confに上であげたものを編集。
…出来た!
結論からすると、変更前に一度だけ出される「55 53 42 43…」から始まるものを「MessageContent」に、直前にある「endpoint 0x0…」の値を「MessageEndpoint」にセットすればOKだった。
まとめよう。
やり方は「
UbuntuでEmobileのD21LCを利用する」に記載されている通りで問題は無い。ただUSB_ModeSwitchのバージョンが1.0.2になっていたので、「wget
http://www.draisberghof.de/usb_modeswitch/usb_modeswitch-1.0.2.tar.bz2」としないとエラーになる。同じように「usb_modeswitch-0.9.5」は「usb_modeswitch-1.0.2」に書き換えてね。
そして問題のusb_modeswitch.confは以下のものを追加してください。
#######################################################
## Emobile D31HW
##
#
DefaultVendor= 0x12d1
DefaultProduct= 0x1446
TargetVendor= 0x12d1
TargetProduct= 0x1429
MessageEndpoint=0x01
MessageContent="55534243000000000000000000000011060000000000000000000000000000"
これでOK。
接続は
ubuntu イーモバイル編に掲載されている内容でも接続できた。多分「pppconfig」でも「gnome-ppp」でも接続できると思います。
と、さらっと書いているけど正直この結論まで3日ぐらいかかったよ〜TT
Linuxに詳しい人ならもっと簡単に結論にたどり着けると思うけどね…。特に「MessageContent」のログ取りにどんだけトライ&エラーを重ねたことか…。ようは変更前のVIDとPIDのデバイスが吐き出す最後の「55 53 42…」で始まるコードを「MessageContent」とするということが大事。このコードがスイッチになってVIDとPIDを書き換えているんだね。仕組みは解らないけど…。
つ〜か、そんな仕組みにスンナ!イーモバイルのバカ!
と言うわけで私のお盆休みはこれで終わったわけだ。TT
せっかく苦労したので、苦労の証を公開することにした。
もし同じように苦しんでいる人がいるなら相談に乗りますよ。解る範囲でしか解りませんが…w