vine-users ML アーカイブ



[vine-users:077313] Re: Canon LBP-1210 プリンタの接続ポートが勝 手に変わって、印刷できな いー続き

  • From: Hiroshi Suzuki <setter@xxxxxxxx>
  • Subject: [vine-users:077313] Re: Canon LBP-1210 プリンタの接続ポートが勝 手に変わって、印刷できな いー続き
  • Date: Sun, 22 Jul 2007 11:14:51 +0900
鈴木です。

補足説明。

まず、ルールが干渉していると思ったのは、
/dev/lbp_1210 -> /dev/bus/usb/00?/00?
のリンクができるというので、
bus/usb を udev ルールの中から、
grep -r bus/usb *
とかやって、探してみました。
すると、

ACTION=="add", SUBSYSTEM=="usb_device", \
        PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", \
        NAME="%c", MODE="0644"

なんてルールが見つかったし、シェルを呼んでいるので、
これの処理が遅くなって干渉しているのかなと。漠然と。

...

次に、手元のプリンタ(PM-A870)の SUBSYSTEM を
$ udevinfo -q all -a -p `udevinfo -q path -n /dev/usb/lp0`
で見てみると、
SUBSYSTEM=="usb"
となっています。

ついでに、変なリンク先になっているのを、
$ udevinfo -q all -a -p `udevinfo -q path -n /dev/bus/usb/00?/00?`
と見てみると、
SUBSYSTEM=="usb_device"
となっていて、しかも、前者と同じ、
SYSFS{idProduct}=="0811"
SYSFS{idVendor}=="04b8"
が見えている。

/dev/bus/usb/* も きっと、udev が作ってんだろうし、
例のルールは、BUS=="usb" のを
SYSFS{idProduct}
SYSFS{idVendor}
でしか、見分けていないので、

# udevcontrol log_priority=debug
# /sbin/modprobe -r usblp; sleep 2;/sbin/modprobe usblp

で、/var/log/messages を観察してみると、
同時期に複数の udevd-event が動いていてその中に、
...
udev_node_symlink: creating symlink '/dev/pm_a870' to 'usb/lp0'
...
udev_node_symlink: link '/dev/pm_a870' points to different target 'usb/lp0', delete it
udev_node_symlink: link '/dev/pm_a870' points to different target 'usb/lp0', delete it
udev_node_symlink: creating symlink '/dev/pm_a870' to 'usbdev4.6_ep04'
udev_node_symlink: creating symlink '/dev/pm_a870' to 'usbdev4.6_ep85'
...
のような不気味なリンクを張っているのが確かにいる。
で、ためしに例のルールに、

SUBSYSTEM=="usb"
を追加
ACTION=="add", BUS=="usb", SUBSYSTEM=="usb", \
	SYSFS{idProduct}=="0811", SYSFS{idVendor}=="04b8", \
	SYMLINK+="pm_a870"

してみたら、そのような動きはログに記録されなくなった。

udev_node_symlink: creating symlink '/dev/pm_a870' to 'usb/lp0'

で、これが正解ではないかと...推測。

この内容が、宮脇さんのところでも効けば、
Complete かな?

-- 
 Hiroshi Suzuki              It's crucial   qp
 setter@xxxxxxxx                 to my     (..)/
 http://my.reset.jp/~setter/  Well-being   -  -
 http://i-red.info/                         ~~
 Powered by Linux/DeleGate   _____________*-_____