Drucker unter Linux mit CUPS
 

Das heutige gängige Drucksystem unter Linux nennt sich CUPS (Common Unix Printing System) und ist -ein Treiber für den Drucker vorrausgesetzt- recht einfach zu administrieren. Ob es einen Treiber unter Linux für den eigenen Drucker gibt, muß jeder selbst rausfinden. Ist einer vorhanden, ist die Installation auch recht einfach, da man lediglich die erforderlichen Pakete installieren muß. Zum Beispiel mußte ich für meinen Epson D120 Tintenstrahldrucker lediglich die Gutenprint-Pakete installieren und schon war der Drucker einsatzbereit.
Um einen Drucker unter CUPS zu verwalten gibt es ein webbasiertes Administrationstool, welches in einem Browser mit dem einfachen Befehl localhost:631 aufgerufen wird. Wird der angeschlossene Drucker unterstützt, kann man ihn mit diesem Tool bequem einrichten. Auf die Konfiguration mit dem Webtool gehe ich hier nicht näher ein, da eine Anleitung in das Tool integriert ist. Natürlich müssen vorher die entsprechenden cups-Pakete und die Treiber-Pakete für den Drucker installiert werden.


Den Drucker für Windows-Rechner im Netzwerk freigeben

Leider habe ich es nicht geschafft auf einen mit Samba freigegebenen Drucker von einem Windows-PC aus zuzugreifen. Alle Tests den Drucker unter Samba zum laufen zu bekommen, scheiterten an fehlenden Rechten in Samba. Besser ist daher das IPP-Protokoll, welches Windows ab Windows2000 von Haus aus unterstützt. Lediglich für ältere Windows-Varianten (95,98,ME) mußte ein Treiber installiert werden. Was auch für das IPP-Protokoll spricht, ist die einfache Konfiguration, da sämtliche Anleitungen im Netz für Samba wesentlich komplizierter waren und -wie gesagt- bei mir leider nicht funktionierten.

Vorbedingungen:
1. Es ist ein Drucker unter Cups eingerichtet und er funktioniert.
2. Das Netzwerk ist korrekt eingerichtet (mit statischer I.P.-Adresse)

Standardmäßig ist der Drucker als Share deaktiviert, also nur local zugänglich. Um ihn für das Netzwerk freizugeben, benutzt man den Befehl cupsctl, welcher die zentrale Konfigurationsdatei /etc/cups/cupsd.conf editiert und die erforderlichen Einträge tätigt.
cupsctl ohne Angabe von Argumenten gibt die momentane Konfiguration wieder:
# cupsctl
SystemGroup=lpadmin
Printcap=/etc/cups/printcap
DefaultAuthType=Basic
_debug_logging=0
_remote_admin=1
_remote_any=1
_remote_printers=1
_share_printers=0
_user_cancel_any=0

Um den Drucker als Share freizugeben gibt man
# cupsctl --share-printers
ein.
Eine erneute Ausgabe von cupsctl zeigt:
# cupsctl
SystemGroup=lpadmin
Printcap=/etc/cups/printcap
DefaultAuthType=Basic
_debug_logging=0
_remote_admin=1
_remote_any=1
_remote_printers=1
_share_printers=1
_user_cancel_any=0

Um ohne Probleme im Raw-Modus drucken zu können, sind noch zwei weitere Einstellungen in zwei Konfigurationsdateien von cups erforderlich. Man öffnet die Dateien /etc/cups/mime.convs und /etc/cups/mime.types und entfernt jeweils am Ende der Dateien das Raute-Zeichen (Kommentar-Zeichen) vor den Einträgen
application/octet-stream application/vnd.cups-raw 0 -
und
application/octet-stream

Anschließend muß man noch den Windows-Client konfigurieren.
Dazu installiert man einen neuen Netzwerkdrucker und gibt als Pfad an:
http://Name-des-Servers:631/printers/Druckername
Als Treiber muß man einen Pfad zu Windows-Treibern angeben, da unter Linux keine für Windows zur Verfügung stehen.

Bei Problemen:
Sollte es dennoch zu Probleme kommen, hilft folgender Vorgang. Mittels des Web-Administrationstools von cups, richtet man eine sogenannte Klasse ein. Der Name der Klasse kann frei gewählt werden. Bei der anschließenden Installation des Druckers unter Windows gibt man dann den Pfad zur Klasse an:
http://Name-des-Servers:631/classes/Class-Name

Probleme mit Netzwerkdruckern in einem Linux-Netzwerk

Normalerweise läuft ein Zugriff auf Drucker in einem Linux-Netzwerk über cups "out of the box" da cups einen Browser-Dienst besitzt, welcher nach verfügbaren Druckern scannt und diese einbindet. Trotzdem kann es zu Problemen kommen, wenn cups bei der Einrichtung die falsche PPD-Datei kopiert. Dadurch ist der Drucker zwar vorhanden, aber nicht ansprechbar.

Als Vorbedingung daß der Drucker überhaupt von einem entfernten Rechner eingebunden wird, muß in der cups-Konfiguration unter localhost:631 das Häckchen bei "Mit diesem System verbundene Drucker freigeben" gesetzt sein. Mittels
# lpinfo -v
kann man sich die verfügbaren Drucker auflisten lassen. Möchte man das Häckchen per Befehl setzen, geht das mit
# lpadmin -p Druckername -o printer-is-shared=true
Und mit
# lpstat -a
kann man sich anzeigen lassen, ob der Drucker anfragen akzeptiert.
Um nun das Problem mit der falschen PPD-Datei zu lösen, geht man folgendermaßen vor:
Man löscht den Drucker unter der CUPS-Konfiguration in localhost:631 und started cups-browsed mittels
# /etc/init.d/cups-browsed restart
neu.


Druckerwartung - Epson Status Monitor

Wer bisher unter Windows mit Epson Druckern zu tun hatte, kennt den sogenannten Epson Status Monitor, welcher nicht nur den Tintenstand anzeigt, sondern auch einen Düsentest oder eine Düsenreinigung initiieren kann. Unter Linux gibt es zwei Tools, welche den Epson Status Monitor ersetzen können und z.B. Informationen über den Tintenstand bieten, sowie Ausdruck eines Düsentests und Ausführen einer Druckkopfreinigung. Das erste Tool heißt escputil und ist ein Kommandozeilen-Programm. Folgende Befehle sind Ausführbar:
# escputil -d -r /dev/usb/lp0
-d = Identifiziert den Drucker mit Namen.
-r = gibt das raw-Device (hier /dev/usb/lp0) an.
# escputil -s -r /dev/usb/lp0
-s = gibt den Status des Druckers wieder.
# escputil -i -r /dev/usb/lp0
-i = gibt den Tintenstand (ink)-Status wieder.
# escputil -c -r /dev/usb/lp0
-c = (clean) stößt die Druckkopfreinigung an.
# escputil -n -r /dev/usb/lp0
-n = druckt die Düsentestseite.
# escputil -M -r /dev/usb/lp0
Zeigt eine Liste aller unterstützten Drucker.
Zusätzlich kann noch die Option -q angegeben werden.
-q = (quiet) unterdrückt das Banner.

Das zweite Tool heißt mtink. Dieses Tool gibt es in zwei Varianten: mtink und ttink. ttink ist für die Kommandozeile und mtink ist die grafische Oberfläche. Leider werden bei diesem Tool die neuesten Drucker noch nicht unterstützt, so konnte ich es leider für meinen Epson D120 nicht testen. Ansonsten ist die Bedienung einfach. mtink abstarten, Anschluß und Drucker auswählen, fertig.