Drucker: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Codebox hinzugefügt
Tuxnix (Diskussion | Beiträge)
K Typo
 
(57 dazwischenliegende Versionen von 19 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Was ist CUPS? ===
Das '''CUPS''' (Common Unix Printing System) basiert auf dem "Internet Printing Protocol" und stellt komplette Drucker-Dienste für Postscript- und Raster-Drucker bereit.


Direkt von der CUPS-Internetseite: "Das Common Unix Printing System (CUPS) ist eine plattformübergreifende Drucker-Lösung für alle UNIX-Umgebungen. Es basiert auf dem "Internet Printing Protocol" und stellt komplette Drucker-Dienste für die meisten Postscript- und Raster-Drucker bereit. CUPS steht unter der GNU GPL ...". Obwohl es auch andere Drucker-Pakete wie LPRNG gibt, ist CUPS sehr beliebt und relativ einfach zu nutzen. Es ist das Standard-Drucksystem von Arch Linux und vieler anderer Linux-Distributionen.
{{installation
|name=CUPS
|repo=extra
|paket=cups
|zusatz=ghostscript
|zusatzinfo=Compiler für PostScript}}


=== Problemlösung bei CUPS und die CUPS-Komponenten ===
Starten des Service:
systemctl enable --now cups.service


Um den Druck zum Laufen zu bringen, sollte man am besten den LogLevel in "/etc/cups/cupsd.conf" so einstellen:
===Virtueller PDF-Drucker===
Mit dem Paket {{paket|cups-pdf}} kann ein virtueller PDF-Drucker eingerichtet werden, der alles was per Druckbefehl an ihn gesendet wird in eine PDF-Datei verwandelt.


  LogLevel debug2


Dann kann man die Ausgabe von "/var/log/cups/error_log" mit diesem Befehl betrachten:
==Druckereinrichtung==
===PPD===
Für den Druckerbetrieb wird ein passender '''PPD''' (Postscript Printer Driver) benötigt.


  tail -n 100 -f /var/log/cups/error_log
====Externe Quellen====
Viele Druckerhersteller stellen auf ihrer Serviceseite PPD-Treiber für Linux zum Download bereit.<br>
Zudem kann man bei [https://openprinting.github.io/downloads/ openprinting.org] fündig werden.


Die Buchstaben auf der linken Seite der Ausgabe stehen für:
====Arch-Pakete====
Die meisten Drucker-Treiber können aber auch über das Arch Paket System bezogen werden:


D = Debug
* {{paket|gutenprint}} - Hochwertiger Treibersammlung für die Verwendung mit Ghostscript, CUPS, Foomatic und GIMP.
E = Error (Fehler)
* AUR - Das Arch User Repositorium stellt für einige Drucker-Modelle passende Treiber zur Verfügung. Siehe [https://aur.archlinux.org/packages/?O=0&SeB=nd&K=ppd&SB=n&SO=a&PP=50&do_Search=Los AUR-Paket-Suche]
I = Information
* {{paket|hplip}} - Unterstützt DeskJet, OfficeJet, Photosmart, Business Inkjet und einige LaserJet Modelle von HP.
* {{paket|splix}} - Unterstützt einige SPL (Samsung Printer Language) Drucker.
* Fumatic - Siehe Paketsuche unter {{paket|foomatic}}.


usw.
=== Konfiguration ===
Der einzurichtende Drucker sollte angeschlossen sein. Es wird das Rootpasswort benötigt.


Die folgenden Dateien können sich ebenfalls als hilfreich erweisen:
====Desktopumgebungen====
Einige Desktopumgebung stellen GUI-Tools zur Druckereinrichtung in ihrer jeweiligen Systemsteuerung bereit.<br>
Bei Plasma ist dies der {{paket|print-manager}}. Andere Desktopumgebungen setzen das Paket {{paket|system-config-printer}} hierfür ein. 


  /var/log/cups/page_log (spuckt jedesmal einen neuen Eintrag aus, wenn ein Druckvorgang erfolgreich war)
==== CUPS-HTTP ====
  /var/log/cups/access_log (erstellt eine Liste aller cupsd http1.1. Server-Aktivitäten)
Allgemein kann der Drucker direkt über die Webschnittstelle von CUPS eingerichtet werden.
Hierzu ruft man im Webbrowser [http://localhost:631/admin http://localhost:631/admin] auf.<br>
Nachdem man auf die Schaltfläche {{ic| Drucker hinzufügen}} klickt, wird der lokal angeschlossene Drucker automatisch erkannt.<br>
Anschließend folgt die Zuweisung eines passenden Treibers.


Natürlich ist es wichtig zu wissen, wie CUPS funktioniert, wenn Du deine Probleme lösen willst. Das läuft etwa so:
1. Eine Anwendung schickt eine .ps-Datei (also Postscript - eine Skriptsprache, die festlegt, wie die Seite aussehen wird) an CUPS, wenn Du "Drucken" wählst (99 % aller Anwendungen machen dies).
2. CUPS schaut dann in die PPD-Datei deines Druckers, und reimt sich zusammen, welche Filter benötigt werden, um die .ps-Datei in eine Sprache zu übersetzen, die der Drucker versteht (etwa PJL oder PCL). Normalerweise benötigt es GhostScript.
3. GhostScript übernimmt die Eingabe, und überlegt, welche Filter es verwenden soll, wendet diese dann an und konvertiert die .ps-Datei in ein Format, das vom Drucker verstanden wird.
4. Dieses wird dann an eine Schnittstelle übersandt. Wenn etwa Dein Drucker über USB angeschlossen ist, wird die USB-Schnittstelle genutzt.


Drucke ein Dokument und betrachte "error_log", um ein genaueres Bild vom Druckvorgang zu bekommen.
==Herstellerspezifische Artikel==
 
* [[Brother Drucker]]
==== Problem1: kein (fehlerfreier) Ausdruck von Textdateien per lp oder lpr ====
* [[Samsung Drucker]]
Beschreibung:
Textdateien werden aus dem Terminal heraus überhaupt nicht oder nur mit
Darstellungsfehlern (sog. Treppeneffekt) gedruckt
 
==== Problem2: kein Ausdruck von Textdateien unter XFCE4 ====
Beschreibung:
Trotz Einstellung des XFCE-Drucksystems auf CUPS (Menü->Einstellungen->Drucksystem-Einstellungen)
ist das Drucken aus Texteditoren (z.B.mousepad) nicht möglich
 
'''Lösung für 1 & 2:'''
 
"a2ps" installieren (a2ps is an Any to PostScript filter)
    # pacman -S a2ps
CUPS-Daemon neustarten
    # /etc/rc.d/cups restart
 
=== Problem 3: verarbeitet Auftrag, es gibt jedoch keinen Ausdruck ===
Beschreibung: Der Drucker wird erfolgreich angezeigt, ein Auftrag kann erteilt werden und wird erfolgreich verarbeitet (bzw. als solcher angezeigt), der Ausdruck bleibt jedoch aus.
 
Lösung: Zunächst den CUPS-Daemon stoppen:
    # /etc/rc.d/cups stop
 
Dann CUPS entfernen (als root):
    # pacman -Rd cups
 
Konfigurationsdateien entfernen / verschieben (als root):
    # mv /etc/cups /etc/cups.backup
    # mv /var/cache/cups /var/cache/cups.backup
 
CUPS erneut installieren:
    # pacman -S cups
 
Den CUPS-Daemon starten:
    # /etc/rc.d/cups start
 
Den Drucker wie unten erklärt hinzufügen.
 
=== CUPS installieren ===
 
Du wirst auf jeden Fall CUPS und GhostScript benötigen:
 
  pacman -S cups ghostscript
 
cups ist die eigentliche CUPS software.
ghostscript ist ein Übersetzungprogramm für die Postscript-Sprache.
 
Außerdem benötigst Du eines der folgenden Treiber-Pakete - hängt davon ab, welchen Drucker Du besitzt. Im Zweifelsfall installiere gutenprint:
 
"gutenprint" - Eine Sammlung hochwertiger Treiber für Canon, Epson, Lexmark, Sony, Olympus und PCL Drucker, die mit Ghostscript, CUPS, Foomatic und GIMP verwendet werden kann.
 
"foomatic", "foomatic-db", "foomatic-db-engine", "foomatic-db-ppd" und "foomatic-filters" - Foomatic ist ein Datenbank-basiertes System, um freie Drucker-Treiber mit gewöhnlichen Spoolern unter Unix zu integrieren.
foomatic-filters zu installieren, sollte Deine Probleme lösen, wenn das CUPS error.log berichtet: "stopped with status 22!".
 
"hplip" - HP Linux Inkjet Treiber. Unterstützt DeskJet, OfficeJet, Photosmart, Business Inkjet und einige LaserJet Modelle.
 
"splix" - Treibersammlung für Drucker, welche mit SPL (Samsung Printer Language) angesteuert werden, vornehmlich Samsung.
 
"cups-pdf" - Ein nettes Paket, das es erlaubt, einen virtuellen PDF-Drucker einzurichten, der alles, was an ihn geschickt wird, in eine PDF-Datei verwandelt.
 
Wenn Dein System mit einem Netzwerk-Drucker verbunden ist, der das [[Samba]]-Protokoll verwendet, oder als Drucker-Server für Windows-Klienten dienen soll:
 
  pacman -S samba
 
==== Cups erkennt den Drucker nicht ====
 
Für den Fall das Cups den Drucker nicht erkennt hilft oft das Paket '''hal-cups-utils'''.
 
=== Die Drucker-PPD herunterladen ===
 
Abhängig von Deinem Drucker, ist dieser Schritt vielleicht überflüssig und kann übersprungen werden, da die Basis-installation von CUPS bereits eine ganze Reihe von PPD(= Postscript Printer Description)-Dateien mit sich bringt. Darüber hinaus enthalten foomatic-filters, gutenprint und hplip weitere PPD-Dateien, die automatisch von CUPS erkannt werden.
 
Was ist eine PPD-Datei? Hier ist ein Erklärung von der Linux-Printing Internetseite: "Für jeden PostScript-Drucker stellt der Hersteller eine PPD-Datei zur Verfügung, die alle Drucker-spezifischen Informationen über dieses besondere Drucker-Modell enthält: Grundlegende Druckereigenschaften wie etwa die Frage, ob es sich um einen Farbdrucker handelt, welche Fonts und welcher PostScript-Level verwendet wird, usw., und insbesondere die Nutzer-spezifischen Optionen wie Papierformat, Auflösung, usw.".
 
Um die PPD-Datei für deinen Drucker zu bekommen, gehe zu http://www.linuxprinting.org/printer_list.cgi und wähle dort den Hersteller und das Modell deines Druckers aus. Dann musst Du diese Datei in den CUPS-Ordner kopieren, so dass die Datei erkannt werden kann, Wenn Du dich in dem Ordner befindest, in den Du die Datei heruntergeladen hast, kannst Du das folgende Kommando verwenden:
 
  cp your_printer.ppd /usr/share/cups/model/
 
Wenn Du dein Druckermodell auf der Seite nicht finden kannst, kannst Du es mit ähnlichen Modellen versuchen, oder generische Treiber verwenden. Suche über Google oder frage deinen Hersteller (viel Glück damit ...)
 
=== CUPS einrichten ===
 
Optionen
 
Nun, da Du CUPS installiert hast, gibt es eine Reihe von Möglichkeiten, CUPS einzurichten. Du kannst natürlich die altbewährte Kommandozeile verwenden. Daneben besitzen verschiedene DEs wie [[GNOME]] und [[KDE]] nützliche Programme, die dir bei der Druckerverwaltung helfen können. Um jedoch diesen Prozess für die größte Zahl der Nutzer möglichst einfach zu gestalten, werden wir die Internet-Schnittstelle verwenden, die CUPS bereit stellt.
 
Bitte beachte: Wenn Du Verbindung zu einem Netzwerk-Drucker suchst, statt zu einem, der direkt mit deinem Computer verbunden ist, möchtest Du vielleicht zuerst den Abschnitt über gemeinsam genutzte Drucker lesen. Einen Drucker unter zwei verschiedenen Linux-System anzusteuern, ist ziemlich einfach und erfordert nur sehr wenig Konfigurationsarbeit. Der Austausch von Windows zu Linux und umgekehrt erfordert etwas mehr Aufwand, ist aber immer noch recht einfach.
 
=== Kernel Module ===
 
Bevor wir wir die CUPS_Internet-Schnittstelle nutzen können, müssen wir die erforderlichen Kernel-Module installieren. Die folgenden Schritte habe ich der Gentoo-Drucker-Anleitung entnommen.
 
==== USB-Drucker ====
Seit Version 1.4.x verwendet CUPS ein neues USB-Backend. Das Modul <code>usblp</code> muss für die Verwendung dieses Backends explizit entladen werden. Damit dies gleich beim Start passiert, muss in der Datei <code>/etc/rc.conf</code> im MODULES-Array der Eintrag <code>!usblp</code> hinzugefügt werden.
 
Sollte hingegen eine CUPS-Version vor 1.4.x oder der Kernel 2.4.x verwendet werden, so sind Module zu laden. Bei Verwendung einer älteren CUPS-Version mit Kernel 2.6.x ist das Modul <code>usblp</code> zu laden. Bei Verwendung des Kernels 2.4.x muss das Modul <code>printer</code> geladen werden.
 
modprobe usblp    # bei Kernel 2.6.x
modprobe printer  # bei Kernel 2.4.x
 
Dies sollte man auch in das MODULES-Array in der [[rc.conf]] schreiben.
 
MODULES="[…] usblp […]"  # bei Kernel 2.6.x
MODULES="[…] printer […]" # bei Kernel 2.4.x
 
Falls man einen selbstkompilierten Kernel verwendet, muss man zuvor gegebenenfalls das Modul <code>usbcore</code> laden. Wenn alle Module geladen wurden, kann man den Drucker anschließen. Es sollte dann etwa Folgendes ausgegeben werden, wenn man sich das Logfile ansieht.
 
$ tail /var/log/messages.log
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver
 
==== Parallel-angeschlossene Drucker ====
 
Wenn Du einen parallel angeschlossenen Drucker nutzen willst, ist die Einrichtung fast genau die gleiche. Benutzer des Kernels 2.6.x müssen als erstes folgendes eintippen:
  # modprobe lp
 
Danach können sowohl die Nutzer von 2.4 als auch die von 2.6. eingeben:
  # modprobe parport
  # modprobe parport_pc
 
Du kannst deine Einstellungen noch einmal mit folgendem Befehl überprüfen:
  # tail /var/log/messages.log
 
Dann wirst Du in etwa Folgendes sehen:
  # lp0: using parport0 (polling).
 
=== Automatisches Laden ===
 
Wahrscheinlich möchtest Du, dass Dein System die Kernel-Module beim Systemstart automatisch lädt. Dazu benutzt Du einen Texteditor deiner Wahl, öffnest die Datei /etc/rc.conf und fügst die betreffenden Module in der Zeile MODULES= () hinzu. Hier ist ein Ausschnitt aus meiner rc.conf-Datei:
MODULES=(!usbserial scsi_mod sd_mod snd-ymfpci snd-pcm-oss printer ide-scsi)
 
=== CUPS Daemon ===
 
Wenn die Kernel-Module installiert sind, kannst Du nun auch den eigentlichen Cups-Daemon starten. Dazu führst du folgendes Kommando aus:
 
  # /etc/rc.d/cups start
 
Wenn Du CUPS bei jedem Neustart deines Computers automatisch laden willst (wahrscheinlich willst Du das), so musst Du es Deiner DEAMONS=() Zeile in der Datei /etc/rc.conf hinzufügen. Zum Beispiel:
 
  DAEMONS=(pcmcia syslogd klogd !fam esd mono network autofs cups crond gdm)
 
=== CUPS HTTP Schnittstelle für lokale Drucker ===
Nachdem der CUPS-Daemon eingerichtet ist, können wir nun die Schnittstelle http://localhost:631 aufrufen und einen Drucker einrichten. Als erste geben wir ihm einen Namen und wählen danach die Schnittstelle, über die der Drucker mit dem Rechner verbunden ist (bei parallelen Schnittstellen ist das normalerweise LPT#1). Im nächsten Schritt wählen wir entweder einen Treiber über das Menü aus oder laden direkt unsere PPD-Datei. Nun gilt es nur noch auszuprobieren, ob der Drucker wirklich druckt, was durch einen Druck auf die Taste "Testseite drucken" im Druckermenü zu bewerkstelligen ist. Diese Methode braucht allerdings aufgrund der aufwändigen Testseite sehr viel Farbe, weshalb wir lieber eine kleine Testdatei anlegen und diese mittels
 
  lpr -P <Drucker> datei
 
direkt an den Drucker senden, wobei wir <Drucker> mit dem Namen des installierten Druckers ersetzen.
 
=== CUPS-PDF als virtuellen Drucker einrichten ===
Zuerst muss das entsprechende Paket installiert werden.
 
pacman -S cups-pdf
 
Über das Webinterface wird der neue Drucker als ''CUPS-PDF (Virtual PDF Printer)'' angelegt. Dazu klickt man auf „Verwaltung“ und dort auf den Button „Drucker hinzufügen“ im Abschnitt „Drucker“ und wählt im nächsten Dialog ''Local Printers: CUPS-PDF (Virtual PDF Printer)'' aus.
 
Klickt man auf „Fortsetzen“ sieht man im darauffolgenden Dialog als URI des Druckers die Angabe <code>cups-pdf:/</code>. Weiter geht es mit der Auswahl des Druckerherstellers. Hier wählt man <code>Generic</code> aus der Herstellerliste. Als Model wählt man „Generic CUPS-PDF Printer (en)“ Um die neue Konfiguration zu aktivieren, muss cups erneut gestartet werden. Zuvor kann man in der cups-pdf Konfiguration unter <code>/etc/cups/cups-pdf.conf</code> im Abschnitt „CUPS-PDF output directory“ Einfluss darauf nehmen in welches Verzeichnis die erzeugten PDF Dateien später abgelegt werden.


==Weblinks==
==Weblinks==
Zeile 198: Zeile 55:
* http://www.turboprint.de {{sprache|de}}
* http://www.turboprint.de {{sprache|de}}


 
[[Kategorie:Drucker]]
[[Kategorie:Hardware]]
[[Kategorie:Services]]
[[Kategorie:Daemons]]
[[en:CUPS]]

Aktuelle Version vom 17. Dezember 2020, 15:43 Uhr

Das CUPS (Common Unix Printing System) basiert auf dem "Internet Printing Protocol" und stellt komplette Drucker-Dienste für Postscript- und Raster-Drucker bereit.

Installation

CUPS ist als cups in extra verfügbar, und kann von dort mittels Pacman installiert werden.

# CUPS an sich
pacman -S cups

# Compiler für PostScript
pacman -S ghostscript

Starten des Service:

systemctl enable --now cups.service

Virtueller PDF-Drucker

Mit dem Paket cups-pdf kann ein virtueller PDF-Drucker eingerichtet werden, der alles was per Druckbefehl an ihn gesendet wird in eine PDF-Datei verwandelt.


Druckereinrichtung

PPD

Für den Druckerbetrieb wird ein passender PPD (Postscript Printer Driver) benötigt.

Externe Quellen

Viele Druckerhersteller stellen auf ihrer Serviceseite PPD-Treiber für Linux zum Download bereit.
Zudem kann man bei openprinting.org fündig werden.

Arch-Pakete

Die meisten Drucker-Treiber können aber auch über das Arch Paket System bezogen werden:

  • gutenprint - Hochwertiger Treibersammlung für die Verwendung mit Ghostscript, CUPS, Foomatic und GIMP.
  • AUR - Das Arch User Repositorium stellt für einige Drucker-Modelle passende Treiber zur Verfügung. Siehe AUR-Paket-Suche
  • hplip - Unterstützt DeskJet, OfficeJet, Photosmart, Business Inkjet und einige LaserJet Modelle von HP.
  • splix - Unterstützt einige SPL (Samsung Printer Language) Drucker.
  • Fumatic - Siehe Paketsuche unter foomatic.

Konfiguration

Der einzurichtende Drucker sollte angeschlossen sein. Es wird das Rootpasswort benötigt.

Desktopumgebungen

Einige Desktopumgebung stellen GUI-Tools zur Druckereinrichtung in ihrer jeweiligen Systemsteuerung bereit.
Bei Plasma ist dies der print-manager. Andere Desktopumgebungen setzen das Paket system-config-printer hierfür ein.

CUPS-HTTP

Allgemein kann der Drucker direkt über die Webschnittstelle von CUPS eingerichtet werden. Hierzu ruft man im Webbrowser http://localhost:631/admin auf.
Nachdem man auf die Schaltfläche Drucker hinzufügen klickt, wird der lokal angeschlossene Drucker automatisch erkannt.
Anschließend folgt die Zuweisung eines passenden Treibers.


Herstellerspezifische Artikel

Weblinks