Scroll to navigation

LP(4) Podręcznik programisty Linuksa LP(4)

NAZWA

lp - urządzenia drukarek wierszowych

SKŁADNIA

#include <linux/lp.h>

KONFIGURACJA

Pliki lp[0–2] są urządzeniami znakowymi obsługującymi drukarki dołączone do portów równoległych; numer główny tych urządzeń jest równy 6, numer podrzędny 0–2. Numery podrzędne odpowiadają adresom bazowym portu drukarki: 0x03bc, 0x0378 i 0x0278. Zwykle prawa dostępu do plików tych urządzeń wynoszą 220, a ich właścicielem jest użytkownik root i grupa lp. Porty drukarki mogą być obsługiwane zarówno przy wykorzystaniu próbkowania, jak i przerwań. Stosowanie przerwań jest zalecane, gdy spodziewamy się dużego ruchu, np. wynikającego z używania drukarki laserowej. W przypadku zwykłych drukarek mozaikowych wystarczające jest próbkowanie. Domyślnym trybem obsługi portu jest próbkowanie.

OPIS

Obsługiwane są następujące wywołania funkcji ioctl(2):
int ioctl(int fd, LPTIME, int arg)
Sets the amount of time that the driver sleeps before rechecking the printer when the printer's buffer appears to be filled to arg. If you have a fast printer, decrease this number; if you have a slow printer, then increase it. This is in hundredths of a second, the default 2 being 0.02 seconds. It influences only the polling driver.
int ioctl(int fd, LPCHAR, int arg)
Sets the maximum number of busy-wait iterations which the polling driver does while waiting for the printer to get ready for receiving a character to arg. If printing is too slow, increase this number; if the system gets too slow, decrease this number. The default is 1000. It influences only the polling driver.
int ioctl(int fd, LPABORT, int arg)
Jeśli parametr arg jest równy 0, wtedy sterownik drukarki będzie powtarzał operację po wystąpieniu błędu; w przeciwnym wypadku przerwie działanie. Standardową wartością tego parametru jest 0.
int ioctl(int fd, LPABORTOPEN, int arg)
Jeśli arg jest równy 0, funkcja open(2) zostanie przerwana po wystąpieniu błędu; w przeciwnym wypadku błąd zostanie zignorowany. Standardowe zachowanie polega na ignorowaniu błędów.
int ioctl(int fd, LPCAREFUL, int arg)
If arg is 0, then the out-of-paper, offline, and error signals are required to be false on all writes, otherwise they are ignored. The default is to ignore them.
int ioctl(int fd, LPWAIT, int arg)
Ustawia na arg liczbę iteracji aktywnego oczekiwania (busy-wait) przed spróbkowaniem, czy drukarka zaakceptowała właśnie zapisany znak, oraz liczbę iteracji, które należy przeczekać przed kolejnym próbkowaniem. Specyfikacje określają ten czas jako 0.5 mikrosekundy, lecz doświadczenie wykazało, że opóźnienie spowodowane wykonaniem kodu jest już wystarczające. Z tego powodu wartością domyślną dla tego ustawienia jest 0. Jest ono wykorzystywane w sterowniku zarówno w trybie próbkowania, jak i w trybie przerwań.
int ioctl(int fd, LPSETIRQ, int arg)
To wywołanie funkcji ioctl(2) wymaga uprawnień administratora. Funkcja pobiera argument typu int zawierający nowe przerwanie IRQ. Skutkiem ubocznym jest inicjacja drukarki. Gdy arg jest zerem, to stosowany będzie sterownik z próbkowaniem; jest to równocześnie zachowanie domyślne.
int ioctl(int fd, LPGETIRQ, int *arg)
Zachowuje w parametrze arg aktualnie stosowane przerwanie IRQ.
int ioctl(int fd, LPGETSTATUS, int *arg)
Zachowuje wartość stanu portu w zmiennej arg. Poszczególne bity mają następujące znaczenie:
LP_PBUSY odwrócony sygnał zajętości
LP_PACK niezmienione potwierdzenie wejścia
LP_POUTPA niezmieniony sygnał braku papieru
LP_PSELECD niezmieniony sygnał wyboru
LP_PERRORP niezmieniony sygnał błędu
Znaczenia sygnałów należy szukać w dokumentacji drukarki. Należy pamiętać, że dla niektórych drukarek ustawiane mogą być też nieudokumentowane tu bity.
int ioctl(int fd, LPRESET)
Inicjuje drukarkę. Nie stosuje się żadnych parametrów.

PLIKI

/dev/lp*

ZOBACZ TAKŻE

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

O STRONIE

Angielska wersja tej strony pochodzi z wydania 5.04 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Piotr Pogorzelski <piotr.pogorzelski@ippt.gov.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.

15 stycznia 1995 r. Linux