CUPS Allgemein

Aus xinux.net
Zur Navigation springen Zur Suche springen

CUPS

  • das Common Unix Printing System (entwickelt von Michael Sweet), ist das am weitesten verbreitete Drucksystem auf Linux-Systemen.
  • Über CUPS lassen sich zahlreiche Drucker nutzen, verwalten und im Netzwerk freigeben, da es als Client/Server-System aufgebaut ist.
  • Die Rechte lagen ursprünglich bei Sweets Firma ESP und wurden von Apple aufgekauft.
  • Er entwickelte als Mitarbeiter von Apple CUPS weiter bis zu seinem Ausscheiden.
  • Im September 2020 wurde CUPS unter der Leitung von M. Sweet von OpenPrinting geforkt, wodurch die weitere Pflege und Entwicklung der Software für unixoide Betriebssysteme möglich ist.

Installation

  • CUPS wird bei der Installation vieler Distributionen mitinstalliert.
  • cups (die Server-Komponente)
  • cups-client (die Client-Komponente, kann auf reinen Clients auch einzeln installiert werden)
  • cups-bsd (Kompatibilitätslayer für das alte BSD-Drucksystem)
  • sudo apt install cups cups-client cups-bsd
  • Ggf. benötigt man noch spezielle Pakete, in denen spezialisierte Treiber enthalten sind
  • hplip (für HP-Drucker, egal ob Laser- oder Tintenstrahldrucker)
  • printer-driver-gutenprint (enthält viele Treiber für sonstige Farb-Tintendrucker)
  • sudo apt install hplip printer-driver-gutenprint

Dienst steuern

  • systemctl {start|stop|restart|status} cups

Funktionsweise von CUPS

  • CUPS wandelt die zu druckenden Daten durch sogenannte Filter immer in PDF-Druckdaten (früher in PostScript).
  • Diese können dann an Geräte der lokalen CUPS-Instanz sowie an andere CUPS-Instanzen geschickt werden.
  • Die Instanz, welche am Ende den Drucker steuert, muss die PDF-Druckdaten entweder durch Treiber in gerätespezifische Druckdaten umwandeln oder, wenn das Gerät selbst PDF unterstützt, die Daten direkt an dieses senden.
  • Bei Geräten mit PDF-Unterstützung stellt sich die Frage nach proprietären Treibern und ihrer Verfügbarkeit für Linux somit erst gar nicht.
  • In beiden Fällen benötigt CUPS noch eine sogenannte .ppd-Datei.
  • Diese ist eine Beschreibung der Features des Druckers.
  • CUPS bringt auch eine generische (allgemein gehaltene) .ppd mit, die man versuchen kann, falls der Hersteller oder die Open-Source-Projekte noch keine gerätespezifische .ppd für genau das gewünschte Modell erstellt haben.
  • Moderne Drucker, die AirPrint können, benötigen diese Datei nicht mehr, da sie diese selber bereitstellen können.
  • Solche Drucker lassen sich dann unter CUPS mit dem Treiber “IPP Everywhere” installieren.

Einrichten

  • Hier wird die CUPS-Netzwerkkonfiguration und Einrichtung von Druckern über die CUPS-eigene Weboberfläche bzw.
  • die Konsole beschrieben, dies ist vor allem für Serversysteme ohne grafische Benutzeroberfläche interessant.
  • Grafische Desktop-Umgebungen haben Konfigurationswerkzeuge zum Einrichten von Druckern, siehe die Artikel GNOME Druckerkonfiguration und KDE Druckerkonfiguration.
  • Trotzdem bietet sich auch von den verschiedenen grafischen Oberflächen ein Zugriff über die einheitliche CUPS-Weboberfläche an.
  • Man kann CUPS neben der Weboberfläche allerdings auch über die Kommandozeile bedienen.
  • Dies beschreibt der Artikel Drucken per Kommandozeile.

Via Netzwerk/Konsole installieren

  • Nach der Installation nimmt CUPS nur Druckaufträge vom lokalen Rechner an.
  • Auch die Administration kann nur lokal erfolgen.
  • Folgend wird gezeigt, wie man ohne grafische Oberfläche (GUI) den Netzwerkdruck konfiguriert, z.B. bei einem Server.
  • Hierzu kann das Programm cupsctl verwendet werden:
Ein cupsctl ohne Parameter gibt die aktuellen Einstellungen aus
  • cupsctl
_debug_logging=0
_remote_admin=0
_remote_any=0
_share_printers=0
_user_cancel_any=0
BrowseLocalProtocols=dnssd
DefaultAuthType=Basic
ErrorPolicy=stop-printer
IdleExitTimeout=60
JobPrivateAccess=default
JobPrivateValues=default
MaxLogSize=0
SubscriptionPrivateAccess=default
SubscriptionPrivateValues=default
WebInterface=Yes
Gibt die lokalen Drucker im Netzwerk frei
  • sudo cupsctl –share-printers
Aktiviert die Möglichkeit, CUPS über das Netzwerk zu administrieren
  • sudo cupsctl –remote-admin
Beides auf einmal
  • sudo cupsctl –share-printers –remote-admin
Cups neustarten
  • systemctl restart cups
  • Wie bei einem lokalen CUPS-Server kann die weitere Einrichtung jetzt über die Weboberfläche des CUPS-Servers auf dem entfernten Rechner erfolgen.
  • Steht auf auf dem lokalen Rechner keine grafische Oberfläche zur Verfügung, kann man den CUPS-Server auch mit einem Text-Browser einrichten. z.B. mit Lynx:
  • lynx http://localhost:631

Weboberfläche

Cups-webinterface.png

  • CUPS besitzt einen integrierten Webserver, der über den Port 631 zu erreichen ist.
  • Diesen kann man für das Einrichten und Verwalten der Drucker nutzen.
  • Vom selben Rechner aus kann man also sehr einfach mit einem Browser durch Eingabe der Adresse auf die Konfigurationsseite zugreifen:

http://localhost:631 bzw. http://127.0.0.1:631

  • Nicht jeder Benutzer darf hier alle Aktionen durchführen.
  • Möchte man z.B. einen Drucker hinzufügen, so erscheint eine Passwortabfrage.
  • Hier muss man sich mit seinen Benutzernamen und Passwort anmelden, allerdings werden nur Mitglieder berechtigter Gruppen akzeptiert (z. B. lpadmin, wheel, sudo).
  • Bei den Desktop Versionen von Ubuntu wird normalerweise der erste bei der Installation automatisch angelegte Benutzer bereits in dieser Gruppe aufgenommen sein.
  • Weiteren Benutzern oder bei Ubuntu- Server muss dieses Recht erst gegeben werden.
  • adduser meinbenutzer lpadmin
  • Beim Zugriff über das Netzwerk ist der Hostname oder die IP des entfernten Rechners anzugeben. Der Benutzername und das Passwort müssen auf dem entfernten Rechner gelten.

Drucker hinzufügen

  • Unter “Verwaltung” kann man Drucker zu CUPS hinzufügen.
  • Lokale, direkt angeschlossene Drucker und nur über das Netzwerk erreichbare Drucker sowie Drucker an entfernten Druckservern werden mit den gleichen Schritten eingerichtet.
  • Beide Druckertypen sollten zunächst direkt oder über das Netzwerk verbunden und angeschaltet werden.
  • Nach Klicken auf “Verfügbare Drucker auflisten” werden viele Geräte bereits automatisch gefunden.
  • Die Erreichbarkeit von Netzwerkdruckern kann mittels ping in der Konsole geprüft werden.

Einrichten eines Druckers

Gerät/Anschluss

  • Grundlegende Auswahl des einzurichtenden lokalen Druckers bzw. der Netzwerkverbindung

Verbindung”

  • Für ältere lokalen Drucker mit Parallel-Schnittstelle gilt meistens “LPT #1
  • USB-Drucker werden automatisch erkannt.

Name/Beschreibung/Ort

  • Der Name sollte keine Leer- oder Sonderzeichen beinhalten.

Marke

  • Diese Auswahl beeinflusst die angezeigten Druckertreiber im nächsten Schritt.
  • Für Postscript-fähige Drucker ist eventuell eine PPD-Datei verfügbar, die man alternativ hier angeben kann.

Modell

  • Oftmals sind für ein Modell mehrere Treiber verfügbar.
  • Welcher Treiber die beste Druckqualität bzw. Leistung bringt, muss man evtl. durch ein paar Testausdrucke selber bestimmen.

Standardeinstellungen

  • Abschließend werden grundsätzliche Konfigurationen zum Drucker wie z.B. das zu nutzende Papierformat abgefragt.
  • Danach steht der Drucker zur Verfügung.
  • Einen Testdruck kann man auf der Seite “Drucker” beim jeweiligen Drucker über das Ausklappfeld “Wartung” mit der Option “Testseite drucken” auslösen.
  • Anzumerken ist, dass die erste (meist einzige) parallele Schnittstelle unter Linux als “LPT #1” bezeichnet wird (/dev/lpX; die Nummerierung beginnt bei 0).

Netzwerkprotokolle

  • Netzwerkdrucker bieten meist mehrere Zugangsprotokolle an.
  • Unter CUPS wird zunächst das Socket-Protokoll empfohlen.
  • Das IPP-Protokoll ist geringfügig langsamer aber universeller.
  • LPD sollte nur verwendet werden, wenn die anderen Wege fehlschlagen.

Internet Printing Protocol (ipp)

  • CUPS-Server und modernere Netzwerkdrucker bieten dieses Protokoll an.
  • Angegeben werden muss eine URL im Format ipp://<hostname.oder.ip>/printers/<druckername>.
  • Diese Protokoll erlaubt das Druckern übers Internet.

LPD/LPR Host or Printer

  • Manche Netzwerkdrucker oder Router mit Druckerport verwenden noch dieses alte Unix-Druckprotokoll.
  • Die URL lautet hier lpd://<servername>/<warteschlange>.

Windows Printer via SAMBA

  • Drucker-Freigaben von Windows-Druckservern.
  • Auch hier muss wieder nur eine URL im Format smb://<arbeitsgruppe bzw. domäne>/<servername>/<druckername> angegeben werden.
  • Voraussetzung ist, dass das Paket smbclient installiert ist.

AppSocket/HP JetDirect (socket)

  • Notlösung für den Zugriff im lokalen Netzwerk.
  • Angegeben werden muss eine URL im Format socket://<druckerhostname.oder.ip>:<port>.
  • Als Wert für den Port ist 9100 sehr verbreitet, dies hängt aber vom Drucker ab.

Raw-Drucker

  • Ein Raw-Drucker im Sinne von CUPS ist ein Drucker, dessen Daten von CUPS nicht bearbeitet werden.
  • Das heißt, die Daten vom Client werden 1:1 an den Drucker weitergeleitet.
  • Einsetzen kann man einen Raw-Drucker z.B., wenn man die Treiber auf einem Windows-Client benutzen möchte/muss.
  • Es bedeutet aber auch, dass der Treiber auf jedem Client installiert sein muss.
  • Apple plant irgendwann in der Zukunft den Raw-Druck aus CUPS zu entfernen.

Warteschlange bearbeiten

Unter “Aufträge” kann man den Status der Druckaufträge des CUPS-Servers einsehen: Aufträge verwalten, neu starten, löschen, usw.

Status überwachen/verändern

  • Auf der Seite “Drucker” findet man eine Übersicht aller im System installierten Drucker.
  • Hier kann man sehen, was die Drucker gerade machen, ob sie Aufträge abarbeiten oder ob Fehler vorliegen.
  • Des Weiteren kann man alle wichtigen Aktionen bezüglich eines Druckers von hier aus starten: Testseiten ausdrucken, Drucker temporär deaktivieren, etc.

Druckerserver im Netzwerk

  • CUPS ist, wie in der Einleitung schon geschildert, als Client-/Server-System aufgebaut.
  • Dadurch können Drucker im Netzwerk freigegeben werden und andere Rechner können diese Drucker nutzen.
  • In der Weboberfläche von CUPS findet sich auf der Seite “Verwaltung” unter “Server” Optionen, um diese Funktionen zu aktivieren

Zeige freigegebene Drucker von anderen Systemen

Bindet andere Netzwerkdrucker automatisch lokal ein, so dass diese Drucker am Rechner genutzt werden können, ohne dass man sie manuell hinzufügen muss.

Freigeben von Druckern welche mit diesem System verbunden sind

  • Gibt lokale Drucker im Netzwerk frei.
  • Notwendig, wenn andere CUPS-Server im Netz die angeschlossenen Drucker automatisch erkennen sollen.

Erlaube entfernte Verwaltung

Hierdurch erlaubt man die Administration des CUPS-Servers über die Weboberfläche von anderen Rechnern als localhost.

Links