vine-users ML アーカイブ



[vine-users:071073] Re: ls > /dev/lp0 で /dev/lp0: Device or resource busy になる

  • From: take_tk <CQK01016@xxxxxxxxx>
  • Subject: [vine-users:071073] Re: ls > /dev/lp0 で /dev/lp0: Device or resource busy になる
  • Date: Wed, 23 Mar 2005 19:25:43 +0900
たけ(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