Provided by: manpages-pl_4.21.0-2_all bug

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)
              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.

       int ioctl(int fd, LPCHAR, int arg)
              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.

       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)
              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.

       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)

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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.