BEZEICHNUNG¶
lp - Zeilendrucker (line printer devices)
ÜBERSICHT¶
#include <linux/lp.h>
KONFIGURATION¶
lp[0–2] sind zeichenorientierte Geräte für Drucker an der
parallelen Schnittstelle; ihre Hauptnummer (Major Number) ist 6, ihre
Nebennummern (Minor Numbers) sind 0–2. Die Nebennummern korrespondieren
mit den Basisadressen 0x03bc, 0x0378 und 0x0278 der Druckerports.
Normalerweise sind ihre Zugriffsrechte 220, der Besitzer ist root und die
Gruppe lp. Die Druckerports können entweder im Polling- oder
Interrupt-Betrieb benutzt werden. Falls ein größerer Datendurchsatz
erwartet wird, z.B. für Laserdrucker, sollten Interrupts benutzt werden.
Für normale Matrixdrucker sollte Polling ausreichen. Der Vorgabewert ist
Polling.
BESCHREIBUNG¶
Die folgenden Aufrufe von
ioctl(2) werden unterstützt:
- int ioctl(int fd, LPTIME, int
arg )
- Wenn der Druckerpuffer voll ist, schläft der Treiber
für arg Hundertstelsekunden, bevor er den Puffer erneut
prüft. Für einen schnellen Drucker sollte dieser Wert niedrig,
für einen langsamen Drucker dagegen hoch gewählt werden. Die
Vorgabe ist 2, also 0,02 Sekunden. Dies beeinflusst nur den abrufenden
Treiber (Polling).
- int ioctl(int fd, LPCHAR, int
arg )
- Setzt die maximale Anzahl der Durchgänge, die der
abrufende Treiber wartet, bis der Drucker bereit ist, ein Zeichen für
arg zu empfangen. Die Zahl sollte vergrößert werden,
falls das Drucken zu langsam ist und verkleinert werden, wenn das System
zu langsam wird. Der Standardwert ist 1000. Dies beeinflusst nur den
abrufenden Treiber (Polling).
- int ioctl(int fd, LPABORT, int
arg )
- Falls arg 0 ist, wird es der Druckertreiber bei
Fehlern erneut versuchen, ansonsten aufgeben. Der Standardwert ist 0.
- int ioctl(int fd, LPABORTOPEN, int
arg )
- Falls arg 0 ist, wird open(2) bei
auftretenden Fehlern abgebrochen, ansonsten werden Fehler ignoriert.
Standardmäßig werden Fehler ignoriert.
- int ioctl(int fd, LPCAREFUL, int
arg )
- Falls arg 0 ist, müssen die Signale
»out-of-paper«, »offline« und »error« bei
allen Schreibzugriffen logisch falsch sein, ansonsten werden sie
ignoriert. Es ist Standard, sie zu ignorieren.
- int ioctl(int fd, LPWAIT, int
arg )
- Setzt die Anzahl von »busy-wait«-Iterationen, die
ausgeführt werden, bevor der Strobe-Impuls beginnt. (Strobe
signalisiert dem Drucker, dass die Daten am Datenport stabil anliegen und
ein neues Zeichen enthalten.) Es werden ebenfalls arg Iterationen
ausgeführt, bevor der Strobe-Impuls beendet wird. Die Spezifikation
gibt eine Impulslänge von 0,5 Mikrosekunden vor. Die Erfahrung hat
gezeigt, dass die Verzögerung durch den Code selbst ausreicht. Darum
ist der Standardwert 0. Er wird für den interruptgetriebenen wie
für den abrufenden Treiber verwendet.
- int ioctl(int fd, LPSETIRQ, int
arg )
- Dieser ioctl(2) benötigt Superuser-Rechte. Das
Argument arg ist die Nummer des neuen IRQs. Der Wert 0 schaltet
Interrupts ab und Polling ein, was auch Standard ist.
- int ioctl(int fd, LPGETIRQ, int
*arg )
- Speichert den zurzeit genutzten IRQ in arg.
- int ioctl(int fd, LPGETSTATUS, int
*arg)
- Speichert den Wert des Statusports in arg. Die Bits
haben folgende Bedeutung:
LP_PBUSY |
invertierter Busy-Eingang, aktiv hoch |
LP_PACK |
unveränderter Acknowledge-Eingang, aktiv niedrig |
LP_POUTPA |
unveränderter »out-of-paper«-Eingang, aktiv hoch |
LP_PSELECD |
unveränderter Selected-Eingang, aktiv hoch |
LP_PERRORP |
unveränderter Error-Eingang, aktiv niedrig |
Lesen Sie auch Ihr Drucker-Handbuch für die Bedeutung der Signale.
Beachten Sie, dass abhängig vom Drucker auch undokumentierte Bits
gesetzt werden können.
- int ioctl(int fd, LPRESET)
- Setzt den Drucker zurück. Ohne Argument.
DATEIEN¶
/dev/lp*
SIEHE AUCH¶
chmod(1),
chown(1),
mknod(1),
lpcntl(8),
tunelp(8)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Michael Haardt
<michael@moria.de> und Martin Eberhard Schauer
<Martin.E.Schauer@gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird
KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.