LP(4)

NAME
lp - 라인 프린터 장치

SYNOPSIS
#include <linux/lp.h>

CONFIGURATION
lp[0–2) 는 병렬 프린터를 위한 문자 장치이다; 메이저 넘버 6과 마이너 넘버 0–2를 가지고 있다. 마이너 넘버는 프린터 포트 기초 어드래스0x03bc, 0x0378와 0x0278에 대응한다. 보통 모드 220을 가지고 있으며 root과 그룹 lp에 속한다. 프린터 포트는 풀링이나 인터럽트 둘 다로 사용할 수 있다. 레이저 프린터와 같이 사용량이 많은 경우 인터럽트를 권한다. 보통의 도트 프린터에는 풀링이면 충분하다. 디폴트값은 풀링이다.

DESCRIPTION
아래의 ioctl(2) 신호가 지원된다:

int ioctl(int fd, LPTIME, int arg)
    프린터 버퍼가 arg 로 가득 찰 듯 한 경우, 프린터를 다시 검사하기 전에 드라이버가 멈춰 있는 시간을 설정한다. 빠른 프린터를 가지고 있다면, 이 시간을 줄인다: 이것이 늘어나는 것보다 느린 프린터라면, 이 시간은 수백초가 걸린다. 디폴트는 2에서 0.02초 정도 있다. 이것은 오직 풀링 드라이버에만 영향을 준다.

int ioctl(int fd, LPCHAR, int arg)
    프린터가 arg에서 문자를 받아 인쇄를 위한 준비가 끝나기를 기다리는 동안 풀링 드라아버가 하는 busy-wait 순환의 최대 횟수를 설정한다. 인쇄가 너무 느리면, 이 숫자를 올려본다: 시스템이 지나치게 느리면 이 숫자를 줄여본다. 디폴트값은 1000이다. 풀링 드라이버에만 적용된다.

int ioctl(int fd, LPABORT, int arg)
    arg가 0이면, 프린터 드라이버는 에러를 다시 확인하고, 그렇지 않으면 멈춘다. 디폴트 값은 0이다

int ioctl(int fd, LPABORTOPEN, int arg)
    arg가 0이면, open(2) 은 에러로 끝내고 그렇지 않으면 에러가 무시된다. 디폴트는 무시하는 것이다.t.

int ioctl(int fd, LPCAREFUL, int arg)
    arg가 0이면, 용지 없음, 오프라인, 에러 사인이 모든 쓰기를 멈추게 한다, 혹은 무시한다. 디폴트는 무시하는 것이다.

int ioctl(int fd, LPWAIT, int arg)
    막 쓰여진 문자를 받기 위해 프린터가 예열 되기 전까지 기다리는 busy-wait 순환의 횟수와 예열기가 다시 꺼질 때 까지 arg를 기다리는 횟수를 정한다. 설명서에서는 0.5ms로 하라고 하지만, 경험상 코드로 인한 지체만으로도 충분하다. 그래서 디폴트 값은 0이다. 이것은 풀링이나 인터럽트 드라이브 모두에게 해당된다.

int ioctl(int fd, LPSETIRQ, int arg)
    ioctl()은 유퍼유저의 권한이 필요하다. 이것은 새로운 IRQ를 가진 int가 필요하다. 부수적인 효과로 프린터는 리셋된다. arg가 0이면, 풀링 드라이버가 사용되고 있는 것이다. 이것 역시 디폴트 값이다.

int ioctl(int fd, LPGETIRQ, int *arg)
    현제 arg에서 사용하고 있는 IRQ를 저장한다.

int ioctl(int fd, LPGETSTATUS, int *arg)
    arg에서 포트의 상태 값을 저장한다. 비트는 아래와 같은 뜻을 가진다.:

    LP_PBUSY | inverted busy input, active high
    LP_PACK | unchanged acknowledge input, active low
    LP_POUTPA | unchanged out-of-paper input, active high
    LP_PSELECD | unchanged selected input, active high
    LP_PERRORP | unchanged error input, active low

    신호의 뜻은 각자의 프린터 설명서를 참조하라. 프린터에 따라 알려지지 않은 비트가 있을 수 있음을 기억하자.

int ioctl(int fd, LPRESET)
    프린터를 리셋한다. 쓰이는 독립변수 없음.

FILES
/dev/lp*

AUTHORS
프린터 드라이버는 Jim Weigand and Linus Torvalds에 의해 쓰여졌다. 그 후 Michael K. Johnson에 의해 발전되었다. Nigel Gamble에 의해 인터럽트 코드가 쓰여졌고, Alan Cox 에 의해 모듈화 되었다. LPCAREFUL, LPABORT, LPGETSTATUS가 Chris Metcalf에 의해 첨가되었다..

SEE ALSO
mknod(1), chown(1), chmod(1), tunelp(8), lpcntl(8)