長南です。 だから、簡単に試せるハードウェアよりの方法を説明して差し上げたのに。 プリンタが一個しか接続していないときは、当然それが lp0 になります。 二個接続しているときは、システムに認識された順に lp0、lp1 に なります。おそらく認識される順番は、USB ソケットの位置によって 決まるのでしょうから、LBP-1210 一台だけのときも、ip4100 と二台 一緒につないだときも、LBP-1210 を lp0 にするには、二つのプリンタの USB プラグを差すソケットを現在とは逆にすればよいのだと思います。 # でも、切替器を通じてプリンタを接続していると、どこかでおっしゃて # いました。そうなると、話はもっと複雑なのかもしれません。 とは言え、認識の順番がソケットの位置で決まるというのは、わたしの 推測です。間違っているかもしれません。また、udev のルールを記述する 方法の方がずっと洒落ています(どういう順番でどのソケットにつなごうと、 同じシンボリック・リンクを通してプリンタが使える)。そこで、udev の ルールを利用する方向で考えるなら−− /usr/share/doc/udev-097/writing_udev_rules/index.jp.html に こんなことが書いてあります。「複数SYMLINK形式の使い方」の項。 普通のルールと同様に、udevがNAMEパラメータを指定しているルールを 見つける前にこの形式のルールを見つけたときだけ有効になります。 ですから、/etc/udev/rules.d/50-udev.rules へ追加した例の記述ですが、 その位置が問題なのだと思います。50-udev.rules に次のような行が あります。 BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k" 問題の記述は、この行よりも前にしなければならないのだと思います (つまり、ファイルのできるだけ頭の方でやっておく)。 あるいは、/etc/udev/rules.d/20-local.rules とでもいうファイルを 作って、「ACTION=="add", BUS=="usb", SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="2617", SYMLINK+="lbp_1210"」などの記述は、 そちらのファイルに書く(ファイルの頭につく数字を 50 より小さくする)。 # それから、上の記述から ACTION=="add", を取ってみるという手も # 試してみるべきかもしれません。わたしとしては ACTION=="add", が # あってもよさそうに思うのですが、writing_udev_rules/index.jp.html # では、ACTION=="add", なしでやっているようですから。 同じことをやって、一度はうまくいったのに、今度はうまくいかない理由は わかりません。でも、うまくいかないときは、/dev/lpb_1210 などはシンボ リック・リンクですから、 ls -l /dev/lpb_1210 などで、リンク先を確かめた方がよいでしょうね。 急がば回れです。やはり、udev のルールを利用するのなら、よくわから なくても(わたしもよく理解できません)、/usr/share/doc/udev-097/ writing_udev_rules/index.jp.html を一度通読しておくべきだと思います。 ただし、この文書は == とするべきところも = と書いています。ですから、 50-udev.rules などと比較対照して読まなければなりません。そのことに ついては、田添さんが「[vine-users:076812] udev のドキュメントの相違に ついて」でご指摘になっていました。 -- 長南洋一