D21HW on FreeBSD 8.0-BETA1
D21HW を FreeBSD 8.0-BETA1 で動かしましたよという話。
こいつに限らず、この手の HUAWEI の USB モデムには特定の人を狙い撃ちにした恐ろしい罠が存在することが判明。それは後ほど。
初めに、 u3g(4) を突っ込んでやる。
halfrack@halfrack> kldstat Id Refs Address Size Name 1 22 0xffffffff80100000 ab6770 kernel 2 1 0xffffffff80bb7000 23680 snd_hda.ko 3 2 0xffffffff80bdb000 747a0 sound.ko 4 1 0xffffffff80c50000 1d70 coretemp.ko 5 1 0xffffffff80c52000 5508 acpi_ibm.ko 6 1 0xffffffff80e22000 787a i915.ko 7 1 0xffffffff80e2a000 10918 drm.ko 8 1 0xffffffff80e3b000 1752 u3g.ko halfrack@halfrack>
dmesg はこんな感じ。
u3g_huawei_init:268: usb_alloc_device:1782: Found Huawei auto-install disk! ugen4.2: <HUAWEI Technology> at usbus4 ugen4.2: <HUAWEI Technology> at usbus4 (disconnected) uhub_reattach_port:435: could not allocate new device! ugen4.2: <HUAWEI Technology> at usbus4 u3g0: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 2> on usbus4 u3g0: Found 2 ports. umass0: <HUAWEI Technology HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 2> on usbus4 umass0: SCSI over Bulk-Only; quirks = 0x0000 umass0:1:0:-1: Attached to scbus1 (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 (probe0:umass-sim0:0:0:0): CAM Status: SCSI Status Error (probe0:umass-sim0:0:0:0): SCSI Status: Check Condition (probe0:umass-sim0:0:0:0): NOT READY asc:3a,0 (probe0:umass-sim0:0:0:0): Medium not present (probe0:umass-sim0:0:0:0): Unretryable error cd0 at umass-sim0 bus 0 target 0 lun 0 cd0: <HUAWEI Mass Storage 2.31> Removable CD-ROM SCSI-2 device cd0: 40.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present
この手の Windows ドライバが入っている umass(4) が初めに見える USB モデムを *nix で使う場合、抜いてからすぐ差し直すというイケてない方法を取ることが多いけど、 FreeBSD 8系の USB スタックだと勝手に reattach してくれるようだ。
FreeBSD 8系は USB スタックが書き直されたのでモダンな感じなんだろね。
以下は ppp.conf でございます。 emobile の PPP アカウントは例のアレです。
default: set log Phase Chat LCP IPCP CCP tun command ident user-ppp VERSION (built COMPILATIONDATE) set device /dev/cuaU0.0 set speed 115200 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" set timeout 180 enable dns em: set phone "*99***1#" set authname "em" set authkey "em" set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR
ぶっちゃけ、初めから転がっている /etc/ppp/ppp.conf とほぼ一緒です。
で、これで繋がるはずなんですが、色々と試行錯誤しても繋がらない。ぐぐっていたらこんな情報を発見。
http://www.mavetju.org/weblog/html/00278.html
その辺の余ってる PC に Windows を突っ込んで、 emobile 謹製ツールでダイヤルアップ接続した後、引っこ抜いて FreeBSD ホストに繋いで ppp してみたらほんとに繋がりやがる。俺の 4時間を返せ!
というわけで、この手の 3G USB モデムには、とりあえず標準ファームを消したり、とりあえず *BSD/Linux に繋いでみる人が引っかかる恐ろしい罠が存在するのであった。