lp(4) Device Drivers Manual lp(4)

lp - urządzenia drukarek wierszowych

#include <linux/lp.h>

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.

Obsługiwane są następujące wywołania funkcji ioctl(2):

Ustawia okres, przez jaki sterownik jest uśpiony, zanim powtórnie sprawdzi stan drukarki w sytuacji, gdy bufor drukarki zdaje się być wypełnionym do arg. Jeśli drukarka jest szybka, można zmniejszyć ten parametr. Jeśli drukarka jest wolna, należy zwiększyć ten parametr. Jest to liczba określająca czas w setnych częściach sekundy, wartość domyślna wynosi 2, co oznacza 0,02 sekundy. Parametr ten wpływa jedynie na tryb próbkowania.
Ustawia na argv maksymalną liczbę iteracji aktywnego oczekiwania (busy-wait), jakie wykonuje sterownik próbkujący czekając, aż drukarka będzie gotowa na otrzymywanie znaków. Jeśli drukowanie odbywa się zbyt wolno należy zwiększyć tę liczbę; jeśli system za bardzo zwalnia — należy ją zmniejszyć. Domyślną wartością tego parametru jest 1000. Parametr ma wpływ na sterownik jedynie w trybie próbkowania.
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.
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.
Jeśli arg jest równy 0, wtedy wymaga się, aby sygnały "out-of-paper", "offline" oraz sygnały błędów były puste (false) we wszystkich operacjach zapisu, w przeciwnym wypadku są ignorowane. Domyślnie są ignorowane.
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ń.
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.
Zachowuje w parametrze arg aktualnie stosowane przerwanie IRQ.
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.
Inicjuje drukarkę. Nie stosuje się żadnych parametrów.

/dev/lp*

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

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 listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

5 lutego 2023 r. Linux man-pages 6.05.01