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.74 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler
gemeldet werden können sowie die aktuelle Version dieser Seite 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>.