lp(4) Device Drivers Manual lp(4) BEZEICHNUNG lp - Zeilendrucker (line printer devices) UBERSICHT #include KONFIGURATION lp[02] sind zeichenorientierte Gerate fur Drucker an der parallelen Schnittstelle; ihre Hauptnummer (Major Number) ist 6, ihre Nebennummern (Minor Numbers) sind 02. Die Nebennummern korrespondieren mit den Basisadressen 0x03bc, 0x0378 und 0x0278 der Druckerports. Normalerweise ist ihr Zugriffsmodus 220, der Besitzer ist root und die Gruppe lp. Die Druckerports konnen entweder im Polling- oder Interrupt-Betrieb benutzt werden. Falls ein grosserer Datendurchsatz erwartet wird, z.B. fur Laserdrucker, sollten Interrupts benutzt werden. Fur typische Matrixdrucker sollte Polling ausreichen. Der Vorgabewert ist Polling. BESCHREIBUNG Die folgenden Aufrufe von ioctl(2) werden unterstutzt: int ioctl(int fd, LPTIME, int arg) Wenn der Druckerpuffer voll ist, schlaft der Treiber fur arg Hundertstelsekunden, bevor er den Puffer erneut pruft. Fur einen schnellen Drucker sollte dieser Wert niedrig, fur einen langsamen Drucker dagegen hoch gewahlt 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 Durchgange, die der abrufende Treiber wartet, bis der Drucker bereit ist, ein Zeichen fur arg zu empfangen. Die Zahl sollte vergrossert 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. Standardmassig werden Fehler ignoriert. int ioctl(int fd, LPCAREFUL, int arg) Falls arg 0 ist, mussen 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 ausgefuhrt 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 ausgefuhrt, bevor der Strobe-Impuls beendet wird. Die Spezifikation gibt eine Impulslange von 0,5 Mikrosekunden vor. Die Erfahrung hat gezeigt, dass die Verzogerung durch den Code selbst ausreicht. Darum ist der Standardwert 0. Er wird fur den interruptgetriebenen wie fur den abrufenden Treiber verwendet. int ioctl(int fd, LPSETIRQ, int arg) Dieser ioctl(2) benotigt 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 unveranderter Acknowledge-Eingang, aktiv niedrig LP_POUTPA unveranderter >>out-of-paper<<-Eingang, aktiv hoch LP_PSELECD unveranderter Selected-Eingang, aktiv hoch LP_PERRORP unveranderter Error-Eingang, aktiv niedrig Lesen Sie auch Ihr Drucker-Handbuch fur die Bedeutung der Signale. Beachten Sie, dass abhangig vom Drucker auch undokumentierte Bits gesetzt werden konnen. int ioctl(int fd, LPRESET) Setzt den Drucker zuruck. Ohne Argument. DATEIEN /dev/lp* SIEHE AUCH chmod(1), chown(1), mknod(1), lpcntl(8), tunelp(8) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Michael Haardt , Martin Eberhard Schauer und Dr. Tobias Quathamer erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 5. Februar 2023 lp(4)