lp - スペシャルファイル (デバイス)の説明 - Linux コマンド集 一覧表
名前
lp - ラインプリンターデバイス
書式
#include <linux/lp.h>
設定
lp [0\(en2] はパラレルプリンターのためのキャラクタデバイスでメジャー ナンバー 6 マイナーナンバー 0\(en2 を持つ。マイナーナンバーは、ベース アドレス 0x03bc, 0x0378, 0x0278 のそれぞれのプリンターポートに対応する 通常、このデバイスファイルはモード 220 オーナー root グループ lp となっ ている。プリンターポートはポーリング(polling)または割り込み (interrupts) のどちらを用いても利用できる。割り込みの利用は、高負荷が 予想される時、例えばレーザープリンターをプリンタポートに接続する場合な どに推奨される。普通のドットマトリクスプリンターでは、ポーリングの利用 で通常は十分である。デフォルトではポーリングを利用する。
説明
次の
ioctl
(2) コールがサポートされている。
プリンターのバッファ( buffer ) がいっぱいになった時、ドライバがプリンター
を再チェックするまでに休止する時間を arg
とする。高速なプリンター
の時はこれを減らし、遅いプリンターの時には増やす。単位は1秒の100分の1
で、デフォルトの2は0.02秒にあたる。ポーリングドライバ( polling driver
)のみに影響する。
ポーリングドライバがプリンターの文字受取り準備ができるのを待
つビジーウエイト(busy-wait)の回数の最大値を arg
とする。
もし印刷が遅すぎる時はこれを増やし、システムが遅くなりすぎる時には
減らす。デフォルトは 1000 である。ポーリングドライバのみに影響する。
もし、arg
が 0 なら、プリンタードライバはエラーについて再試行
を行う。それ以外の場合は中止する。デフォルトは 0 である。
もし、arg
が 0 なら
open
(2) の結果がエラーの場合、動作が中止される。それ以外ならエラーは無
視される。デフォルトではエラーは無視される。
arg
が0のときには、すべての書き出しの時に、紙切れ、オフライン、エ
ラーのシグナルが偽(false)であることが必要とされるが、0 以外ならこれ
らのシグナルは無視される。デフォルトでもこれらのシグナルは無視される。
プリンターが送られた文字を受け取るのを待つため、ドライバが文字を送っ
てからストローブ(strobe)するまでの待ちの繰り返しの回数と、ストローブ
を再びオフにするまでの待ちの繰り返しの回数を arg
に設定
する。仕様によればこの時間は 0.5 マイクロ秒とするべきだが、経験によれば
このコードによって生じる遅れで十分である。そのため、デフォルトでは 0 で
ある。これは、ポーリングと割り込みドライバの両方で使われる。
この
ioctl
()を使うには、スーパーユーザの権限が必要である。新しいIRQをし
めす整数を引数としてとる。また、副作用としてプリンターはリセットされる。
arg
が0の時またはデフォルトの動作では、ポーリングドライバーが使わ
れる。
現在使われているIRQをarg
にいれる。
ステータスポートの値をarg
に収める。各ビットには次のような意味が
ある:
.TS
l l.
LP_PBUSY ビジー信号の反転、ハイがアクティブ
LP_PACK アクノリッジ信号、ローがアクティブ
LP_POUTPA 紙切れ信号、ハイがアクティブ
LP_PSELECD 選択信号、ハイがアクティブ
LP_PERRORP エラー信号、ローがアクティブ
信号の意味については各自のプリンターのマニュアルを参照のこと。プリンター
によっては記載のないビットもセットされるかもしれないので、注意のこと。
プリンターをリセットする。引数はとらない。
ファイル
/dev/lp*
著者
プリンタードライバは初めは Jim Weigand と Linus Torvalds によって書 かれ、さらに Michael K. Johnson によって改良された。割り込みのコード は Nigel Gamble によって書かれた。また、Alan Cox はドライバをモジュー ル化した。 LPCAREFUL, LPABORT, LPGETSTATUS は Chris Metcalf によって加えられた。
関連項目
chmod (1), chown (1), mknod (1), lpcntl (8), tunelp (8)
翻訳者
石川 睦 <ishikawa@linux.or.jp>, 高橋 睦司 <muz@ilp.iijnet.or.jp>
翻訳者注
カーネル 2.1.x ではパラレルポートまわりが大幅に書き直
されています。従って、カーネル 2.1.x のパラレルポートドライバには、こ
のマニュアルの内容はそのまま適用できません。