たけ(tk)です [vine-users:070973] Re: ls > /dev/lp0 で /dev/lp0: Device or resource busy になる にて 長南洋一 <cyoichi@xxxxxxxxxxxxxxx> さん曰く: > # 新しいスレッドにした方がよかったと思うけれど。 そうでした。 プリンタケーブルのつなぎ換えは業務時間中には出来ないので、回答が遅くなっ てすみません。 > たけ(tk) さんのメールより [vine-users:070958] > > > > で LPRng に変更したのですが、印刷できませんでした。調べてみたら、 > > /dev/lp0 がビジーだと言われてしまいました。 > > > > [root@EDiCube-02 root]# ls > /dev/lp0 > > -bash: /dev/lp0: Device or resource busy > > 未完了の印刷 job が残っていませんか。lprm で job をすべて消してから > やってみたらどうなります。いっそのこと、lpd を止めてしまってもよいと > 思います。それでも ls >/dev/lp0 で印刷できないようなら、パラレル用の > ドライバかハードウェア関係に問題があるのではないでしょうか。たとえば、 (1)/etc/init.d/lpd stop すると、 ls >/dev/lp0 で印刷できました。 [root@EDiCube-02 root]# ls | lpr -Plp7900 [root@EDiCube-02 root]# ls | /usr/libexec/filters/bfout2 > /dev/lp0 -bash: /dev/lp0: Device or resource busy [root@EDiCube-02 root]# /etc/init.d/lpd stop Stopping lpd: [ OK ] [root@EDiCube-02 root]# ls | /usr/libexec/filters/bfout2 > /dev/lp0 [root@EDiCube-02 root]# * /usr/libexec/filters/bfout2 は後述のofフィルター。ちゃんとプリンタが 切り替わる。 (2)lprm で空にしてから /etc/init.d/lpd restart した直後でも印刷できま した。 [root@EDiCube-02 root]# ls | lpr -Plp7900 [root@EDiCube-02 root]# ls | /usr/libexec/filters/bfout2 > /dev/lp0 -bash: /dev/lp0: Device or resource busy [root@EDiCube-02 root]# lprm Printer lp7900@localhost: checking perms 'root@localhost+64' dequeued 'root@localhost+64' [root@EDiCube-02 root]# /etc/init.d/lpd restart Stopping lpd: [ OK ] Starting lpd: [ OK ] [root@EDiCube-02 root]# ls | /usr/libexec/filters/bfout2 > /dev/lp0 (3)しかし、lpr を実行すると、反応がなく、その後の ls >/dev/lp0 でビジー になります。 [root@EDiCube-02 root]# ls | lpr -Plp7900 [root@EDiCube-02 root]# ls | /usr/libexec/filters/bfout2 > /dev/lp0 -bash: /dev/lp0: Device or resource busy > また /var/log/messages の結果 Mar 23 15:29:42 EDiCube-02 (Worker - Print)[20144]: lp7900: Wait_for_pid: OF filter died with signal 'Hangup' > ・かりにプリンタ名が lp だとして、/var/spool/lpd/lp にあるログファイル > (log とか status.lp とか)に何か出ていないか。 [root@EDiCube-02 root]# cat /var/spool/lpd/lp7900/log 2005-03-23-14:56:04.433 localhost lp7900: Wait_for_pid: OF filter died with signal 'Hangup' [root@EDiCube-02 root]# cat /var/spool/lpd/lp7900/status.pr waiting for subserver to exit at 2005-03-23-15:18:37.046 ## A=<NULL> number=0 process=20067 subserver pid 20068 starting at 2005-03-23-15:18:37.050 ## A=root@localhost+64 number=64 process=20068 accounting at start at 2005-03-23-15:18:37.050 ## A=root@localhost+64 number=64 process=20068 opening device '/dev/lp0' at 2005-03-23-15:18:37.050 ## A=root@localhost+64 number=64 process=20068 printing job 'root@localhost+64' at 2005-03-23-15:18:37.051 ## A=root@localhost+64 number=64 process=20068 printing 'root@localhost+64' starting OF 'bfout1' at 2005-03-23-15:18:37.051 ##A=root@localhost+64 number=64 process=20068 lp7900: Wait_for_pid: OF filter died with signal 'Hangup' at 2005-03-23-15:26:36.416 ## A=<NULL> number=0 process=20068 OF filter problems, error 'JSIGNAL' at 2005-03-23-15:26:36.417 ## A=root@localhost+64 number=64 process=20068 accounting at end at 2005-03-23-15:26:36.417 ## A=root@localhost+64 number=64 process=20068 finished 'root@localhost+64', status 'JSIGNAL' at 2005-03-23-15:26:36.417 ## A=root@localhost+64 number=64 process=20068 waiting for subserver to exit at 2005-03-23-15:29:31.631 ## A=<NULL> number=0 process=20143 subserver pid 20144 starting at 2005-03-23-15:29:31.635 ## A=root@localhost+140number=140 process=20144 accounting at start at 2005-03-23-15:29:31.635 ## A=root@localhost+140 number=140 process=20144 opening device '/dev/lp0' at 2005-03-23-15:29:31.635 ## A=root@localhost+140 number=140 process=20144 printing job 'root@localhost+140' at 2005-03-23-15:29:31.635 ## A=root@localhost+140 number=140 process=20144 printing 'root@localhost+140' starting OF 'bfout1' at 2005-03-23-15:29:31.636 ## A=root@localhost+140 number=140 process=20144 lp7900: Wait_for_pid: OF filter died with signal 'Hangup' at 2005-03-23-15:29:42.360 ## A=<NULL> number=0 process=20144 OF filter problems, error 'JSIGNAL' at 2005-03-23-15:29:42.360 ## A=root@localhost+140 number=140 process=20144 accounting at end at 2005-03-23-15:29:42.361 ## A=root@localhost+140 number=140process=20144 finished 'root@localhost+140', status 'JSIGNAL' at 2005-03-23-15:29:42.361 ## A=root@localhost+140 number=140 process=20144 waiting for subserver to exit at 2005-03-23-15:31:28.950 ## A=<NULL> number=0 process=20188 subserver pid 20189 starting at 2005-03-23-15:31:28.953 ## A=root@localhost+185number=185 process=20189 accounting at start at 2005-03-23-15:31:28.953 ## A=root@localhost+185 number=185 process=20189 opening device '/dev/lp0' at 2005-03-23-15:31:28.953 ## A=root@localhost+185 number=185 process=20189 printing job 'root@localhost+185' at 2005-03-23-15:31:28.954 ## A=root@localhost+185 number=185 process=20189 printing 'root@localhost+185' starting OF 'bfout1' at 2005-03-23-15:31:28.954 ## A=root@localhost+185 number=185 process=20189 [root@EDiCube-02 root]# * 'JSIGNAL' って何でしょう? > また /proc/ioports の結果も [root@EDiCube-02 root]# cat /proc/ioports 0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0376-0376 : ide1 0378-037a : parport0 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(auto) 0cf8-0cff : PCI conf1 4000-40ff : PCI CardBus #02 4400-44ff : PCI CardBus #02 4800-48ff : PCI CardBus #06 4c00-4cff : PCI CardBus #06 a000-afff : PCI Bus #01 a800-a87f : Silicon Integrated Systems [SiS] SiS630 GUI Accelerator+3D b400-b47f : Silicon Integrated Systems [SiS] Intel 537 [56k Winmodem] b800-b8ff : Silicon Integrated Systems [SiS] Intel 537 [56k Winmodem] d000-d0ff : Silicon Integrated Systems [SiS] SiS PCI Audio Accelerator d400-d4ff : Silicon Integrated Systems [SiS] SiS900 10/100 Ethernet d400-d4ff : sis900 d800-d80f : Silicon Integrated Systems [SiS] 5513 [IDE] d800-d807 : ide0 d808-d80f : ide1 [root@EDiCube-02 root]# > また /sbin/lsmod の結果も [root@EDiCube-02 root]# lsmod Module Size Used by Not tainted parport_pc 32072 1 (autoclean) lp 8512 0 (autoclean) parport 35400 1 (autoclean) [parport_pc lp] ds 8660 2 yenta_socket 13792 2 pcmcia_core 57600 0 [ds yenta_socket] smbfs 52400 0 (autoclean) autofs 13492 0 (autoclean) (unused) sis900 15660 1 crc32 3592 0 [sis900] usbmouse 3192 0 (unused) usb-ohci 22648 0 (unused) hid 24900 0 (unused) rtc 9352 0 (autoclean) usb-storage 76960 0 (unused) sd_mod 13420 0 (unused) scsi_mod 69528 1 [usb-storage sd_mod] [root@EDiCube-02 root]# > ls >/dev/lp0 をお試しになったということは、lpr hoge.ps では印刷でき > なかったのでしょうか。それならば、次のような情報が必要だと思います。 > > ・Vine 3.1 は新規インストールなのか。 Windowsをつぶして、『日経Linux 2004/10』の付録のCD(Vine Linux 3.0)を 新規インストール。 > ・プリンターの機種名。 プリンターはエプソンのlp8300とlp7900ですが途中にmelcoのjwpというプリンタ 切替機がついている。「@bFOUT1;」を送るとそれ以後のデータがlp7900に送られ、 「@bFOUT2;」を送るとそれ以後のデータがlp8300に送られるという仕組み。 > ・ドライバは何を選択したのか。 ドライバは無し。生データです。Samba用なので、Windowsで加工して送る。 > ・/etc/printcap の内容。 [root@EDiCube-02 root]# cat /etc/printcap # This file was automatically generated by cupsd(8) from the # /etc/cups/printers.conf file. All changes to this file # will be lost. ##PRINTTOOL3## LOCAL lp7900:\ :sd=/var/spool/lpd/lp7900:\ :mx#0:\ :of=/usr/libexec/filters/bfout1:\ :sh:\ :lp=/dev/lp0: ##PRINTTOOL3## LOCAL lp8300:\ :sd=/var/spool/lpd/lp8300:\ :mx#0:\ :of=/usr/libexec/filters/bfout2:\ :sh:\ :lp=/dev/lp0: [root@EDiCube-02 root]# * http://search.luky.org/vine-users.6/msg03700.html によると、「空行1 行」である必要があるらしいが、うえの設定では「##PRINTTOOL3## LOCAL」で区 切られている。これで良いのだろうか? * うえに書かれているofフィルターは下記の通り。プリンタに印刷できる場合 には、プリンタの切り替えもうまくいっている。 [root@EDiCube-02 root]# cat /usr/libexec/filters/bfout2 #!/bin/sh echo -n '@bFOUT2;' cat [root@EDiCube-02 root]# [root@EDiCube-02 root]# cat /usr/libexec/filters/bfout1 #!/bin/sh echo -n '@bFOUT1;' cat [root@EDiCube-02 root]# [root@EDiCube-02 root]# ls | /usr/libexec/filters/bfout1 @bFOUT1;anaconda-ks.cfg Desktop/ hoge.txt mbox rpm/ upgrade-log [root@EDiCube-02 root]# > ・プリンタ設定後 lpd の restart はしたのか。 はい > ・/sbin/update-alternatives --display print の結果。 > # 最初の二三行をお見せになれば、充分でしょう。 [root@EDiCube-02 root]# /sbin/update-alternatives --display print print - status is manual. link currently points to /usr/bin/lpr.lprng /usr/bin/lpr.cups - priority 50 slave print-lpqman: /usr/share/man/man1/lpq-cups.1.gz > ・ちょっとくどいけれど、念のため。 > ls -l /usr/bin/lpr [root@EDiCube-02 root]# ls -l /usr/bin/lpr lrwxrwxrwx 1 root root 23 Oct 16 15:59 /usr/bin/lpr -> /etc/alt ernatives/print* [root@EDiCube-02 root]# > ls -l /etc/alternatives/print [root@EDiCube-02 root]# ls -l /etc/alternatives/print lrwxrwxrwx 1 root root 18 Mar 5 16:02 /etc/alternatives/print -> /usr/bin/lpr.lprng* [root@EDiCube-02 root]# > ・printtool からテスト印刷したとき、何かエラーメッセージは出なかったか? > ・lpr -Pプリンタ hoge.ps のときは? take_tk = kumagai hidetake