24 Druckerbetrieb #
SUSE® Linux Enterprise Server unterstützt zahlreiche Druckermodelle (auch entfernte Netzwerkdrucker). Drucker können manuell oder mit YaST konfiguriert werden. Anleitungen zur Konfiguration finden Sie im Kapitel 34, Einrichten eines Druckers. Grafische Dienstprogramme und Dienstprogramme an der Befehlszeile sind verfügbar, um Druckaufträge zu starten und zu verwalten. Wenn Ihr Drucker nicht wie erwartet verwendet werden kann, lesen Sie die Informationen unter Abschnitt 24.8, „Fehlersuche“.
Das Standarddrucksystem in SUSE Linux Enterprise Server ist CUPS (Common Unix Printing System).
Drucker können nach Schnittstelle, z. B. USB oder Netzwerk, und nach Druckersprache unterschieden werden. Stellen Sie beim Kauf eines Druckers sicher, dass dieser über eine von der Hardware unterstützte Schnittstelle (USB, Ethernet oder WLAN) und über eine geeignete Druckersprache verfügt. Drucker können basierend auf den folgenden drei Klassen von Druckersprachen kategorisiert werden:
- PostScript-Drucker
PostScript ist die Druckersprache, in der die meisten Druckaufträge unter Linux und Unix vom internen Drucksystem generiert und verarbeitet werden. Wenn PostScript-Dokumente direkt vom Drucker verarbeitet und im Drucksystem nicht in weiteren Phasen konvertiert werden müssen, reduziert sich die Anzahl der möglichen Fehlerquellen.
Derzeit wird PostScript von PDF als Standardformat für Druckaufträge abgelöst. PostScript+PDF-Drucker, die PDF-Dateien (neben PostScript-Dateien) direkt drucken können, sind bereits am Markt erhältlich. Bei herkömmlichen PostScript-Druckern müssen PDF-Dateien während des Druck-Workflows in PostScript konvertiert werden.
- Standarddrucker (Sprachen wie PCL und ESC/P)
Bei den bekannten Druckersprachen kann das Drucksystem PostScript-Druckaufträge mit Ghostscript in die entsprechende Druckersprache konvertieren. Diese Verarbeitungsphase wird als "Interpretieren" bezeichnet. Die gängigsten Sprachen sind PCL (die auf HP-Druckern und ihren Klonen zum Einsatz kommt) und ESC/P (die bei Epson-Druckern verwendet wird). Diese Druckersprachen werden in der Regel von Linux unterstützt und liefern ein adäquates Druckergebnis. Linux ist unter Umständen nicht in der Lage, spezielle Druckerfunktionen anzusprechen. Mit Ausnahme von HP und Epson gibt es derzeit keinen Druckerhersteller, der Linux-Treiber entwickeln und sie den Linux-Distributoren unter einer Open-Source-Lizenz zur Verfügung stellen würde.
- Proprietäre Drucker (auch GDI-Drucker genannt)
Diese Drucker unterstützen keine der gängigen Druckersprachen. Sie verwenden eigene, undokumentierte Druckersprachen, die geändert werden können, wenn neue Versionen eines Modells auf den Markt gebracht werden. Für diese Drucker sind in der Regel nur Windows-Treiber verfügbar. Weitere Informationen zu diesem Thema finden Sie unter dem Stichwort Abschnitt 24.8.1, „Drucker ohne Unterstützung für eine Standard-Druckersprache“.
Vor dem Kauf eines neuen Druckers sollten Sie anhand der folgenden Quellen prüfen, wie gut der Drucker, den Sie zu kaufen beabsichtigen, unterstützt wird:
- https://www.openprinting.org/printers
Die OpenPrinting-Homepage mit der Druckerdatenbank. In der Online-Datenbank wird der neueste Linux-Supportstatus angezeigt. Eine Linux-Distribution kann jedoch immer nur die zur Produktionszeit verfügbaren Treiber enthalten. Demnach ist es möglich, dass ein Drucker, der aktuell als „vollständig unterstützt“ eingestuft wird, diesen Status bei der Veröffentlichung der neuesten SUSE Linux Enterprise Server-Version nicht aufgewiesen hat. Die Datenbank gibt daher nicht notwendigerweise den richtigen Status, sondern nur eine Annäherung an diesen an.
- https://pages.cs.wisc.edu/~ghost/
Die Ghostscript-Website
/usr/share/doc/packages/ghostscript/catalog.devices
Liste inbegriffener Ghostscript-Treiber.
24.1 Der CUPS-Workflow #
Der Benutzer erstellt einen Druckauftrag. Der Druckauftrag besteht aus den zu druckenden Daten plus Informationen für den Spooler. Hierzu gehören der Name des Druckers oder der Druckerwarteschlange sowie (optional) Angaben für den Filter, z. B. druckerspezifische Optionen.
Mindestens eine zugeordnete Druckerwarteschlange ist für jeden Drucker vorhanden. Der Spooler hält den Druckauftrag in der Warteschlange, bis der gewünschte Drucker bereit ist, Daten zu empfangen. Wenn der Drucker druckbereit ist, sendet der Spooler die Daten über den Filter und das Backend an den Drucker.
Der Filter konvertiert die von der Druckanwendung generierten Daten (gewöhnlich PostScript oder PDF, aber auch ASCII, JPEG usw.) in die druckerspezifischen Daten (PostScript, PCL, ESC/P usw). Die Funktionen des Druckers sind in den PPD-Dateien beschrieben. Eine PPD-Datei enthält druckspezifische Optionen mit den Parametern, die erforderlich sind, um die Optionen auf dem Drucker zu aktivieren. Das Filtersystem stellt sicher, dass die vom Benutzer ausgewählten Optionen aktiviert werden.
Wenn Sie einen PostScript-Drucker verwenden, konvertiert das Filtersystem die Daten in druckerspezifische PostScript-Daten. Hierzu ist kein Druckertreiber erforderlich. Wenn Sie einen Nicht-PostScript-Drucker verwenden, konvertiert das Filtersystem die Daten in druckerspezifische Daten. Hierzu ist ein für den Drucker geeigneter Druckertreiber erforderlich. Das Back-End empfängt die druckerspezifischen Daten vom Filter und leitet sie an den Drucker weiter.
24.2 Methoden und Protokolle zum Anschließen von Druckern #
Es gibt mehrere Möglichkeiten, einen Drucker an das System anzuschließen. Die Konfiguration von CUPS unterscheidet nicht zwischen einem lokalen Drucker und einem Drucker, der über das Netzwerk an das System angeschlossen ist. Weitere Informationen zum Anschließen von Druckern finden Sie im Beitrag CUPS in aller Kürze unter https://en.opensuse.org/SDB:CUPS_in_a_Nutshell.
IBM Z Von der z/VM bereitgestellte Drucker und ähnliche Geräte, die lokal an IBM Z-Mainframes angeschlossen werden, werden von CUPS nicht unterstützt. Auf diesen Plattformen ist das Drucken nur über das Netzwerk möglich. Die Kabel für Netzwerkdrucker müssen gemäß den Anleitungen des Druckerherstellers angeschlossen werden.
Vergessen Sie beim Anschließen des Druckers an den Computer nicht, dass während des Betriebs nur USB-Geräte angeschlossen werden können. Um Ihr System oder Ihren Drucker vor Schaden zu bewahren, fahren Sie das System herunter, wenn Sie Verbindungen ändern müssen, die keine USB-Verbindungen sind.
24.3 Installation der Software #
PPD (PostScript Printer Description, PostScript-Druckerbeschreibung) ist die Computersprache, die die Eigenschaften, z. B. die Auflösung und Optionen wie die Verfügbarkeit einer Duplexeinheit, beschreibt. Diese Beschreibungen sind für die Verwendung der Druckeroptionen in CUPS erforderlich. Ohne eine PPD-Datei würden die Druckdaten in einem „rohen“ Zustand an den Drucker weitergeleitet werden, was nicht erwünscht ist.
Um einen PostScript-Drucker zu konfigurieren, sollten Sie sich zunächst eine geeignete PPD-Datei beschaffen. Die Pakete manufacturer-PPDs
und OpenPrintingPPDs-postscript
enthalten zahlreiche PPD-Dateien. Weitere Informationen hierzu finden Sie unter Abschnitt 24.7.3, „PPD-Dateien in mehreren Paketen“ und Abschnitt 24.8.2, „Für einen PostScript-Drucker ist keine geeignete PPD-Datei verfügbar“.
Neue PPD-Dateien können im Verzeichnis /usr/share/cups/model/
gespeichert oder dem Drucksystem mit YaST hinzugefügt werden (siehe Abschnitt 34.1.1, „Hinzufügen von Treibern mit YaST“). Die PPD-Dateien lassen sich anschließend während der Druckereinrichtung auswählen.
Seien Sie vorsichtig, wenn Sie gleich ein ganzes Software-Paket eines Druckerherstellers installieren sollen. Durch eine solche Installation entfällt die Unterstützung durch SUSE Linux Enterprise Server. Außerdem funktionieren die Druckerbefehle unter Umständen anders und das System kann möglicherweise keine Geräte anderer Hersteller mehr adressieren. Aus diesem Grund wird das Installieren von Herstellersoftware nicht empfohlen.
24.4 Netzwerkdrucker #
Ein Netzwerkdrucker kann mehrere Protokolle unterstützen. Die meisten unterstützten Protokolle sind standardisiert, und doch versuchen bestimmte Hersteller, diesen Standard abzuändern. Die Hersteller stellen dann nur noch Treiber für wenige Betriebssysteme zur Verfügung und Linux-Treiber werden selten bereitgestellt. Gegenwärtig können Sie nicht davon ausgehen, dass alle Protokolle problemlos mit Linux funktionieren. Um dennoch eine funktionale Konfiguration zu erhalten, müssen Sie daher möglicherweise mit den verschiedenen Optionen experimentieren.
CUPS unterstützt die Protokolle und socket
, LPD
, IPP
und smb
.
- socket
Socket bezeichnet eine Verbindung, über die die einfachen Druckdaten direkt an einen TCP-Socket gesendet werden. Die am häufigsten verwendeten Socket-Ports sind
9100
oder35
. Die Syntax der Geräte-URI (Uniform Resource Identifier) ist: socket://IP.OF.THE.PRINTER:PORT, beispielsweisesocket://192.168.2.202:9100/
.- LPD (Line Printer Daemon)
Das LDP-Protokoll wird in RFC 1179 beschrieben. Bei diesem Protokoll werden bestimmte auftragsspezifische Daten (z. B. die ID der Druckerwarteschlange) vor den eigentlichen Druckdaten gesendet. Beim Konfigurieren des LDP-Protokolls muss daher eine Druckerwarteschlange angegeben werden. Die Implementierungen diverser Druckerhersteller sind flexibel genug, um beliebige Namen als Druckerwarteschlange zu akzeptieren. Der zu verwendende Name müsste ggf. im Druckerhandbuch angegeben sein. Es werden häufig Bezeichnungen wie LPT, LPT1, LP1 o. ä. verwendet. Die Portnummer für einen LPD-Dienst lautet
515
. Ein Beispiel für einen Gerät-URI istlpd://192.168.2.202/LPT1
.- IPP (Internet Printing Protocol)
IPP basiert auf dem HTTP-Protokoll. Mit IPP können mehr druckauftragsbezogene Daten übertragen werden als mit den anderen Protokollen. CUPS verwendet IPP für die interne Datenübertragung. Um IPP ordnungsgemäß konfigurieren zu können, ist der Name der Druckerwarteschlange erforderlich. Die Portnummer für IPP lautet
631
. Beispiele für Geräte-URIs sindipp://192.168.2.202/ps
undipp://192.168.2.202/printers/ps
.- SMB (Windows-Freigabe)
CUPS unterstützt auch das Drucken auf freigegebenen Druckern unter Windows. Das für diesen Zweck verwendete Protokoll ist SMB. SMB verwendet die Portnummern
137
,138
und139
. Beispiele für Geräte-URIs sindsmb://user:password@workgroup/smb.example.com/printer
,smb://user:password@smb.example.com/printer
undsmb://smb.example.com/printer
.
Das vom Drucker unterstützte Protokoll muss vor der Konfiguration ermittelt werden. Wenn der Hersteller die erforderlichen Informationen nicht zur Verfügung stellt, können Sie das Protokoll mit dem Befehl nmap
ermitteln, das Bestandteil des Pakets nmap
ist. nmap
überprüft einen Host auf offene Ports. Beispiel:
>
nmap -p 35,137-139,515,631,9100-10000 IP.OF.THE.PRINTER
24.5 Konfigurieren von CUPS mit Befehlszeilenwerkzeugen #
CUPS kann mit Befehlszeilenwerkzeugen wie lpinfo
, lpadmin
und lpoptions
konfiguriert werden. Sie benötigen einen Geräte-URI, der aus einem Back-End (z. B. USB) und Parametern besteht. Zum Bestimmen von gültigen Geräte- URIs auf Ihrem System verwenden Sie den Befehl lpinfo -v | grep ":/"
:
>
sudo
lpinfo -v | grep ":/" direct usb://ACME/FunPrinter%20XL network socket://192.168.2.253
Mit lpadmin
kann der CUPS-Serveradministrator Druckerwarteschlangen hinzufügen, entfernen und verwalten. Verwenden Sie die folgende Syntax, um eine Druckerwarteschlange hinzuzufügen:
>
sudo
lpadmin -p QUEUE -v DEVICE-URI -P PPD-FILE -E
Das Gerät (-v
) ist anschließend als QUEUE (-p
) verfügbar und verwendet die angegebene PPD-Datei (-P
). Das bedeutet, dass Sie die PPD-Datei und das Geräte-URI kennen müssen, wenn Sie den Drucker manuell konfigurieren möchten.
Verwenden Sie nicht -E
als erste Option. Für alle CUPS-Befehle legt die Option -E
als erstes Argument die Verwendung einer verschlüsselten Verbindung fest. Zur Aktivierung des Druckers muss die Option -E
wie im folgenden Beispiel dargestellt verwendet werden:
>
sudo
lpadmin -p ps -v usb://ACME/FunPrinter%20XL -P \ /usr/share/cups/model/Postscript.ppd.gz -E
Im folgenden Beispiel wird ein Netzwerkdrucker konfiguriert:
>
sudo
lpadmin -p ps -v socket://192.168.2.202:9100/ -P \ /usr/share/cups/model/Postscript-level1.ppd.gz -E
Weitere Optionen von lpadmin
finden Sie auf der man-Seite von lpadmin(8)
.
Während der Druckerkonfiguration werden bestimmte Optionen standardmäßig gesetzt. Diese Optionen können (je nach Druckwerkzeug) für jeden Druckauftrag geändert werden. Es ist auch möglich, diese Standardoptionen mit YaST zu ändern. Legen Sie die Standardoptionen mithilfe der Befehlszeilenwerkzeuge wie folgt fest:
Zeigen Sie zunächst alle Optionen an:
>
sudo
lpoptions -p QUEUE -lBeispiel:
Resolution/Output Resolution: 150dpi *300dpi 600dpi
Die aktivierte Standardoption wird durch einen vorangestellten Stern (
*
) gekennzeichnet.Ändern Sie die Option mit
lpadmin
:>
sudo
lpadmin -p QUEUE -o Resolution=600dpiPrüfen Sie die neue Einstellung:
>
sudo
lpoptions -p QUEUE -l Resolution/Output Resolution: 150dpi 300dpi *600dpi
Wenn ein normaler Benutzer lpoptions
ausführt, werden die Einstellungen in ~/.cups/lpoptions
geschrieben. Jedoch werden die root
-Einstellungen in /etc/cups/lpoptions
geschrieben.
24.6 Drucken über die Befehlszeile #
Um von der Befehlszeile aus zu drucken, geben Sie lp -d
QUEUENAME FILENAME ein und ersetzen Sie die entsprechenden Namen durch QUEUENAME und FILENAME.
Verschiedene Anwendungen erfordern für den Druckvorgang den Befehl lp
. Geben Sie in diesem Fall den richtigen Befehl in das Druckdialogfeld der Anwendung ohne Angabe von FILENAME ein, z. B. lp -d
QUEUENAME.
24.7 Besondere Funktionen in SUSE Linux Enterprise Server #
Mehrere CUPS-Funktionen wurden für SUSE Linux Enterprise Server angepasst. Die wichtigsten Änderungen werden im Folgenden beschrieben.
24.7.1 CUPS und Firewall #
Nach einer Standardinstallation von SUSE Linux Enterprise Server ist firewalld
aktiv und die Netzwerkschnittstellen werden so konfiguriert, dass sie sich in der public
-Zone befinden, die eingehenden Datenverkehr blockiert.
Wenn firewalld
aktiv ist, müssen Sie sie möglicherweise konfigurieren, damit Clients die Netzwerkdrucker durchsuchen können. Aktivieren Sie dazu mdns
und ipp
über die interne Netzwerkzone. Die öffentliche Zone sollte niemals Druckerwarteschlangen offenlegen.
(Weitere Informationen zur firewalld
-Konfiguration finden Sie im Section 23.4, “firewalld
” und unter https://en.opensuse.org/SDB:CUPS_and_SANE_Firewall_settings.)
24.7.1.1 CUPS-Client #
Normalerweise wird der CUPS-Client auf einem normalen Arbeitsplatzrechner ausgeführt, die sich in einer verbürgten Netzwerkumgebung hinter einer Firewall befindet. In diesem Fall empfiehlt es sich, die Netzwerkschnittstelle in der Internal
Zone
zu konfigurieren, damit der Arbeitsplatzrechner innerhalb des Netzwerks erreichbar ist.
24.7.1.2 CUPS-Server #
Wenn der CUPS-Server Teil der durch eine Firewall geschützten verbürgten Netzwerkumgebung ist, sollte die Netzwerkschnittstelle in der Internal Zone
der Firewall konfiguriert sein. Es ist nicht empfehlenswert, einen CUPS-Server in einer nicht verbürgten Netzwerkumgebung einzurichten, es sei denn, Sie sorgen dafür, dass er durch besondere Firewall-Regeln und Sicherheitseinstellungen in der CUPS-Konfiguration geschützt wird.
24.7.2 Durchsuchen nach Netzwerkdruckern #
CUPS-Server geben regelmäßig die Verfügbarkeit und die Statusinformationen von freigegebenen Druckern im Netzwerk bekannt. Die Clients können auf diese Informationen zugreifen und beispielsweise in Druckdialogfeldern eine Liste der verfügbaren Drucker anzeigen. Dies wird als „Browsing“ (Durchsuchen) bezeichnet.
Die CUPS-Server geben ihre Druckerwarteschlangen entweder über das herkömmliche CUPS-Browsing-Protokoll oder über Bonjour/DND-SD im Netzwerk bekannt. Um Netzwerkdruckerwarteschlangen zu aktivieren, muss der Dienst cups-browsed
auf allen Clients ausgeführt werden, die über CUPS-Server drucken. cups-browsed
wird standardmäßig nicht gestartet. Zum Starten für die aktuelle Sitzung führen Sie den Befehl sudo systemctl
start cups-browsed
aus. Damit der Dienst nach dem Booten automatisch gestartet wird, aktivieren Sie ihn mit dem Befehl sudo systemctl enable
cups-browsed
auf allen Clients.
Falls das Durchsuchen nach dem Starten von cups-browsed
nicht funktioniert, geben die CUPS-Server die Netzwerkdrucker-Warteschlangen über Bonjour/DNS-SD bekannt. In diesem Fall müssen Sie zusätzlich das Paket avahi
und den zugehörigen Dienst mit sudo systemctl start avahi-daemon
auf allen Clients starten.
In Abschnitt 24.7.1, „CUPS und Firewall“ finden Sie Informationen, wie das Durchsuchen von Druckern über firewalld
zugelassen wird.
24.7.3 PPD-Dateien in mehreren Paketen #
Die YaST-Druckerkonfiguration richtet die Warteschlangen für CUPS auf dem System mit den in /usr/share/cups/model
installierten PPD-Dateien ein. Um die geeigneten PPD-Dateien für das Druckermodell zu finden, vergleicht YaST während der Hardware-Erkennung den Hersteller und das Modell mit den Herstellern und Modellen, die in den PPD-Dateien enthalten sind. Zu diesem Zweck generiert die YaST-Druckerkonfiguration eine Datenbank mit den Hersteller- und Modelldaten, die aus den PPD-Dateien extrahiert werden.
Die Konfiguration, die nur PPD-Dateien und keine weiteren Informationsquellen verwendet, hat den Vorteil, dass die PPD-Dateien in /usr/share/cups/model
beliebig geändert werden können. Wenn Sie beispielsweise PostScript-Drucker nutzen, können die PPD-Dateien direkt in /usr/share/cups/model
kopiert werden (sofern sie nicht bereits im Paket manufacturer-PPDs
oder OpenPrintingPPDs-postscript
vorhanden sind), um eine optimale Konfiguration der Drucker zu erzielen.
Weitere PPD-Dateien erhalten Sie mit den folgenden Paketen:
gutenprint
: Gutenprint-Treiber und zugehörige PPDssplix
: Splix-Treiber und zugehörige PPDsOpenPrintingPPDs-ghostscript
: PPDs für integrierte Ghostscript-TreiberOpenPrintingPPDs-hpijs
: PPDs für den HPIJS-Treiber für Drucker, die nicht von HP stammen
24.8 Fehlersuche #
In den folgenden Abschnitten werden die am häufigsten auftretenden Probleme mit der Druckerhardware und -software sowie deren Lösungen oder Umgehung beschrieben. Unter anderem werden die Themen GDI-Drucker, PPD-Dateien und Port-Konfiguration behandelt. Darüber hinaus werden gängige Probleme mit Netzwerkdruckern, fehlerhafte Ausdrucke und die Bearbeitung der Warteschlange erläutert.
24.8.1 Drucker ohne Unterstützung für eine Standard-Druckersprache #
Diese Drucker unterstützen keine der geläufigen Druckersprachen und können nur mit proprietären Steuersequenzen adressiert werden. Daher funktionieren sie nur mit den Betriebssystemversionen, für die der Hersteller einen Treiber zur Verfügung stellt. GDI ist eine von Microsoft für Grafikgeräte entwickelte Programmierschnittstelle. In der Regel liefert der Hersteller nur Treiber für Windows, und da Windows-Treiber die GDI-Schnittstelle verwenden, werden diese Drucker auch GDI-Drucker genannt. Das eigentliche Problem ist nicht die Programmierschnittstelle, sondern die Tatsache, dass diese Drucker nur mit der proprietären Druckersprache des jeweiligen Druckermodells adressiert werden können.
Der Betrieb bestimmter GDI-Drucker kann sowohl im GDI-Modus als auch in einer der Standard-Druckersprachen ausgeführt werden. Sehen Sie im Druckerhandbuch nach, ob dies möglich ist. Bestimmte Modelle erfordern zum Umschalten eine spezielle Windows-Software. Beispielsweise kann der Windows-Druckertreiber den Drucker beim Drucken unter Windows immer wieder zurück in den GDI-Modus versetzen. Für andere GDI-Drucker sind Erweiterungsmodule für eine Standarddruckersprache erhältlich.
Verschiedene Hersteller stellen für ihre Drucker proprietäre Treiber zur Verfügung. Der Nachteil proprietärer Druckertreiber ist, dass es keine Garantie gibt, dass diese mit dem installierten Drucksystem funktionieren oder für mehrere Hardwareplattformen geeignet sind. Im Gegensatz dazu sind Drucker, die eine Standard-Druckersprache unterstützen, nicht abhängig von einer speziellen Drucksystemversion oder einer bestimmten Hardwareplattform.
Anstatt viel Zeit darauf aufzuwenden, einen herstellerspezifischen Linux-Treiber in Gang zu bringen, ist es unter Umständen kostengünstiger, einen Drucker zu erwerben, der eine Standarddruckersprache unterstützt (vorzugsweise PostScript). Dadurch wäre das Treiberproblem ein für alle Mal aus der Welt geschafft und es wäre nicht mehr erforderlich, spezielle Treibersoftware zu installieren und zu konfigurieren oder Treiber-Updates zu beschaffen, die aufgrund neuer Entwicklungen im Drucksystem benötigt würden.
24.8.2 Für einen PostScript-Drucker ist keine geeignete PPD-Datei verfügbar #
Wenn das Paket manufacturer-PPDs
oder OpenPrintingPPDs-postscript
für einen PostScript-Drucker keine geeignete PPD-Datei enthält, sollte es möglich sein, die PPD-Datei von der Treiber-CD des Druckerherstellers zu verwenden oder eine geeignete PPD-Datei von der Webseite des Druckerherstellers herunterzuladen.
Wenn die PPD-Datei als Zip-Archiv (.zip) oder als selbstextrahierendes Zip-Archiv (.exe
) zur Verfügung gestellt wird, entpacken Sie sie mit unzip
. Lesen Sie zunächst die Lizenzvereinbarung für die PPD-Datei. Prüfen Sie dann mit dem Dienstprogramm cupstestppd
, ob die PPD-Datei den Spezifikationen von „Adobe PostScript Printer Description File Format Specification, Version 4.3“ entspricht. Wenn das Dienstprogramm „FAIL“ zurückgibt, sind die Fehler in den PPD-Dateien schwerwiegend und werden größere Probleme verursachen. Die von cupstestppd
protokollierten Problempunkte müssen behoben werden. Fordern Sie beim Druckerhersteller ggf. eine geeignete PPD-Datei an.
24.8.3 Netzwerkdrucker-Verbindungen #
- Netzwerkprobleme identifizieren
Schließen Sie den Drucker direkt an den Computer an. Konfigurieren Sie den Drucker zu Testzwecken als lokalen Drucker. Wenn dies funktioniert, werden die Probleme netzwerkseitig verursacht.
- TCP/IP-Netzwerk prüfen
Das TCP/IP-Netzwerk und die Namensauflösung müssen funktionieren.
- Entfernten
lpd
prüfen Geben Sie den folgenden Befehl ein, um zu testen, ob zu
lpd
(Port515
) auf HOST eine TCP-Verbindung hergestellt werden kann:>
netcat -z HOST 515 && echo ok || echo failedWenn die Verbindung zu
lpd
nicht hergestellt werden kann, istlpd
entweder nicht aktiv oder es liegen grundlegende Netzwerkprobleme vor.Vorausgesetzt, dass
lpd
aktiv ist und der Host Abfragen akzeptiert, rufen Sie mit dem folgenden Befehl (alsroot
) einen Statusbericht für QUEUE auf dem Remote-HOST ab:#
echo -e "\004queue" \ | netcat -w 2 -p 722 HOST 515Wenn
lpd
nicht antwortet, ist er entweder nicht aktiv oder es liegen grundlegende Netzwerkprobleme vor. Wennlpd
reagiert, sollte die Antwort zeigen, warum das Drucken in derqueue
aufhost
nicht möglich ist. Wenn Sie eine Antwort erhalten wie in Beispiel 24.1, „Fehlermeldung vonlpd
“ gezeigt, wird das Problem durch den entferntenlpd
verursacht.Beispiel 24.1: Fehlermeldung vonlpd
#lpd: your host does not have line printer access lpd: queue does not exist printer: spooling disabled printer: printing disabled
- Entfernten
cupsd
prüfen Ein CUPS-Netzwerkserver kann die Warteschlangen standardmäßig alle 30 Sekunden per Broadcast über den UDP-Port
631
senden. Demzufolge kann mit dem folgenden Befehl getestet werden, ob im Netzwerk ein CUPS-Netzwerkserver mit aktivem Broadcast vorhanden ist. Stoppen Sie unbedingt Ihren lokalen CUPS-Daemon, bevor Sie den Befehl ausführen.>
netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PIDWenn ein CUPS-Netzwerkserver vorhanden ist, der Informationen über Broadcasting sendet, erscheint die Ausgabe wie in Beispiel 24.2, „Broadcast vom CUPS-Netzwerkserver“ dargestellt.
Beispiel 24.2: Broadcast vom CUPS-Netzwerkserver #ipp://192.168.2.202:631/printers/queue
IBM Z Berücksichtigen Sie, dass IBM Z-Ethernetgeräte standardmäßig keine Broadcasts empfangen.
Mit dem folgenden Befehl können Sie testen, ob mit
cupsd
(Port631
) auf HOST eine TCP-Verbindung hergestellt werden kann:>
netcat -z HOST 631 && echo ok || echo failedWenn die Verbindung zu
cupsd
nicht hergestellt werden kann, istcupsd
entweder nicht aktiv oder es liegen grundlegende Netzwerkprobleme vor. „lpstat -h
HOST -l -t“ gibt einen Statusbericht für alle Warteschlangen auf dem HOST zurück, vorausgesetzt, der jeweiligecupsd
ist aktiv und der Host akzeptiert Abfragen.Mit dem nächsten Befehl können Sie testen, ob die QUEUE auf dem HOST einen Druckauftrag akzeptiert, der aus einem einzigen CR-Zeichen (Carriage-Return) besteht. In diesem Fall sollte nichts gedruckt werden. Möglicherweise wird eine leere Seite ausgegeben.
>
echo -en "\r" \ | lp -d queue -h HOST- Fehlerbehebung für einen Netzwerkdrucker oder eine Print Server Machine
Spooler, die in einer Print Server Machine ausgeführt werden, verursachen gelegentlich Probleme, wenn sie mehrere Druckaufträge bearbeiten müssen. Da dies durch den Spooler in der Print Server Machine verursacht wird, gibt es keine Möglichkeit, dieses Problem zu beheben. Sie haben jedoch die Möglichkeit, den Spooler in der Print Server Machine zu umgehen, indem Sie den an die Print Server Machine angeschlossenen Drucker über den TCP-Socket direkt kontaktieren. Siehe Abschnitt 24.4, „Netzwerkdrucker“.
Auf diese Weise wird die Print Server Machine auf einen Konvertierer zwischen den unterschiedlichen Formen der Datenübertragung (TCP/IP-Netzwerk und lokale Druckerverbindung) reduziert. Um diese Methode verwenden zu können, müssen Sie den TCP-Port der Print Server Machine kennen. Wenn der Drucker eingeschaltet und an die Print Server Machine angeschlossen ist, kann dieser TCP-Port in der Regel mit dem Dienstprogramm
nmap
aus dem Paketnmap
ermittelt werden, wenn die Print Server Machine eine bestimmte Zeit eingeschaltet ist. Beispiel:nmap
IP-address gibt die folgende Ausgabe für eine Print Server Machine zurück:Port State Service 23/tcp open telnet 80/tcp open http 515/tcp open printer 631/tcp open cups 9100/tcp open jetdirect
Diese Ausgabe gibt an, dass der an die Print Server Machine angeschlossenen Drucker über TCP-Socket an Port
9100
angesprochen werden kann.nmap
prüft standardmäßig nur einige allgemein bekannte Ports, die in/usr/share/nmap/nmap-services
aufgeführt sind. Um alle möglichen Ports zu überprüfen, verwenden Sie den Befehlnmap -p
FROM_PORT-TO_PORT IP_ADDRESS. Weitere Informationen finden Sie auf der man-Seite zunmap
.Geben Sie einen Befehl ein wie
>
echo -en "\rHello\r\f" | netcat -w 1 IP-address port cat file | netcat -w 1 IP-address portum Zeichenketten oder Dateien direkt an den entsprechenden Port zu senden, um zu testen, ob der Drucker auf diesem Port angesprochen werden kann.
24.8.4 Fehlerhafte Ausdrucke ohne Fehlermeldung #
Für das Drucksystem ist der Druckauftrag abgeschlossen, wenn das CUPS-Back-End die Datenübertragung an den Empfänger (Drucker) abgeschlossen hat. Wenn die weitere Verarbeitung auf dem Empfänger nicht erfolgt (z. B. wenn der Drucker die druckerspezifischen Daten nicht drucken kann), wird dies vom Drucksystem nicht erkannt. Wenn der Drucker die druckerspezifischen Daten nicht drucken kann, wählen Sie eine PPD-Datei, die für den Drucker besser geeignet ist.
24.8.5 Deaktivierte Warteschlangen #
Wenn die Datenübertragung zum Empfänger auch nach mehreren Versuchen nicht erfolgreich ist, meldet das CUPS-Back-End, z. B. USB
oder socket
, dem Drucksystem (an cupsd
) einen Fehler. Das Backend bestimmt, wie viele erfolglose Versuche angemessen sind, bis die Datenübertragung als unmöglich gemeldet wird. Da weitere Versuche vergeblich wären, deaktiviert cupsd
das Drucken für die entsprechende Warteschlange. Nachdem der Systemadministrator das Problem behoben hat, muss er das Drucken mit dem Befehl cupsenable
wieder aktivieren.
24.8.6 CUPS-Browsing: Löschen von Druckaufträgen #
Wenn ein CUPS-Netzwerkserver seine Warteschlangen den Client-Hosts via Browsing bekannt macht und auf den Host-Clients ein geeigneter lokaler cupsd
aktiv ist, akzeptiert der Client-cupsd
Druckaufträge von Anwendungen und leitet sie an den cupsd
auf dem Server weiter. Wenn cupsd
auf dem Server einen Druckauftrag akzeptiert, wird diesem eine neue Auftragsnummer zugewiesen. Daher unterscheidet sich die Auftragsnummer auf dem Client-Host von der auf dem Server. Da ein Druckauftrag in der Regel sofort weitergeleitet wird, kann er mit der Auftragsnummer auf dem Client-Host nicht gelöscht werden. Dies liegt daran, dass der Client-cupsd
den Druckauftrag als abgeschlossen betrachtet, wenn dieser an den Server-cupsd
weitergeleitet wurde.
Soll der Druckauftrag auf dem Server gelöscht werden, ermitteln Sie die Auftragsnummer auf dem Server mit einem Befehl wie lpstat
-h cups.example.com -o
. Hierbei wird vorausgesetzt, dass der Server den Druckauftrag noch nicht erledigt, indem er ihn an den Drucker sendet. So löschen Sie den Druckauftrag anhand der abgerufenen Auftragsnummer auf dem Server:
>
cancel -h cups.example.com QUEUE-JOBNUMBER
24.8.7 Fehlerhafte Druckaufträge und Fehler bei der Datenübertragung #
Wenn Sie während des Druckvorgangs den Drucker oder den Computer abschalten, bleiben Druckaufträge in der Warteschlange. Der Druckvorgang wird wieder aufgenommen, sobald der Computer (bzw. der Drucker) wieder eingeschaltet wird. Fehlerhafte Druckaufträge müssen mit cancel
aus der Warteschlange entfernt werden.
Wenn ein Druckauftrag beschädigt ist oder ein Fehler bei der Datenübertragung zwischen Host und Drucker auftritt, kann der Drucker die Daten nicht ordnungsgemäß verarbeiten und es werden unzählige Blätter mit unlesbaren Zeichen bedruckt. So reparieren Sie dieses Problem:
Um den Druckvorgang zu beenden, entfernen Sie das Papier aus Tintenstrahldruckern oder öffnen Sie die Papierzufuhr bei Laserdruckern. Qualitativ hochwertige Drucker sind mit einer Taste zum Abbrechen des aktuellen Druckauftrags ausgestattet.
Der Druckauftrag befindet sich möglicherweise noch in der Warteschlange, da die Aufträge erst dann entfernt werden, wenn sie an den Drucker übertragen wurden. Geben Sie
lpstat -o
oderlpstat -h cups.example.com -o
ein, um zu prüfen, über welche Warteschlange aktuell gedruckt wird. Löschen Sie den Druckauftrag mitcancel
QUEUE-JOBNUMBER odercancel -h cups.example.com
QUEUE-JOBNUMBER.Auch wenn der Druckauftrag aus der Warteschlange gelöscht wurde, werden bestimmte Daten weiter an den Drucker gesendet. Prüfen Sie, ob ein CUPS-Backend-Prozess für die entsprechende Warteschlange ausgeführt wird und wenn ja, halten Sie ihn an.
Setzen Sie den Drucker zurück, indem Sie ihn eine Weile ausschalten. Legen Sie anschließend Papier ein und schalten Sie den Drucker wieder ein.
24.8.8 Fehlersuche für CUPS #
Suchen Sie Probleme in CUPS mithilfe des folgenden generischen Verfahrens:
Legen Sie
LogLevel debug
in/etc/cups/cupsd.conf
fest.Stoppen
cupsd
.Entfernen Sie
/var/log/cups/error_log*
, um das Durchsuchen großer Protokolldateien zu vermeiden.Starten Sie
cupsd
.Wiederholen Sie die Aktion, die zu dem Problem geführt hat.
Lesen Sie die Meldungen in
/var/log/cups/error_log*
, um die Ursache des Problems zu identifizieren.
24.8.9 Weitere Informationen #
Ausführliche Informationen zum Drucken unter SUSE Linux Enterprise Server finden Sie in der openSUSE-Supportdatenbank unter https://en.opensuse.org/Portal:Printing. Lösungen zu vielen spezifischen Problemen finden Sie in der SUSE Knowledgebase (https://www.suse.com/support/). Die relevanten Themen finden Sie am schnellsten mittels einer Textsuche nach CUPS
.