パスワードを忘れた? アカウント作成
132376 journal

azkの日記: ubuntu 8.10 で docomo L-02A を使う (その2) 2

日記 by azk

さきの続き。

ここに至って、(あえて)usb_modeswitchを使わないという選択を考えます。恐ろしくダサいやり方ですが。
他のデバイスはわかりませんが、 docomo L-02Aの場合は
USBで繋ぐと LGE社製 SCSI CD-ROM /dev/sr* (/dev/scd*) として認識され、
オートマウントさんにて /media/cdrom*にマウントされます。
ここで eject /dev/sr0 とかすると、シリアルデバイス /dev/ttyUSB* として再認識されるようです。
(ちゃんとモジュールが読めてる場合)
この流れをudev に処理させたいと思います。

udevinfo -a -p /sys/block/sr0 とかの結果を読んで、
/etc/udev/rules.d/00-foma_l-02a.conf みたいな適当なudevのルールを作ります。

# for FOMA L-02A
# for USB Storage (Zero Installation)
SUBSYSTEM=="scsi", KERNEL=="sr[0-9]*", ATTRS{vendor}=="LGE*", ATTRS{model}=="CD-ROM*",ATTRS{rev}=="1.00", RUN+="/usr/bin/eject $kernel"
 
# use usb_modeswich (comment out!)
# SUBSYSTEM=="usb", ATTR{idVendor}=="1004", ATTR{idProduct}=="610c", RUN+="/usr/local/sbin/usb_modeswitch -Q -c /usr/local/etc/usb_modeswich.conf"
 
# for USB Modem (ttyUSB)
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", ATTR{idProduct}=="6109", RUN=+"/sbin/modprobe usbserial vendor=0x$ATTR{idVendor} product=0x$ATTR{idProduct}"

上は、"vendor: LGE" "model: CD-ROM" の scsi cd-rom が見えたら、そいつのカーネルデバイス名で eject するというもの。
(ただし、同じ名前で見える"本物のLGEのCD-ROM"を繋いだ場合も即ejectされるという諸刃の剣、というかヒドいな。)
真ん中は usb_modeswitch用なのでコメントアウト(いまは不要)。
下は、1004:6109のデバイスが見えたら、'modprobe usbserial vendor=0x1004 product=0x6109'を実行。

ちなみに ubuntu の /etc/udev/rules.d/ 以下は、保存したら自動的に反映されます。

先のmodprobe.dのblacklist とあわせて、とりあえず
「デバイス挿入>CD-ROMマウント>CD-ROMイジェクト(アンマウント)>ttyUSB*認識」
まで自動的に処理してくれました。あとはpppconfigとかで適当に。

ホントはもっとカッコイイやり方があるんでしょうね。勉強が足りない子の悲しさです。

※追記:気休めですが、udevのルールにリビジョン番号を増やしてみました。
※udevが使えるLinux共通で、特にubuntuに限定する話ではありませんね。

ubuntu 9.04 で docomo L-02A を使うで、ちょっとだけ現行化と整理を図りました)

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ研究家

読み込み中...