Open Source im professionellen Einsatz

Das Common Unix Printing System

Druck-O-Matic

CUPS ist das Drucksystem des Internet-Zeitalters. Unser Überblick zeigt, was damit derzeit möglich ist, und was hinter den Kulissen abläuft.

Treue Leser des Linux-Magazins kennen das Common Unix Printing System (CUPS) bereits seit unserer Artikelreihe im Jahr 2000 [1]. Inzwischen sind jedoch die Entwicklung und die Akzeptanz von CUPS mit Riesenschritten vorangekommen. Es wird Zeit für eine Auffrischung und ein Update auf den neuesten Stand.

CUPS [2] implementiert das Internet Printing Protocol (IPP) [3] in Version 1.1. Es kann sowohl lokal als auch im Netzwerk den in die Jahre gekommenen Line Printer Daemon vollständig ablösen. Einige Linux-Distributionen wie Mandrake, Caldera, EasyLinux oder Connectiva installieren den LPD schon gar nicht mehr. Auch in aktuellen SuSE-Varianten kann CUPS inzwischen mit YaST konfiguriert werden.

Auf Einzelplatz-Systemen reizt CUPS alle individuellen Eigenschaften des vorhandenen Druckers aus, seine wahren Stärken kommen jedoch erst im Netzwerk zum Tragen. Dort kann auf jedem freigegebenen Drucker unter Nutzung all seiner gerätetypischen Optionen gedruckt werden, ohne dass auf dem Client ein Treiber installiert ist. Mehr noch, der Client erkennt selbständig, welche Drucker im Netz installiert sind, sofern diese an einem CUPS-Server hängen.

Architektur wie ein Webserver

Herzstück von CUPS ist der Server-Daemon oder Scheduler cupsd, der viel mit einem herkömmlichen Webserver gemein hat. Er kann mit jedem Browser über den reservierten Port 631 angesprochen werden. Über diesen Port kommunizieren auch die Clients mit dem Server. Der Datenaustausch mit den am Server angeschlossenen Druckern jedoch kann auf vielerlei Wegen geschehen. Idealerweise verstehen diese selbst IPP, das ist jedoch erst bei etwa 200 Modellen der Fall. Gute Laserdrucker wie die in unserem Test werden wahrscheinlich eher das Appsocket-Protokoll beherrschen, freigegebene Drucker an Windows-Rechnern können mit Samba über SMB angesprochen werden. Für den "Rest" kommt LPD zum Einsatz. Die Kommunikation mit den Druckern über die genannten Protokolle erledigen Backends, die separat konfiguriert werden.

CUPS und Postscript

Wer auf Unix-Systemen druckt, kommt an Postscript nicht vorbei; CUPS ist da keine Ausnahme. Am einfachsten sind deshalb Postscript-fähige Drucker zu handhaben. Deren eingebaute Prozessoren verarbeiten im sehr rechenintensiven Raster Image Process (RIP) PS-Dateien zu Rasterdaten. Für Drucker, die kein Postscript verstehen, muss das ein Rechner erledigen.

Gimp-Print für Tintenstrahler, ein Universaltreiber mit Spezialfähigkeiten

Rund 120 Tintenstrahler der Firmen Epson, HP, Canon und Lexmark unterstützt die neueste Alpha-Version (4.1.99-a2) des Gimp-Print-Projekts (letzte stabile Version ist die 4.0.5).

Gimp-Print umfasst eine gemeinsame Code-Basis für drei verschiedene Zielprojekte: GIMP (Plugin für Druckzwecke), Ghostscript ( stp-Universaltreiber für höchste Qualität bei Tintenstrahlern) und CUPS (native CUPS-Filter samt PPDs für 120 Drucker). Im Tarball von Gimp-Print - fertige kompilierte Pakete gibt es nicht - befinden sich ein README und weitere Dokumentation.

./configure --help zeigt die Optionen. Mit --with-cups lässt sich das CUPS-System erweitern. Die Option --with-ghost --with-foomatic generiert die Quellcode-Dateien, die mit dem Ghostscript-Quellcode verschmolzen werden. Anschließend ist Ghostscript neu zu kompilieren. Als neuen Bestandteil enthält es jetzt stp. Die CUPS/Gimp-Print-Filter samt der erzeugten PPDs und der normale Ghostscript-Filter, hier unter dem Namen stp, lassen sich mit CUPS nutzen.

Wichtig in diesem Zusammenhang ist folgendes:

  • n Die PPDs müssen zum Filter passen: Zu stp gehören die foomatic-Dateien, kenntlich an den Bezeichnungen GIMPPRINT+foomatic oder stp+foomatic;
  • n die CUPS-Form von Gimp-Print heißt CUPS + gimp-print;
  • n PPDs nur mit zugehörigen Konversion-Filter von anderen Rechnern kopieren;
  • n Finger weg von Gimp-Print, Foomatic oder stp und zugehörigen PPDs bei PostScript-Druckern: besser ist da die Windows-NT-PPD des Geräte-Herstellers.

In der Druckvorstufe stehen oft dedizierte RIP-Server. Im Firmennetz übernimmt der Printserver diese Aufgaben mit und sollte deshalb über ausreichend Rechenleistung verfügen, falls wirklich regelmäßig mit nicht postscriptfähigen Druckern gearbeitet wird. CUPS ist jedoch flexibel genug, um unter Umständen auch das Aufbereiten der Druckdaten auf dem Client zu erlauben. Dann ist jedoch ein wesentlicher Vorteil dahin; der Client braucht hierfür selbstverständlich eigene Treiber. Die Eigenschaften jedes Druckermodells sind in einer Postscript Printer Description (PPD) im ASCII-Format festgelegt

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook