AA_print-button_123rf-6206041_AlexWhite.jpg

© Alex White, 123RF

Knopf-Druck

Das Common Unix Printing System

09.02.2011
Das Drucken einer einfachen DIN-A4-Seite erfordert mehr Aufwand, als man glaubt. Moderne Drucksysteme wie CUPS ersparen den Umgang mit komplizierten Kommandozeilentools und unübersichtlichen Steuerungsdateien.

Noch vor wenigen Jahren war Drucken für Linux-Anwender ein mühsamer Vorgang. Dienste wie LPD waren nicht nur umständlich zu installieren, sondern auch in der Bedienung alles andere als komfortabel. Mit CUPS [1] steht mittlerweile ein modernes Drucksystem zur Verfügung, das nicht nur eine Vielzahl von Geräten unterstützt, sondern sich dazu auch noch sehr einfach bedienen lässt. Kryptische Konsolenbefehle und unübersichtliche Konfigurationsdateien gehören der Vergangenheit an, denn CUPS bietet sowohl ein leicht zu benutzendes Webinterface, als auch zahlreiche grafische Tools, welche die Druckerverwaltung transparent machen. Als Anwender bekommen Sie davon zunächst gar nichts mit, denn das System integriert sich nahtlos in Gnome, KDE und andere Desktops.

So verwundert es nicht, dass die meisten Distributionen CUPS standardmäßig mitliefern. Je nach Distribution empfiehlt es sich jedoch, vor Inbetriebnahme noch zusätzliche Treiberpakete zu installieren. Unser Testsystem besteht aus einem Netbook mit der aktuellen Version von Xubuntu 10.10, auf dem wir mittels sudo apt-get install foomatic-filters-ppds foomatic-db cupsys-driver-gutenprint noch weitere Pakete einspielen. Als Drucker selbst dient ein schon etwas betagterer HP Laserjet 2300, der dank eingebauter Netzwerkkarte für alle PCs erreichbar ist. Weiterhin steht ein neuerer HP Officejet Pro 8500 zur Verfügung, den wir direkt per USB anbinden.

Druckerinstallation

Um die Funktionsweise von CUPS kennenzulernen, installieren Sie in einem ersten Schritt Ihre angeschlossenen Drucker in Gnome über System | Systemverwaltung | Drucken (Abbildung 1). Der Menüpunkt Server | Neu | Drucker öffnet einen Assistenten, der Sie Schritt für Schritt durch die Einrichtung des Geräts begleitet. Für einen HP-Netzwerkdrucker geben Sie beispielsweise unter Netzwerkdrucker | Netzwerkdrucker finden die IP-Adresse oder den Hostnamen ein, klicken auf Suchen – und der Assistent erkennt korrekt die JetDirect genannte Schnittstelle auf Port 9100. Bestätigen Sie dieses Ergebnis durch einen Klick auf Vor, werden automatisch die passenden Gerätetreiber gesucht.

Abbildung 1: Die Druckerverwaltung fungiert als grafische Schnittstelle zu CUPS.

Bei unserem Testgerät versagt die Erkennung jedoch, sodass wir die Treiberdatei manuell suchen müssen. Doch auch das gestaltet sich einfach: Über Drucker aus Datenbank auswählen finden Sie schnell das richtige Modell. Wählen Sie den als empfohlen markierten Treiber und bestätigen Sie mit Vor (Abbildung 2). Im letzten Fenster geben Sie dem Drucker einen Namen, eine Bezeichnung und füllen bei Bedarf den Standort aus. Diese Angaben zeigt CUPS später unter anderem in der Weboberfläche an, sie sollten idealerweise ohne Sonderzeichen sein. Über Anwenden richten Sie den Drucker schlussendlich ein. Drucken Sie nun eine Testseite – sofern alles korrekt funktioniert, halten Sie als Trophäe gleich eine A4-Seite mit großem Ubuntu-Logo samt Testmuster in den Händen.

Abbildung 2: Bereits im Auslieferungszustand hat CUPS zahlreiche Treiber mit an Bord.

Den Patzer bei der Erkennung des Laserjet macht CUPS bei unserem Officejet schnell wieder wett: Keine fünf Sekunden, nachdem wir das All-in-one-Gerät per USB angeschlossen haben, startet die automatische Druckererkennung (Abbildung 3) und installiert ohne weitere Rückfrage den korrekte Treiber innerhalb von einer Minute. Mit einem versuchsweise angesteckten A3-Drucker gelingt das Kunststück ebenfalls. Klappt das bei Ihrem Modell nicht, benutzen Sie wie oben beschrieben den Assistenten, in dem Sie die per USB erkannten Geräte allesamt in der linken Fensterhälfte finden.

Abbildung 3: Die automatische Erkennung am USB-Anschluss funktioniert im Test tadellos.

Auf unserem Testsystem sind nun zwei Drucker funktionsfähig installiert. Die nahezu selbsterklärende Verwaltung der Geräte erfolgt ebenfalls über System | Systemverwaltung | Drucken. Mit einem Rechtsklick auf den Druckernamen und Eigenschaften öffnen Sie die Druckerkonfiguration (Abbildung 4), in der Sie verschiedene Wartungsaufgaben vornehmen, den Drucker umbenennen, Start- und Endseiten einstellen, das Seitenformat und die Qualitätsstufe anpassen sowie die Freigabe-Einstellungen konfigurieren. Die möglichen Optionen hängen nicht zuletzt von Drucker und Treiber ab.

Abbildung 4: Am bequemsten gelingt die grafische Konfiguration.

Einer für alle

Bis hierhin gab sich alles noch recht unspektakulär. Interessant wird es erst mit der Tatsache, dass die gezeigte Druckerverwaltung nicht etwa ein eigenes Drucksystem von Gnome oder KDE ansteuert, sondern lediglich als Schnittstelle zu CUPS funktioniert. Daher speichert das System sämtliche Einstellungen zentral, wo sie unabhängig vom Anwendungsprogramm und der Desktopumgebung zur Verfügung stehen. Anders gesagt: Drucker, die Sie unter Gnome einrichten, stehen ebenso unter KDE oder XFCE zur Verfügung und umgekehrt – egal ob Sie mit Inkscape, Scribus, Gimp oder LibreOffice arbeiten.

Wer darf CUPS konfigurieren?

Weitergehende Administrationsaufgaben in CUPS darf standardmäßig nur der erste angelegte Benutzer vornehmen, der Mitglied der Gruppe lpadmin ist. Soll beispielsweise auch der Benutzer hansmuster administrativen Zugriff bekommen, fügen Sie ihn mit sudo adduser hansmuster lpadmin dieser Gruppe hinzu.

Dabei hält CUPS neben grafischen Tools auch diverse Kommandozeilenprogramme bereit. Eines davon hört auf den Namen cupsctl und dient der Konfiguration des Drucksystems. Probieren Sie es aus: Mit

$ sudo cupsctl --no-debug-logging --remote-admin --no-remote-any --remote-printers --share-printers --user-cancel-any

in der Konsole, gefolgt von einem sudo restart cups, aktivieren Sie die Freigaben im lokalen Netzwerk, stellen das allzu umfangreiche Debug-Log aus und erlauben Benutzern, jeden Druckjob selbst abzubrechen. So eingestellt, arbeitet CUPS bereits als vollständiger Printserver und spielt jetzt seine Stärken so richtig aus.

Firewall für den Netzwerkdruck öffnen

CUPS bietet seine Dienste mittels IPP auf Port 631 (TCP und UDP) an. Wenn Sie Ihre Drucker im Netzwerk freigeben, schalten Sie den Port erst in Ihrer Firewall frei. Unter Ubuntu bewerkstelligen Sie dies beispielsweise mit dem Befehl

$ sudo ufw allow from 192.168.0.0/16 to any port 631

Achten Sie dabei darauf, die Freigabe nur für das lokale Netzwerk anzulegen, denn sonst kann theoretisch jedermann aus dem Internet auf ihren Printserver zugreifen und Papier verbrauchen, oder bei Faxdruckern gar auf Ihre Kosten Telefonverbindungen aufbauen.

Vermutlich ist Ihnen schon aufgefallen, dass CUPS jeden Drucker standardmäßig so einrichtet, dass er im Netzwerk zur Verfügung steht und von jedem Benutzer angesteuert werden darf. Für einen Test starten Sie auf einem beliebigen anderen Linux-PC die Druckerverwaltung, und ohne weiteres Zutun erscheinen die beiden freigegebenen Drucker unter System | Systemverwaltung | Drucken. Fahren Sie mit der Maus über ein Drucker-Icon, informiert ein Flyout darüber, dass es sich um einen automatisch gefundenen Netzwerkdrucker handelt (Abbildung 5).

Abbildung 5: Nach kurzer Konfiguration sind die Drucker auf allen Clients verfügbar.

Doch nicht nur die Druckerverwaltung, auch alle Anwendungsprogramme können schon auf den Drucker zugreifen. So listet LibreOffice die erkannten Drucker ebenso auf wie Gimp (Abbildung 6). Das Schöne daran: Ist der Printserver einmal nicht erreichbar, tauchen auch die freigegebenen Drucker nicht auf. Geht der Drucker wieder online, sorgt CUPS dafür, dass er binnen Sekunden auch im Netz zur Verfügung steht – Sie sehen also quasi live, welche Geräte sich nutzen lassen.

Abbildung 6: Sind die Drucker erst einmal eingerichtet, greift jede Anwendung mühelos darauf zu.

Ab ins Web

Neben den grafischen Tools und dem Befehl cupsctl gibt es eine dritte Möglichkeit, auf das Drucksystem zuzugreifen: Mithilfe eines Webbrowsers gelangen Sie unter http://Rechnername:631 in die Webadministration (Abbildung 7). Über die Registerkarten am oberen Bildschirmrand navigieren Sie zu den verschiedenen Funktionen. Ein Klick auf Verwaltung zeigt Ihnen unter Grundlegende Servereinstellungen auf der rechten Seite die Optionen, die Sie kurz zuvor per cupsctl eingestellt haben. Auch hier gilt also wieder: Egal, über welches Tool Sie Einstellungen vornehmen – CUPS speichert alles zentral. Deaktivieren Sie beispielsweise via Web die Freigabe, hat dies denselben Effekt wie mit cupsctl.

Abbildung 7: Auch im Web macht CUPS eine gute Figur.

Die Weboberfläche bietet neben einem schnellen Zugriff auf Konfigurationsdateien und Protokolle auch eine Übersicht der aktuell anstehenden Aufträge sowie der verfügbaren Drucker, wobei sie auch die auf entfernten Systemen erkannten Geräte anzeigt. Die Funktionen ähneln dabei sehr den Möglichkeiten, die auch das Gnome-Druckertool bietet: Diverser Wartungsaufgaben, Freigeben oder Stoppen von Druckern und Ändern der Einstellungen. Für Administratoren bietet CUPS im Web zahlreiche Möglichkeiten, den aktuellen Druckerstatus abzufragen und den Printserver zu warten – selbst dann, wenn auf dem Server kein grafisches System installiert ist. So wurde in unserem Test hier auch korrekt angezeigt, wenn der per USB angeschlossene Drucker ausgeschaltet war.

Anwender sollten nach Möglichkeit hingegen auf die grafischen Tools ausweichen. Zwar bietet das Webinterface ebenfalls Installationsassistenten an, die Arbeit mit den Gnome- bzw. KDE-Tools geht jedoch viel einfacher von der Hand. Übrigens können Sie mit dem Gnome-Tool ebenfalls auf einen entfernen CUPS-Server zugreifen, indem Sie unter Server | Verbinden dessen Hostnamen oder IP-Adresse eingeben.

Tiefenkenntnis

CUPS kann noch weitaus mehr. Die komplette Konfiguration lagert in Form von Textdateien im Verzeichnis /etc/cups. Eingerichtete Drucker führt beispielsweise die Datei printers.conf auf, die Konfiguration für CUPS selbst findet sich in cupsd.conf. Details zu den möglichen Konfigurationsoptionen finden Sie in der Online-Hilfe oder über man cupsd.conf. Einige nützliche Beispiele: Abgearbeitete Druckdaten entfernen Sie mittels

$ sudo cupsctl AutoPurgeJobs=Yes PreserveJobFiles=No PreserveJobHistory=No

Um zu jedem Drucker den Servernamen anzuzeigen, nutzen Sie sudo cupsctl BrowseShortNames=No, und eigene SSL-Zertifikate binden Sie über folgenden Befehl ein:

$ sudo cupsctl ServerKey=/etc/ssl/private/printserver.key ServerCertificate=/etc/ssl/certs/printserver.crt

Nach allen Konfigurationsänderungen sollten Sie CUPS mittels sudo restart cups neu starten.

Besonders in größeren Netzwerken kommt häufig die Möglichkeit zum Einsatz, das Drucken nur bestimmten Benutzern zu erlauben und ein sogenanntes Accounting zu betreiben. So kann an Universitäten beispielsweise der teure Plotter nur den Professoren offenstehen, wobei CUPS die Druckkosten seitengenau erfasst. Ebenso unterstützt CUPS dank ACLs verschiedene Berechtigungsstufen. Im Beispiel der Universität könnte so der jeweilige IT-Verantwortliche alle Drucker der eigenen Fakultät konfigurieren, hätte jedoch keinen Zugriff auf Geräte in anderen Gebäuden.

Das Beste in allen Welten

CUPS lässt sich nicht nur unter Linux benutzen, sondern dient seit einiger Zeit auch als Drucksystem für Mac OS X. Allerdings zeigt das Apple-Betriebssystem standardmäßig keine Freigaben an, da eine wichtige Einstellung fehlt – diese holen Sie im Mac-Terminal mittels cupsctl BrowseRemoteProtocols=cups aber einfach nach.

Anschließend sehen Sie die von Linux freigegebenen Drucker automatisch unter Systemsteuerung | Drucken & Faxen (Abbildung 8). In unserem Test war anschließend noch ein weiterer Schritt nötig, um auch in Anwendungen auf den Drucker zuzugreifen: Wir mussten ihn durch einen Klick auf das Plus-Zeichen hinzufügen [2].

Abbildung 8: Auch unter Mac OS X lassen sich die Drucker mit einem kleinen Kniff automatisch einbinden.

Auch Microsoft-Clients unterstützt CUPS. Ältere Windows-Versionen binden Sie am besten über die Samba-Schnittstelle an, da sie das genutzte Protokoll IPP entweder gar nicht oder nur unzureichend unterstützen. Aktuellere Windows-Versionen hingegen greifen auch direkt auf CUPS zu. Mehr Informationen dazu liefert ein Artikel bei Ubuntuusers.de [3].

Das Treiberproblem

Bis hierhin hat sich CUPS wacker geschlagen. Allerdings: So problemlos wie mit unseren Testgeräten geht es nicht immer vonstatten, denn ähnlich wie bei anderer Hardware unterstützt noch lange nicht jeder Drucker das freie Betriebssystem.

Bei zu neuen Geräten, die CUPS noch nicht erkennt, kann es helfen, einfach den Treiber des Vorgängers auszuwählen, auch wenn dann mitunter einzelne Funktionen verloren gehen. Oft bietet der Hersteller glücklicherweise auch so genannte PPD-Dateien an, die CUPS sagen, wie es den Drucker ansteuern muss und die Sie einfach im letzten Schritt des grafischen Assistenten angeben.

Auf der Seite OpenPrinting.org [4] gibt es zudem eine laufend aktualisierte Zusammenstellung von Druckern und Angaben zu deren Linux-Unterstützung. Jedoch gibt es auch immer wieder Geräte, die man nur auf Umwegen überhaupt zum Laufen bekommt: Bei den sogenannten GDI-Druckern haben Sie ohne Windows oft keine Chance [5]. Es empfiehlt sich daher, vor dem Kauf einen Blick auf die Kompatibilitätslisten zu werfen. 

Glossar

CUPS

Common Unix Printing System. Nach dem Client-Server-Prinzip struktutiertes Drucksystem für unixoide OS; lässt sich sowohl unter der GPL als auch unter proprietären Lizenzen nutzen.

IPP

Internet Printing Protocol (RFC 2910/2911). Stellt Druckdienste über TCP/IP-Netze zur Verfügung, basiert auf HTTP 1.1 mit bidirektionalen Erweiterungen.

ACLs

Access Control Lists. Solche Zugriffsteuerungslisten erlauben eine gegenüber einfachen Zugriffsrechten erweiterte Kontrolle, wie etwa unterschiedliche Rechte für verschiedene Benutzer und Gruppen.

Apple

Mitte 2007 stellte Apple den CUPS-Hauptentwickler Michael Sweet ein und erwarb dabei parallel auch die Rechte am Quellcode des Unix-Drucksystems.

Der Autor

Florian Effenberger engagiert sich seit vielen Jahren ehrenamtlich für freie Software. Er ist Gründungsmitglied und Mitglied des Steering Committee der Document Foundation. Zuvor war er fast sieben Jahre bei OpenOffice.org aktiv, zuletzt als Marketing Project Lead. Zudem schreibt er regelmäßig für zahlreiche deutsch- und englischsprachige Fachpublikationen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare