Mit FreeBSD 8.0 wurden die Gerätedateien für
serielle Ports von
/dev/ttyd
in
N
/dev/ttyu
umbenannt. Setzen Sie noch FreeBSD 7.X ein, müssen
Sie die Befehle in den folgenden Abschnitten entsprechend
anpassen.N
Um einen Drucker mit dem LPD-Drucksystem benutzen zu können, müssen Sie sowohl Ihren Drucker und die Drucker-Schnittstelle als auch das LPD-Drucksystem konfigurieren. Dieser Abschnitt beschreibt zwei Konfigurationen:
Abschnitt Einfache Drucker-Konfiguration beschreibt, wie Sie einen Drucker an Ihren Computer anschließen und LPD so konfigurieren, dass Sie Textdateien zum Drucker senden können.
Abschnitt Erweiterte Drucker-Konfiguration beschreibt, wie Sie mit speziellen Dateiformaten umgehen können, wie Sie Deckblätter drucken können, wie Sie den Zugriff auf Drucker einschränken können, und wie Sie Verrechnungsdaten aufzeichnen können.
Dieser Abschnitt beschreibt, wie Sie die LPD-Software konfigurieren, um Ihren Drucker zu benutzen. Diese Grundlagen werden erklärt:
Abschnitt Hardware-Konfiguration erläutert, wie Sie Ihren Drucker an Ihren Computer anschließen können.
Abschnitt Software-Konfiguration
erklärt, wie Sie die
LPD-Konfigurationsdatei
(/etc/printcap
) anpassen.
Wenn Sie einen Drucker einrichten möchten, der über das Netzwerk angeschlossen ist (anstatt über die serielle oder parallele Schnittstelle), lesen Sie bitte Abschnitt Drucker mit direkter TCP-Schnittstelle.
Obwohl dieser Abschnitt „Grund-Konfiguration“ heißt, ist die Konfiguration relativ komplex. Es ist vergleichsweise schwierig, einen Drucker mit Ihrem Computer und dem LPD-Drucksystem zu verbinden. Die weiteren Optionen, wie Kopfzeilen oder Deckblätter, sind einfach zu konfigurieren, sobald die Grund-Konfiguration erfolgreich abgeschlossen ist.
Dieser Abschnitt beschreibt, über welche Schnittstellen Sie einen Drucker mit Ihrem Computer verbinden können. Er behandelt sowohl die Schnittstellen und Kabel, als auch die Kerneloptionen, die Sie benötigen, um FreeBSD mit Ihrem Drucker kommunizieren zu lassen.
Wenn Sie Ihren Drucker bereits erfolgreich mit einem anderen Betriebssystem auf Ihrem PC eingesetzt haben, können Sie wahrscheinlich mit dem Abschnitt Software-Konfiguration fortfahren.
Praktisch alle Drucker unterstützen mindestens eine dieser Schnittstellen:
Seriell angeschlossene Drucker werden über eine serielle Schnittstelle (auch RS-232 oder COM-Schnittstelle genannt) mit Ihrem Computer verbunden. Diese Schnittstelle wird von vielen unterschiedlichen Systemen verwendet. Serielle Kabel sind leicht erhältlich und können auch einfach selbst hergestellt werden. Einige Drucker erfordern möglicherweise ein spezielles Kabel oder besondere Kommunikationseinstellungen. Die meisten seriellen Schnittstellen von PCs besitzen eine maximale Datenübertragungsrate von 115200 bps; zum Ausdruck großer Grafiken sind serielle Drucker daher ungeeignet.
Parallel angeschlossene Drucker werden über eine parallele Schnittstelle mit Ihrem Computer verbunden. Diese Schnittstelle wird hauptsächlich von PCs und Workstations benutzt. Die Schnittstelle bietet eine höhere Datenübertragungsrate als serielle Schnittstellen. Kabel sind leicht erhältlich, sind aber vergleichsweise schwer selbst herzustellen. Üblicherweise brauchen keine Kommunikationsparameter festgelegt zu werden; dies macht die Einrichtung sehr einfach.
Die parallele Schnittstelle wird auch als „Centronics“-Schnittstelle bezeichnet, nach dem Namen des Steckverbinders, der hier häufig zum Einsatz kommt.
USB-Schnittstelle (Universal Serial Bus) bieten noch höhere Geschwindigkeiten als parallele Schnittstellen oder serielle RS-232-Schnittstellen. USB-Kabel sind einfach und billig. Zum Drucken ist die USB-Schnittstelle besser geeignet als serielle oder parallele Schnittstellen, auf vielen UNIX® Systemen werden USB-Schnittstellen jedoch nur unzureichend unterstützt. Um Probleme zu vermeiden, sollten Sie sich einen Drucker anschaffen, der sowohl eine USB-Schnittstelle als auch eine parallele Schnittstelle besitzt (viele Drucker besitzen heute beide Schnittstellen).
Im Allgemeinen versenden parallele Schnittstellen Daten nur in eine Richtung (vom Computer zum Drucker), serielle Schnittstellen und USB-Schnittstellen versenden Daten in beide Richtungen. Moderne parallele Schnittstellen (EPP and ECP) übertragen Daten bi-direktional nach dem Standard IEEE 1284.
Ein Drucker kann auf zwei Arten bi-direktional angesprochen werden. Die erste Methode benutzt einen Druckertreiber, der die herstellerspezifische Sprache des Druckers beherrscht. Diese Methode wird oft mit Tintenstrahl-Druckern eingesetzt und dazu benutzt, den Füllstand der Tintenpatronen und andere Status-Informationen auszugeben. Die zweite Methode wird benutzt, wenn der Drucker PostScript® beherrscht.
Da ein PostScript®-Druckauftrag ein komplettes Programm ist, kann es auch Daten an den Computer zurückliefern, ohne überhaupt eine Seite Papier zu bedrucken. Auf diesem Wege werden auch Probleme wie z.B. ein Papierstau vom Drucker an den Computer übermittelt. Darüberhinaus ist dies die effektivste Methode, um die tatsächlich gedruckte Anzahl an Seiten vom Drucker abzufragen: ein PostScript®-Programm ermittelt jeweils vor und direkt nach einem Druckauftrag den Seitenzähler des Druckers, und vergleicht die beiden Zählerwerte.
Um einen Drucker mit paralleler Schnittstelle an Ihren Computer anzuschließen, verbinden Sie den Drucker mit einer parallelen Schnittstelle Ihres Computers. Die Dokumentation zu Ihrem Drucker oder Computer sollte Ihnen hier weiterhelfen.
Notieren Sie sich, mit welcher parallelen Schnittstelle des
Computers Sie den Drucker verbunden haben. Die meisten Computer
haben lediglich eine parallele Schnittstelle.
Der FreeBSD-Gerätename der ersten Schnittstelle lautet ppc0
, der der zweiten ppc1
, und so weiter. Der
Gerätename für den Drucker an der ersten parallelen
Schnittstelle folgt dem selben Schema und lautet /dev/lpt0
, usw.
Um einen Drucker mit serieller Schnittstelle an Ihren Computer anzuschließen, verbinden Sie den Drucker mit einer seriellen Schnittstelle Ihres Computers. Die Dokumentation zu Ihrem Drucker oder Computer sollte Ihnen hier weiterhelfen.
Sollten Sie sich nicht sicher sein, welches das „richtige Kabel“ ist, können Sie eine dieser Alternativen ausprobieren:
Ein Modemkabel verbindet alle Anschlüsse an einem Ende des Kabels eins-zu-eins mit den Anschlüssen am anderen Ende des Kabels. Ein solches Kabel wird auch als (engl.) „DTE-to-DCE-“ oder „DEE-zu-DÜE-“Kabel bezeichnet.
Ein Nullmodemkabel verbindet einige Signale eins-zu-eins, andere über Kreuz (z.B. Sende- und Empfangsleitung), und verbindet einige weitere direkt im Stecker miteinander. Ein solches Kabel wird auch als (engl.) „DTE-to-DTE-“ oder „DEE-zu-DEE-“Kabel bezeichnet.
Ein Serielles Druckerkabel schließlich, das für einige spezielle Drucker benötigt wird, verbindet zusätzliche Signale miteinander, anstatt sie im Stecker zurückzuführen.
Sie sollten auch die Kommunikationsparameter am
Drucker einstellen; üblicherweise gibt es dazu
DIP-Schalter, oder eine Option in der Menüführung am
Drucker. Wählen Sie die höchste
Bitrate (auch als bps
Bits pro Sekunde oder Baudrate bezeichnet),
die sowohl Ihr Drucker als auch Ihr Computer unterstützen.
Wählen Sie 7 oder 8 Bits, gerade, ungerade oder keine
Parität, und ein oder zwei Stoppbits. Wählen
Sie die Art der Flusssteuerung: keine, XON/XOFF (auch
als „in-band-“ oder
„Software“-Flusssteuerung bezeichnet),
oder Hardware. Notieren Sie sich diese Einstellungen, damit Sie
sie später bei der Software-Konfiguration zur Verfügung
haben.
Dieser Abschnitt beschreibt die notwendigen Konfigurationsschritte, damit Sie mit dem FreeBSD-LPD-System drucken können.
Diese Schritte müssen Sie ausführen:
Konfigurieren Sie Ihren Kernel, soweit notwendig, um die Schnittstelle benutzen zu können, an die Ihr Drucker angeschlossen ist. Abschnitt Kernel-Konfiguration erklärt, welche Optionen Sie benötigen.
Konfigurieren Sie die Kommunikationseinstellungen für die parallele Schnittstelle, sofern Sie sie benutzen. Abschnitt Kommunikationseinstellungen für die parallele Schnittstelle enthält die Details.
Prüfen Sie, ob Sie Daten an den Drucker senden können. Abschnitt Prüfen der Drucker-Kommunikation führt eine Reihe von Möglichkeiten auf.
Konfigurieren Sie LPD
für Ihren Drucker, indem Sie die Konfigurationsdatei
/etc/printcap
anpassen. Details dazu finden
Sie im Abschnitt LPD
aktivieren: die
/etc/printcap
-Datei.
Der Betriebssystem-Kernel ist für eine bestimmte Kombination aus Geräten kompiliert. Dies schließt Ihre seriellen oder parallelen Schnittstellen mit ein. Dementsprechend kann es notwendig sein, die Kernelkonfiguration um weitere Schnittstellen zu erweitern.
So können Sie prüfen, ob Ihr Kernel die serielle Schnittstelle unterstützt, an die Sie den Drucker angeschlossen haben:
#
grep sioN
/var/run/dmesg.boot
Ersetzen Sie N
durch die
Nummer der seriellen Schnittstelle, beginnend bei Null.
Wenn Sie eine Ausgabe ähnlich der folgenden erhalten,
unterstützt ihr Kernel diese Schnittstelle:
Erhalten Sie keine Ausgabe, oder eine Fehlermeldung, wird die Schnittstelle nicht korrekt unterstützt.
So können Sie prüfen, ob Ihr Kernel die parallele Schnittstelle unterstützt, an die Sie den Drucker angeschlossen haben:
#
grep ppcN
/var/run/dmesg.boot
Ersetzen Sie N
durch die
Nummer der parallelen Schnittstelle, beginnend bei Null.
Wenn Sie eine Ausgabe ähnlich der folgenden erhalten,
unterstützt ihr Kernel diese Schnittstelle:
Erhalten Sie keine Ausgabe, oder eine Fehlermeldung, wird die Schnittstelle nicht korrekt unterstützt.
Gegebenenfalls müssen Sie Ihren Kernel umkonfigurieren und neu kompilieren, damit die von Ihnen gewählte Schnittstelle unterstützt wird.
Um Unterstützung für eine serielle Schnittstelle hinzuzufügen, lesen Sie bitte Kapitel Konfiguration des FreeBSD Kernels. Um eine parallele Schnittstelle hinzuzufügen, lesen Sie bitte ebenfalls jenes Kapitel als auch den folgenden Abschnitt Kommunikationseinstellungen für die parallele Schnittstelle.
Wenn Sie die parallele Schnittstelle zur Kommunikation mit Ihrem Drucker benutzen, haben Sie die Wahl zwischen Interrupt-gesteuerter oder Polling-Datenübertragung. Der generische Druckergerätetreiber lpt(4) in FreeBSD benutzt das ppbus(4)-System, das die parallele Schnittstelle mithilfe des ppc(4)-Treibers steuert.
Die Interrupt-gesteuerte Datenübertragung ist die Voreinstellung im GENERIC-Kernel. Der Treiber benutzt eine IRQ-Leitung, um zu erfahren, wann der Drucker weitere Daten empfangen kann.
Bei der Polling-Methode prüft der Treiber in regelmäßigen Abständen, ob weitere Daten übertragen werden können.
Die Interrupt-gesteuerte Methode ist überlicherweise schneller und verbraucht weniger Rechenzeit als die Polling-Methode, es wird jedoch eine eigene IRQ-Leitung für die Schnittstelle benötigt. Darüberhinaus kann es mit einigen Druckermodellen zu Problemen kommen, wenn die Interrupt-gesteuerte Übertragung zum Einsatz kommt.
Die können die Kommunikationseinstellung entweder in der Kernel-Konfiguration wählen, oder mittels des lptcontrol(8)-Programms zur Laufzeit einstellen.
So legen Sie die Kommunikationseinstellung in der Kernel-Konfiguration fest:
Ändern Sie Ihre Kernel-Konfigurationsdatei.
Finden Sie die Zeile, die mit device
ppc0
beginnt. Wenn Sie die zweite parallele
Schnittstelle konfigurieren möchten, suchen Sie
nach device ppc1
, für die
dritte Schnittstelle ppc2
,
usw.
Um die Interrupt-Steuerung zu aktivieren, passen Sie die folgende Zeile an:
N
"Ersetzen Sie N
durch die Nummer der IRQ-Leitung, die dieser
parallelen Schnittstelle zugewiesen ist. Stellen
Sie sicher, dass Ihre Kernel-Konfigurationsdatei den
ppc(4)-Treiber enthält:
Wenn Sie den Polling-Modus verwenden
möchten, entfernen Sie die folgende Zeile
aus /boot/device.hints
:
N
"Sollte der Treiber die Schnittstelle dennoch im Interrupt-Modus betreiben, könnte dies an der Aktivierung durch das acpi(4)-System in FreeBSD liegen. Bitte prüfen Sie die ACPI- und die BIOS-Konfiguration.
Wenn Sie Ihre Kernel-Konfigurationsdatei angepasst haben, kompilieren und installieren Sie nun einen neuen Kernel. Das Kapitel Konfiguration des FreeBSD-Kernels enthält weitere Details dazu.
So können Sie die Kommunikationseinstellung mitlptcontrol(8) ändern:
Um die Interrupt-Steuerung für die
Schnittstelle N
zu
aktivieren, geben Sie ein:
#
lptcontrol -i
-d
/dev/lptN
Um den Polling-Modus für die Schnittstelle
N
zu aktivieren, geben Sie
ein:
#
lptcontrol -p
-d
/dev/lptN
Sie können diesen Befehl in
/etc/rc.local
aufnehmen, damit er bei
jedem Systemstart automatisch ausgeführt wird.
lptcontrol(8) enthält weitere Informationen.
Bevor Sie mit der Konfiguration des LPD-Drucksystems fortfahren, sollten Sie sicherstellen, das Sie erfolgreich Daten an Ihren Drucker senden können. Es ist deutlich einfacher, Kommunikations- und Konfigurationsprobleme unabhängig voneinander zu lösen.
Der Drucker kann mit einem Probeausdruck getestet werden. Für alle Drucker, die normalen Text unmittelbar drucken können, bietet sich das Programm lptest(1) an: es produziert alle 96 druckbaren ASCII-Zeichen auf 96 Zeilen.
Für einen PostScript®-Drucker (oder andere Drucker, die eine Seitenbeschreibungssprache verwenden) muss ein passendes Programm an den Drucker gesendet werden, z.B. dieses:
Sie können dieses ProstScript-Programm in einer Datei speichern, und mit den Beispielen in den folgenden Abschnitt verwenden.
Nicht alle Drucker, die eine Seitenbeschreibungssprache verwenden, benötigen ein Test-Programm: z.B. HPs PCL (das auch in vielen kompatiblen Druckern zum Einsatz zu kommt), versteht normalen Text. Besondere Escape-Sequenzen werden benutzt, um die erweiterten Möglichkeiten aufzurufen. PostScript®-Drucker können in der Regel keinen normalen Text direkt verarbeiten, weil sie ein PostScript®-Programm erwarten, das eine Seite produziert.
Dieser Abschnitt führt vor, wie Sie die Kommunikation mit Ihrem Drucker über die parallele Schnittstelle prüfen können.
So testen Sie einen Drucker an einer parallelen Schnittstelle:
Werden Sie root
mithilfe
des su(1)-Befehls.
Senden Sie Testdaten an den Drucker.
Wenn Ihr Drucker reinen Text direkt drucken kann, verwenden Sie lptest(1):
#
lptest > /dev/lptN
Ersetzen Sie N
durch die Nummer der parallelen Schnittstelle,
an die der Drucker angeschlossen ist (angefangen
bei Null).
Wenn Ihr Drucker PostScript® (oder eine andere Seitenbeschreibungssprache) versteht, senden Sie ein passendes Testprogramm an den Drucker. Geben Sie folgenden Befehl ein:
#
cat file
> /dev/lptN
Ersetzen Sie N
durch die Nummer der parallelen Schnittstelle,
an die der Drucker angeschlossen ist (angefangen
bei Null). Geben Sie nun das Testprogramm ein,
Zeile für Zeile. Kontrollieren Sie jede
Zeile, bevor Sie die Eingabetaste drücken:
Sie können die Zeile später nicht mehr
ändern. Zum Schluss tippen Sie
Ctrl+D.
Wenn Sie ein anderes Zeichen nutzen, um das Ende
der Datei anzuzeigen, müssen Sie
natürlich die entsprechende
Tastenkombination für dieses Zeichen
betätigen.
Sie können das Testprogramm auch in einer Datei speichern, und dann diesen Befehl aufrufen:
#
cat Testprogramm
> /dev/lptN
Ersetzen Sie Testprogramm
durch den Dateinamen, unter dem Sie das Testprogramm
gespeichert haben.
Der Drucker sollte einige Zeilen oder eine Seite drucken. Machen Sie sich keine Sorgen über falsche Formatierungen: die Software-Konfiguration enthält Informationen zum Umformatieren von Druckaufträgen.
Dieser Abschnitt führt vor, wie Sie die Kommunikation mit Ihrem Drucker über die parallele Schnittstelle prüfen können.
So testen Sie einen Drucker an einer seriellen Schnittstelle:
Werden Sie root
mithilfe
des su(1)-Befehls.
Ändern Sie die Datei
/etc/remote
. Fügen Sie
den folgenden Eintrag hinzu:
/dev/port
:br#bps-rate
:pa=parity
Ersetzen Sie
Gerät
durch den
Gerätenamen der seriellen Schnittstelle
(ttyu0
für die erste,
ttyu1
für die zweite, usw.),
Baudrate
ist die
Geschwindigkeit und
Parität
die
Parität (even
für
gerade, odd
für ungerade
oder none
für keine), die
Sie am Drucker eingestellt haben.
Hier ein Beispieleintrag für einen Drucker, der über die dritte serielle Schnittstelle angeschlossen ist, mit 19.200 Baud kommuniziert und keine Parität verwendet:
/dev/ttyu2
:br#19200:pa=noneVerbinden Sie sich mit dem Drucker über den Befehl tip(1):
#
tip
printer
Kommt es hierbei zu einer Fehlermeldung,
ändern Sie den Eintrag in
/dev/cuaa
und verwenden Sie N
/dev/cuaa
statt N
/dev/ttyu
.N
Senden Sie Testdaten an den Drucker.
Wenn Ihr Drucker reinen Text direkt drucken kann, verwenden Sie lptest(1):
%
$lptest
Wenn Ihr Drucker PostScript® (oder eine andere
Seitenbeschreibungssprache) versteht, senden Sie ein
passendes Testprogramm an den Drucker. Geben Sie das
Testprogramm ein, Zeile für Zeile. Kontrollieren
Sie jede Zeile, bevor Sie die Eingabetaste drücken:
Sie können die Zeile später nicht mehr
ändern. Zum Schluss tippen Sie
Control-D
.
Sie können das Testprogramm auch in einer Datei speichern, und dann diesen Befehl aufrufen:
%
>Testprogramm
Ersetzen Sie Testprogramm
durch den Dateinamen, unter dem Sie das Testprogramm
gespeichert haben. Nachdem tip(1) die Datei
gesendet hat, tippen Sie
Control-D
.
Der Drucker sollte einige Zeilen oder eine Seite drucken. Machen Sie sich keine Sorgen über falsche Formatierungen: die Software-Konfiguration enthält Informationen zum Umformatieren von Druckaufträgen.
Nachdem Sie Ihren Drucker angeschlossen haben, Ihren Kernel richtig konfiguriert haben und erfolgreich einen Testausdruck produziert haben, können Sie nun das LPD-System konfigurieren.
Sie konfigurieren LPD, indem
Sie die Datei /etc/printcap
anpassen.
Da LPD die Datei jedes Mal liest,
wenn eine Aktion durchgeführt wird, werden
Änderungen an der Konfiguration sofort aktiv.
Die printcap(5)-Datei ist einfach aufgebaut. Sie
können /etc/printcap
mit Ihrem
bevorzugten Texteditor bearbeiten. Sie verwendet dasselbe
Format wie auch /usr/share/misc/termcap
oder /etc/remote
. Informationen zum
Format finden Sie in cgetent(3).
Die Grund-Konfiguration des LPD-Systems beinhaltet diese Schritte:
Wählen Sie einen Namen (und einige praktische
Abkürzungen) für die Druckerwarteschlage, und
tragen Sie ihn in die /etc/printcap
-Datei
ein. Abschnitt Einen Namen
wählen enthält weitere Informationen.
Schalten Sie den Druck von Deckblättern aus (dies
ist standardmäßig eingeschaltet), indem Sie das
Attribut sh
setzen. Abschnitt Den Druck von
Deckblättern ausschalten erklärt, wie Sie
dies tun können.
Legen Sie ein Pufferverzeichnis für die
Warteschlange an, und geben Sie den Pfad mittels des
sd
-Attributs an: siehe Abschnitt Das Pufferverzeichnis
anlegen.
Geben Sie den Gerätenamen für Ihren
Drucker mittels des lp
-Attributs an:
siehe Abschnitt Festlegen der
Drucker-Gerätedatei. Ist Ihr Drucker
über eine serielle Schnittstelle angeschlossen,
benutzen Sie das Attribut ms#
,
wie dies in Abschnitt Festlegen der
Kommunikationsparameter beschrieben ist.
Installieren Sie einen Filter für reinen Text: siehe Abschnitt Den Textfilter installieren.
Testen Sie die Konfiguration, indem Sie etwas mit dem lpr(1)-Befehl drucken. Die Abschnitte Die Konfiguration testen und Fehlersuche und Problembehebung enthalten weitere Informationen.
Drucker, die eine Seitenbeschreibungssprache wie PostScript® verwenden, können keinen reinen Text drucken. Es wird deshalb angenommen, dass Sie nur solche Dateien drucken, die Ihr Drucker verarbeiten kann.
Viele Anwender erwarten, dass sie normalen Text auf allen Druckern drucken können. Viele Programme, die mit LPD zusammenarbeiten, gehen ebenfalls von dieser Annahme aus. Wenn Sie einen PostScript®-Drucker installieren, und Sie sowohl PostScript®- als auch Textdateien drucken möchten, sollten Sie einen weiteren Konfigurationsschritt ausführen und einen Text-zu-PostScript®-Filter installieren. Der Abschnitt Drucken von reinen Textdateien auf einem PostScript®-Drucker erklärt, wie Sie dies tun können.
Der erste einfache Schritt ist, einen Namen für Ihren Drucker zu wählen. Sie können diesen Namen frei wählen, Sie sollten allerdings keine Sonderzeichen oder Umlaute verwenden. Sie können mehrere Alias-Namen vergeben.
Ein Drucker in /etc/printcap
sollte den Alias lp
haben. Dieser Name
wird standardmäßig von allen Druckbefehlen
verwendet, wenn auf der Befehlszeile oder in der
PRINTER
-Umgebungsvariablen kein anderer
Drucker angegeben ist.
Ebenso ist es üblich, eine ausführliche Beschreibung des Druckermodells als letzten Alias-Namen zu verwenden.
Sobald Sie einen Namen und einige einfache Alias-Namen
ausgewählt haben, tragen Sie sie in die Datei
/etc/printcap
ein. Beginnen Sie die
Zeile mit dem Namen des Druckers und fügen Sie alle
Alias-Namen an. Trennen Sie die Namen durch den
senkrechten Strich |
. Fügen Sie an
das Ende der Zeile einen Doppelpunkt :
an.
Das folgende Beispiel definiert zwei Drucker, einen Diablo 630 Zeilendrucker, und einen Panasonic KX-P4455 PostScript®-Laserdrucker:
Der erste Drucker hat den Namen
rattan
, und hat die Alias-Namen
line
, diablo
,
lp
und Diablo 630 Line
Printer
. Da er den Alias-Namen
lp
trägt, wird er
standardmäßig von den Druckprogrammen
verwendet. Der zweite Drucker heißt
bamboo
, und hat die Alias-Namen
ps
, PS
,
S
, panasonic
und
Panasonic KX-P4455 PostScript
v51.4
.
Standardmäßig druckt das LPD-System ein Deckblatt vor jedem Druckauftrag, die den Namen des Druckauftrags, den Benutzer und den Computer angibt. Während der Einrichtung des Systems und beim Testen stört das Deckblatt allerdings, weshalb Sie sie zunächst deaktivieren sollten.
Um den Druck von Deckblättern zu deaktivieren,
fügen Sie das Attribut sh
zur
Druckerdefinition in /etc/printcap
hinzu. Hier ein Beispiel:
Beachten Sie die korrekte Formatierung: die beiden
Definitionen beginnen auf einer Zeile; weitere Zeilen der
Definition sind mit einem Tab
-Zeichen
eingerückt, und alle Zeilen einer Definition, bis auf
die letzte, enden mit dem Backslash \
.
Der nächste Schritt ist, das Pufferverzeichnis anzulegen. In diesem Verzeichnis werden Druckaufträge zwischengespeichert, während sie gedruckt werden. Gleichzeitig werden hier auch einige Verwaltungsdateien des Systems abgelegt.
Da sich die Dateien in diesem Verzeichnis häufig
ändern, ist es üblich, das Verzeichnis unter
/var/spool
anzulegen.
Es ist nicht notwendig, Sicherungskopien der Dateien
herzustellen; das Verzeichnis kann nötigenfalls
leicht mit mkdir(1) wieder angelegt werden.
Es ist auch üblich, dem Verzeichnis denselben Namen wie dem Drucker zu geben:
#
mkdir /var/spool/printer-name
Wenn Sie viele Drucker verwenden, ist es am besten,
wenn Sie für die Pufferverzeichnisse ein eigenes
Unterverzeichnis in /var/spool
anlegen, wie dies hier für die beiden Beispieldrucker
rattan
und bamboo
gezeigt wird:
#
mkdir /var/spool/lpd
#
mkdir /var/spool/lpd/rattan
#
mkdir /var/spool/lpd/bamboo
Um zu verhindern, dass alle Benutzer den Inhalt
aller Druckaufträge einsehen können, sollten
Sie die Rechte auf den Pufferverzeichnissen einschränken.
Die Verzeichnisse sollten dem
Benutzer daemon
und der Gruppe
daemon
gehören, und auch nur
vom Benutzer und der Gruppe les-, schreib- und
durchsuchbar sein. Für unsere
Beispieldrucker:
#
chown daemon:daemon /var/spool/lpd/rattan
#
chown daemon:daemon /var/spool/lpd/bamboo
#
chmod 770 /var/spool/lpd/rattan
#
chmod 770 /var/spool/lpd/bamboo
Schließlich müssen Sie dem
LPD-System noch mitteilen, wo
Sie die Pufferverzeichnisse angelegt haben. Dazu geben Sie
in der Definition das Attribut sd
an:
/var/spool/lpd/rattan
:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo
:Beachten Sie, dass der Druckername in der ersten
Spalte beginnt, und dass alle Folgezeilen mit einem
Tab
eingerückt sind.
Wenn Sie das sd
-Attribut nicht
angeben, verwendet das System /var/spool/lpd
als Verzeichnis.
Nachdem Sie die korrekte Gerätedatei für die
Schnittstelle im Abschnitt Hardware-Konfiguration
identifiziert und angelegt haben, müssen Sie dem
LPD-System mitteilen, welche
Gerätedatei im Verzeichnis /dev
es für die
Datenübertragung zum Drucker verwenden soll.
Geben Sie die Gerätedatei durch das Attribut
lp
in
/etc/printcap
an.
Wenn rattan
an die erste parallele
Schnittstelle angeschlossen ist, und bamboo
an
die sechste serielle, dann sieht /etc/printcap
so aus:
/var/spool/lpd/rattan
:\
:lp=/dev/lpt0
:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
sh:sd=/var/spool/lpd/bamboo
:\
:lp=/dev/ttyu5
:Wenn Sie lp
nicht angeben, versucht
LPD die Gerätedatei /dev/lp
zu verwenden. /dev/lp
ist zurzeit in FreeBSD
nicht definiert.
Wenn Ihr Drucker über eine parallele Schnittstelle angeschlossen ist, können Sie mit dem Abschnitt Den Textfilter installieren fortfahren. Verwenden Sie eine serielle Schnittstelle, beachten Sie bitte den folgenden Abschnitt.
Für seriell angeschlossene Drucker kann LPD die Geschwindigkeit, Parität und weitere Kommunikationsparameter einstellen. Dies hat folgende Vorteile:
Sie können die Parameter einfach in
/etc/printcap
ändern, ohne
das Ausgabe-Filterprogramm anpassen zu
müssen.
Dasselbe Ausgabe-Filterprogramm kann für unterschiedliche Drucker verwendet werden, auch wenn diese unterschiedliche Kommunikationseinstellungen benötigen.
Die folgenden Attribute legen die seriellen Kommunikationsparameter fest:
br#Baudrate
Setzt die Übertragungsgeschwindigkeit auf
Baudrate
.
Baudrate
kann
üblicherweise 50, 75, 110, 134.5, 150, 300,
600, 1200, 1800, 2400, 4800, 9600, 19200, 38400,
57600, oder 115200 Bit pro Sekunde betragen.
ms#stty-Modi
Setzt die Eigenschaften für das Gerät, nachdem es geöffnet wurde. Die verfügbaren Eigenschaften sind in stty(1) aufgeführt.
Wenn LPD das mit
lp
angegebene Gerät öffnet,
setzt es die mit ms#
angegebenen
Eigenschaften. Von besonderem Interesse sind hier die Modi
parenb
, parodd
,
cs5
, cs6
,
cs7
, cs8
,
cstopb
, crtscts
und
ixon
, die in der
stty(1)-Handbuchseite erläutert werden.
Für den über die sechste serielle
Schnittstelle angeschlossenen Laserdrucker beträgt
die Geschwindigkeit 38.400 Baud, und es werden diese
Kommunikationseinstellungen verwendet: keine Parität
(-parenb
), 8-Bit-Zeichen
(cs8
), keine Modemsteuerung
(clocal
) und Hardware-Flusssteuerung
(crtscts
):
/var/spool/lpd/bamboo
:\
:lp=/dev/ttyd5
:ms#-parenb cs8 clocal crtscts:Ein Textfilter, auch als
Eingangsfilter bezeichnet, ist ein
Programm, das von LPD
aufgerufen wird, wenn ein Druckauftrag verarbeitet wird.
Dabei wird die Standardeingabe des Programms mit der zu
druckenden Datei verbunden, und die Standardausgabe mit
dem im lp
-Attribut angegebenen
Gerät. Das Programm sollte nun die Datei einlesen,
alle Übersetzungen durchführen, die für den
Drucker notwendig sind, und das Ergebnis über die
Standardausgabe an den Drucker senden. Textfilter werden
im Abschnitt Filter genauer
erläutert.
Um einen einfachen Test durchzuführen, reicht ein
kleines Filterprogramm, dass schlicht /bin/cat
aufruft, um die Daten unverändert und den Drucker zu schicken.
FreeBSD verfügt über das Programm lpf
,
das Unterstreichung und Fettdruck für solche Drucker
ermöglicht, die ansonsten dazu nicht in der Lage wären.
Darüberhinaus gibt es viele andere Filter, die Sie einsetzen
können. lpf
wird im Abschnitt lpf: ein Textfilter
ausführlich beschrieben.
Legen Sie zunächst das folgende Shell-Skript als
/usr/local/libexec/if-simple
mit
Ihrem bevorzugten Texteditor an:
Machen Sie die Datei ausführbar:
#
chmod 555 /usr/local/libexec/if-simple
Konfigurieren Sie nun den Textfilter für Ihren
Drucker in /etc/printcap
, indem Sie
das if
-Attribut hinzufügen. Hier
die Konfiguration unserer beiden Beispieldrucker:
/var/spool/lpd/rattan
:\ :lp=/dev/lpt0
:\
:if=/usr/local/libexec/if-simple
:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo
:\
:lp=/dev/ttyu5
:ms#-parenb cs8 clocal crtscts:\
:if=/usr/local/libexec/if-simple
:Das Shell-Skript if-simple
steht im Verzeichnis /usr/share/examples/printing
.
lpd(8) wird von /etc/rc
gestartet, wenn die rc.conf(5)-Variable
lpd_enable
auf YES
gesetzt ist. Fügen Sie dazu diese Zeile in
/etc/rc.conf
hinzu:
Starten Sie Ihren Computer neu, oder starten Sie lpd(8) von Hand:
#
lpd
Damit ist die einfache Konfiguration abgeschlossen. Noch muss die Konfiguration aber getestet werden und etwaige Probleme müssen behoben werden. Um die Konfiguration zu testen, sollten Sie einen Probeausdruck mithilfe des Programms lpr(1) produzieren. lpr(1) übergibt Druckaufträge an das LPD-System.
Sie können lpr(1) mit lptest(1) kombinieren, um Testdaten zu drucken. lptest(1) wurde im Abschnitt Kommunikation mit den Drucker prüfen vorgestellt.
So testen Sie die einfache LPD-Konfiguration:
#
lptest 20 5 | lpr -P
Druckername
Ersetzen Sie Druckername
durch den Namen des Druckers, den Sie testen möchten.
Wenn Sie den Standard-Drucker testen möchten, rufen
Sie lpr(1) ohne die Option -P
auf.
Wenn Sie einen Drucker testen möchten, der nur
PostScript® versteht, müssen Sie ein
PostScript®-Testprogramm an lpr(1) übergeben.
Ein Testprogramm, das Sie in einer Datei gespeichert haben,
können Sie mit dem Befehl
lpr
an das LPD-System übergeben.Dateiname
Bei einem PostScript®-Drucker hängt das Ergebnis naturgemäß vom Testprogramm ab. Wenn Sie lptest(1) verwenden, sollte das Ergebnis ungefähr so aussehen:
Um sicherzustellen, dass alles richtig
funktioniert, sollten Sie jetzt ein größeres
PostScript®-Programm senden. Mit lptest(1) können
Sie größere Datenmengen z.B. mit dem Befehl
lptest 80 60
erzeugen: lptest(1)
produziert 60 Zeilen mit je 80 Zeichen.
Wenn Sie nicht erfolgreich drucken können, finden Sie im Abschnitt Fehlersuche und Problembehebung weitere Informationen.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.