Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


LPD-Drucksystem

[ LPD-Drucksystem ] CUPS ] Linux-Clients ] Windows-Clients ] PDF-Printer ]


Das Drucksystem LPD (Line Printer Daemon) aus der Berkeley Software Distribution (BSD)  wird bei den meisten Linux-Distributionen standardmäßig eingesetzt und ist in der RFC 1179 festgelegt. Es handelt sich hierbei um ein so genanntes Spooling-System, d.h. bei einen Druck werden die Aufträge zunächst zwischengespeichert und dann durch einen so genannten Spooler (Queue) nacheinander zum Drucker geschickt.
Vielfach liegen die zu druckenden Daten nicht in einer für den Drucker direkt zu verarbeitenden Form vor und müssen zunächst in ein verständliches Format konvertiert werden (z.B. Grafikformaten). Die Umwandlung der Daten in ein druckbares Format, erfolgt durch so genannte Druckfilter. Ein Druckfilter (z.B.: APS-Filter) ist ein Programm, das die zu druckenden Daten in eine für den Drucker verständliche Form bringt. So ist es z.B. möglich, mit einen speziellen Filter-Programm (z.B. Ghostscript) eine Datei im Postscript-Format, auf einen nicht postscriptfähigen Drucker auszudrucken. Das Filter-Programm übernimmt in diesem Fall die Aufbereitung für den Drucker.
Der LPD kann je nach Konfiguration Client und auch Server sein. D.h. ein System mit LPD ohne lokalen Drucker senden über das Netzwerk die Daten zu einem LPD-System mit angeschlossenen Drucker. In diesem Fall ist das sendende System Client und das empfangende System Server (Print-Server). Das Drucken mit LPD ist dabei stets ein Netzwerkvorgang, auch bei einem System, an dem ein lokaler Drucker (z.B. an einer parallelen Schnittstelle) angeschlossen ist, wird das Netzwerk in Form des lokalen Loopback-Interfaces genutzt.

In diesem Unterkapitel wird zunächst auf die Installation/Konfiguration eines LPD-Drucksystem als Print-Server vorgestellt. Bei der Konfiguration als Server, werden spezielle Dinge der Konfigurationsdateien oder der Druckfilter nicht berücksichtigen. Hierfür gibt es bei  fast jeder Distribution spezielle Tools zur Konfiguration. Den Abschluss diese Unterkapitels bildet eine kleine Einführung zur Handhabung von weiteren Programme die zu einem LPD-Drucksystem gehören.

Installation/Konfiguration

In den gängigsten Linux-Distributionen, wie auch unter Debian, ist LPD standardmäßig installiert und aktiviert. Nötigenfalls muss der Dämon gestartet oder nachinstalliert werden. Das Nachinstallieren unter Debian kann mit mit: 'apt-get install lpr' erfolgen. Für den Start und Stop des Dämons ist das Script: '/etc/init.d/lpd' zuständig.

Für die Konfiguration des LDP-Drucksystems ist maßgeblich die Datei: 'printcap' zuständig, die sich im Verzeichnis: '/etc' befinden. Nach der Basis-Installation sieht die Datei: 'printcap' defaultmäßig wie folgt aus:

Datei: /etc/printcap

# /etc/printcap: printer capability database. See printcap(5).
# You can use the filter entries df, tf, cf, gf etc. for
# your own filters. See /etc/filter.ps, /etc/filter.pcl and
# the printcap(5) manual page for further details.

lp|Generic dot-matrix printer entry:\
        :lp=/dev/lp0:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :sh:

# rlp|Remote printer entry:\
#         :lp=:\
#         :rm=remotehost:\
#         :rp=remoteprinter:\
#         :sd=/var/spool/lpd/remote:\
#         :mx#0:\
#         :sh:

In der printcap-Datei sind zwei Druckerwarteschlangen definiert (gelbe Markierungen), wobei die zweite auskommentiert ist. Die erste Warteschlange: 'lp' bezieht sich auf  einen lokal angeschlossenen Drucker, an der ersten parallelen Schnittstelle (grüne Markierung). Die zweite Warteschlange kann, bei Bedarf für ein remote-Druck auf ein entferntes System, auskommentiert werden. Anstatt 'remotehost' ist hier die IP oder der Name des entfernten Drucksystems anzugeben und anstatt 'remoteprinter' ist der Name der Druckerwarteschlange auf den entfernten Drucksystem anzugeben (blaue Markierungen).
Weitere Einzelheiten der printcap-Datei können dem Manualseiten oder im Internet entnommen werden.

Prinzipiell ist, sofern ein Postscript-Drucker angeschlossen ist, dass Drucken mit dieser Konfiguration schon möglich. Sollte kein Postscript-Drucker vorhanden sein, kann mittels Filter und einen Postscript-Converter gearbeitet werden. Als Filter kommt 'Apsfilter' in frage. Als Übersetzer nach Postscript kann 'GhostScript' eingesetzt werden. 'Apsfilter' erkennt, wenn das Format eines Dokuments nicht Postscript ist und wandelt das Dokument mit Hilfe von 'Ghostscript' gegebenenfalls um. Mit 'Apsfilter und 'GhostScript ist es so möglich, ein breites Spektrum von handelsüblichen Druckern unter Unix/Linux einzusetzen.

Unter Debian kann 'Apsfilter' und 'Ghostscript' wie mittels: 'apt-get install apsfilter gs' installiert werden. Anschließend muss 'Apsfilter' durch Aufruf von: 'apsfilterconfig' auf der Konsole konfiguriert werden. Die Konfiguration von 'Apsfilter' läuft komplett textbasiert ab:

Ausgehend vom: 'MAIN MENU', welches nach einigen Fragen/Bestätigungen erscheint, sollten die Punkte: '(1)' bis '(7)' konfiguriert werden. Nachdem die Konfiguration der Filter abgeschlossen ist, sollte zunächst mit: '(T)' ein Testausdruck gestartet werden; gelingt dieser, kann mit: '(I)' die Konfiguration gespeichert werden. Nach dem Speichern, wird die Datei: 'printcap' um die neue Warteschlange (queue) erweitert:

Auszug aus Datei: /etc/printcap (Erweiterung nach 'apsfilterconf')

# APS1_BEGIN:printer1
# - don't delete start label for apsfilter printer1
# - no other printer defines between BEGIN and END LABEL
aps1|cdjcolor;r=300x300;q=medium;c=full;p=a4;m=auto:\
    :lp=/dev/lp0:\
    :if=/etc/apsfilter/basedir/bin/apsfilter:\
    :sd=/var/spool/lpd/aps1:\
    :lf=/var/spool/lpd/aps1/log:\
    :af=/var/spool/lpd/aps1/acct:\
    :mx#0:\
    :sh:
# APS1_END - don't delete this

Auf der Warteschlange: 'aps1', in diesem Beispiel ein HP-DeskJet-Drucker, können nun Formate wie: PDF, ASCII, Postscript, etc. ausgedruckt werden.

Zusatzprogramme des LDP-Drucksystems

Zu den LDP-Drucksystem  gehört nicht nur der eigentliche Dämon: 'lpd' und die Konfigurationsdateien, sondern noch einige Zusatzprogramme deren Funktion und Bedeutung vorstellen wird. Diese Zusatzprogramme dienen dazu, den Dämon: 'lpd' zu steuern und zu kontrollieren.

  • lpr
    das Kommando: 'lpr' erteilen eines Druck-Auftrags und gibt es an den LPD weiter, der es dann ausdruckt. Um z.B. eine Datei: 'test.txt' auf der Warteschlange: 'lp' im ASCII-Text ausgegeben ist folgendes auf der Kommandoebene einzugeben:
        lpr -Plp test.txt

  • lpq
    Mit dem Kommando: 'lpc' kann die Warteschlange des LPD ausgegeben werden. Es werden alle noch anstehenden Druckauftrage der Reihe nach ihres Ausdruckens angezeigt.

  • lprm
    Mit 'lprm' können Druckaufträge aus der Warteschlange entfernt werden. Um z.B. den zweiten Eintag aus der Warteschlange zu löschen ist folgendes einzugeben:
        lprm  -Plp 2
    Um alle Druckaufträge aus der Warteschlange zu löschen, ist das Kommando wie folgt anzuwenden:
        lprm -
    Wird das Kommando von einen Benutzer angewandt so werden alle Druckaufträge des Benutzers gelöscht. Wird das Kommando vom Benutzer: 'root' abgegeben, so wird die gesamte Warteschlange gelöscht.

  • lpc
    Zur Administration gibt es noch das Kommando: 'lpc' welches über einige Subkommandos verfügt. Die einzelnen Subkommandos können mit:
        lpc help
    ausgegeben werden.

Mehr Details zur Anwendung der Zusatzprogramme und deren Optionen sind aus den entsprechenden Manual-Seiten zu entnehmen.

Anmerkungen

Treten Problemen mit dem Ansprechen des Druckers auf, sollte zunächst versucht werden den Drucker ohne Drucksystem anzusprechen. Dazu eignet sich folgendes Kommando:

echo -en "hallo drucker\f" > /dev/lp0

Der Drucker sollte sich bei diesem Bsp. an der ersten parallelen Schnittstelle befinden. Bei anderen Anschlussvarianten ist das entsprechende Gerät (Device) anzugeben.

Ein LPD-Drucksystem arbeitet auf dem Port: '515'; soll über eine Firewall hinweg gedruckt werden, so ist diese zu berücksichtigen.

Weitere Infos

Linux Drucker HOWTO http://www.linuxhaven.de/dlhp/HOWTO/DE-Drucker-HOWTO.html
LPD and the LinuxPrinting.org Database http://www.linuxprinting.org/lpd-doc.html
RFC: 1179 http://www.faqs.org/rfcs/rfc1179.html
Manualseiten zu: printcap man printcap
Homepage: Apsfilter http://www.apsfilter.org/
Frequently Asked Questions for Apsfilter http://www.apsfilter.org/docs/faq/
Ghostscript http://www.cs.wisc.edu/~ghost/index.html

Home ] Nach oben ] [ LPD-Drucksystem ] CUPS ] Linux-Clients ] Windows-Clients ] PDF-Printer ]

letzte Änderung: 25. März 2005

 

Copyright © 2004 Norbert Eusterholz