Drucker: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
R3vilo (Diskussion | Beiträge)
Tuxnix (Diskussion | Beiträge)
K Typo
 
(34 dazwischenliegende Versionen von 13 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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 ...". [http://www.cups.org] 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.
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 ==
{{installation
Zuerst installiert man den CUPS-Server und Ghostscript. Letzteres ist ein Compiler für PostScript.
|name=CUPS
|repo=extra
|paket=cups
|zusatz=ghostscript
|zusatzinfo=Compiler für PostScript}}


  pacman -S cups ghostscript
Starten des Service:
systemctl enable --now cups.service


Außerdem benötigt man eines der folgenden Treiber-Pakete je nach dem, was für Drucker konfiguriert werden. Im Zweifelsfall ist Gutenprint eine gute Wahl:
===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.


* '''gutenprint''' - Eine Sammlung hochwertiger Treiber für Canon, Epson, Lexmark, Sony, Olympus und PCL Drucker, die mit Ghostscript, CUPS, Foomatic und GIMP verwendet werden können.
* '''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 beim lösen verschiedener Probleme helfen können, wenn der CUPS-Server im error.log berichtet: "stopped with status 22!".
* '''hplip''' - Ein HP Linux Inkjet Treiber. Unterstützt DeskJet, OfficeJet, Photosmart, Business Inkjet und einige LaserJet Modelle.
* '''splix''' - Eine 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 das System mit einem Netzwerk-Drucker verbunden ist, der das [[Samba]]-Protokoll verwendet, oder als Drucker-Server für Windows-Klienten dienen soll, sollte man Samba installieren:
==Druckereinrichtung==
===PPD===
Für den Druckerbetrieb wird ein passender '''PPD''' (Postscript Printer Driver) benötigt.


  pacman -S samba
====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 Drucker-PPD herunterladen ===
====Arch-Pakete====
Eine PPD-Datei ist eine Informationsdatei für PostScript-Drucker (meist vom Hersteller des Druckers bereitgestellt), in der alle relevanten Informationen über den Drucker (Druckertyp, unterstützte Schriften, Auflösung, verwendeter PostScript-Level, Papierformat, etc.) verzeichnet sind.
Die meisten Drucker-Treiber können aber auch über das Arch Paket System bezogen werden:


Abhängig vom Drucker, ist dieser Schritt vielleicht überflüssig und kann übersprungen werden, da die Basisinstallation von CUPS bereits eine ganze Reihe von PPD-Dateien mit sich bringt. Darüber hinaus enthalten <code>foomatic-filters</code>, <code>gutenprint</code> und <code>hplip</code> weitere PPD-Dateien, die automatisch von CUPS erkannt werden.
* {{paket|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 [https://aur.archlinux.org/packages/?O=0&SeB=nd&K=ppd&SB=n&SO=a&PP=50&do_Search=Los AUR-Paket-Suche]
* {{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}}.


Falls die PPD-Datei des eigenen Drucker nicht in einem der vorgenannten Pakete zu finden sein sollte, so kann man auf
=== Konfiguration ===
[http://www.openprinting.org/printers] nachsehen. Dort wählt man den Hersteller und das Modell des Druckers aus. Dann muss man diese Datei in den CUPS-Ordner kopieren, so dass die Datei erkannt werden kann.
Der einzurichtende Drucker sollte angeschlossen sein. Es wird das Rootpasswort benötigt.


  cp your_printer.ppd /usr/share/cups/model/
====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.  


Wenn das Druckermodell auf der Seite nicht zu finden ist, kann man es mit ähnlichen Modellen versuchen, oder generische Treiber verwenden.
==== CUPS-HTTP ====
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.


== Konfiguration ==
Es gibt viele Möglichkeiten, den CUPS-Server einzurichten: Über die Kommandozeile, über bereitgestellte Programme der Desktopumgebung oder über die mitgelieferte Webschnittstelle des Servers. Diese Anleitung bezieht sich auf letzteres.


=== Module laden ===
==Herstellerspezifische Artikel==
Zuerst müssen die Kernelmodule geladen werden. Je nachdem, ob man einen USB- oder einen Parallel-Drucker verwendet, sind diese unterschiedlich.
* [[Brother Drucker]]
 
* [[Samsung 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.
Das blocken von usblp in der rc.conf funktioniert seit <code>initscripts 2011.06.1-1</code> nicht mehr und anstelle dessen muss in <code>/etc/modprobe.d/</code> eine <code>blacklist.conf</code> mit folgendem Inhalt erstellt werden.
 
# Do not load the usblp module on boot
blacklist usblp
 
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
 
Wenn man einen Parallel-Drucker nutzen will, 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 eines 2.4.x-Kernels, als auch die eines 2.6.x-Kernels eingeben:
 
modprobe parport
modprobe parport_pc
 
Diese Module sollten ebenfalls in das MODULES-Array der <code>rc.conf</code> eingetragen werden
 
Nun überprüft man die Einstellungen.
 
tail /var/log/messages.log
 
Es sollte folgendes zu sehen sein.
 
# lp0: using parport0 (polling).
 
=== Daemon starten ===
Wenn die Kernel-Module installiert sind, wird der CUPS-Server als Daemon gestartet.
 
/etc/rc.d/cupsd start
 
CUPS sollte außerdem in das DAEMON-Array der <code>rc.conf</code> eingetragen werden.
 
DAEMONS=([…] cupsd […])
 
=== CUPS HTTP Schnittstelle für lokale Drucker ===
Sobald der Server gestartet ist, ruft man die Webschnittstelle auf: [http://localhost:631 http://localhost:631] Hier klickt man auf den Link, um Drucker hinzuzufügen. Der CUPS-Server sucht automatisch nach den angeschlossenen Druckern; den, der konfiguriert werden soll, klickt man an. Nun kann man dem Drucker einen Trivialnamen geben und eine Beschreibung hinzufügen. Zuletzt wählt man den Druckertreiber bzw. eine PPD-Datei aus und stellt die Standardeinstellungen ein. Der Drucker ist nun eingerichtet und bereit zum Drucken. Man sollte nun eine Testseite drucken, um zu überprüfen, ob alles funktioniert. Dies kann man über das nun offene Menü des Druckers tun oder über die Kommandozeile.
 
lpr -P <Drucker> datei
 
<code><Drucker></code> ist hierbei der gewählte Trivialname, <code>datei</code> eine zuvor erstelle Textdatei. Sofern man nur einen Drucker eingerichtet hat, kann <code>-P <Drucker></code> auch weggelassen werden.
 
== 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“. Im nächsten Dialog wählt man „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 „Generic“ aus der Herstellerliste. Als Model wählt man „Generic CUPS-PDF Printer (en)“. Um die neue Konfiguration zu aktivieren, muss der CUPS-Server neu gestartet werden.
 
/etc/rc.d/cupsd restart
 
Zuvor kann man in der Datei <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 sollen.
 
== Problemlösungen ==
Um den Druck zum Laufen zu bringen, sollte man am besten den LogLevel in <code>/etc/cups/cupsd.conf</code> so einstellen:
 
  LogLevel debug2
 
Dann kann man die Ausgabe von <code>/var/log/cups/error_log</code> mit diesem Befehl betrachten:
 
  tail -n 100 -f /var/log/cups/error_log
 
Die Buchstaben auf der linken Seite der Ausgabe stehen für:
 
* D = Debug
* E = Error (Fehler)
* I = Information
 
Die folgenden Dateien können sich ebenfalls als hilfreich erweisen:
 
/var/log/cups/page_log (spuckt jedes Mal einen neuen Eintrag aus, wenn ein Druckvorgang erfolgreich war)
/var/log/cups/access_log (erstellt eine Liste aller cupsd http1.1. Server-Aktivitäten)
 
Natürlich ist es wichtig zu wissen, wie CUPS funktioniert, wenn man ein Problem lösen will. CUPS arbeitet in etwa so:
 
* Eine Anwendung schickt eine PostScript-Datei an den Server (im Regelfall ist dies <code>localhost</code>).
* CUPS übersetzt diese Datei nun in ein Format, das vom druckerinternen Protokoll verarbeitet werden kann. Dies geschieht zum Beispiel mit Ghostscript, das über die Druckertreiber herausfindet, wie dies genau funktioniert.
* Diese Datei wird dann an die Druckerschnittstelle gesandt.
 
In der Datei <code>error.log</code> wird dies dokumentiert.
 
=== Textdateien werden nicht gedruckt ===
Obwohl der Drucker richtig eingerichtet wurde, kann es passieren, dass Textdateien nicht korrekt aus dem Terminal oder aus dem Texteditor gedruckt werden.
 
Abhilfe kann hier <code>a2ps</code> verschaffen. Dieses Programm wandelt verschiedene Dateien in PostScript-Dateien um.
 
pacman -S a2ps
 
Nach der Installation muss der CUPS-Server neu gestartet werden.
 
/etc/rc.d/cupsd restart
 
=== Der Auftrag wird verarbeitet, aber nicht gedruckt ===
Obwohl der Drucker korrekt konfiguriert wurde und Aufträge annimmt und diese auch als verarbeitet angezeigt werden, erhält man keinen Ausdruck.
 
Die Lösung für dieses Problem ist folgende:
 
Zunächst wird der CUPS-Server gestoppt.
 
/etc/rc.d/cupsd stop
 
Hiernach deinstalliert man ihn. Es sollten alle Konfigurationsdateien entfernt oder gesichert werden.
 
pacman -Rd cups
mv /etc/cups /etc/cups.backup
mv /var/cache/cups /var/cache/cups.backup
 
Nun installiert man den CUPS-Server neu und startet ihn wieder.
 
pacman -S cups
/etc/rc.d/cupsd start
 
Danach muss der Drucker wieder neu eingerichtet werden.
 
Damit kann immerhin sichergestellt werden, dass keine Konfigurationsprobleme vorliegen.
 
=== 64-Bit System (x86_64-Architektur) ===
Obwohl man alles richtig gemacht hat, kann es dennoch passieren, dass der Drucker einfach nicht druckt. Falls man die 64-Bit-Version von Arch Linux nutzt, sind evtl. noch folgende 32-Bit-Pakete von Nöten: '''lib32-glibc''', '''lib32-gcc-libs''' und '''lib32-libstdc++5'''.
 
Voraussetzung dazu, ist die Aktivierung des Multilib-Repos in der <code>/etc/pacman.conf</code>; Siehe dazu [[Pacman]], den Punkt '''"Repos festlegen".'''
 
Man kommentiert einfach das Multilib-Repo aus ("#" vor Eintrag entfernen).
 
[multilib]
Include = /etc/pacman.d/mirrorlist
 
Danach die Datenbank aktualisieren.
 
pacman -Syy
 
Und dann die fehlenden 32-Bit-Abhängigkeiten installieren.
 
pacman -S lib32-glibc lib32-gcc-libs lib32-libstdc++5
 
Danach müsste der Drucker einwandfrei funktionieren. Falls nicht - oder auch nur zur Sicherheit - kann man nochmal den CUPS-Server neu starten.
 
/etc/rc.d/cupsd restart
 
===CUPS erkennt den Drucker nicht===
Viele USB-Drucker werden von CUPS (v1.5) nach wie vor als parallele Geräte angesprochen.
Sobald der Drucker beim Einstecken und Anschalten in /dev/usb/ eine Datei lp0 , lp1, oder usw. anlegt genügt ein Link direkt in /dev/
 
Speichern Sie dazu folgende udev-rule unter bspw. diesem Namen /etc/udev/rules.d/10-cups_device_link.rules ab.
 
KERNEL=="lp[0-9]", SYMLINK+="%k", GROUP="lp"
 
Beim neuen einstecken des USB-Kabels wird die neue Regel angewendet, und CUPS dürfte den Drucker (als parallel) im Web-Interface erkennen.
 
Falls das nicht hilft, installieren Sie das Paket '''hal-cups-utils''' und versuchen es erneut.
Dabei ist zu beachten, dass für hal (als Abhängigkeit) aus dem AUR (temporär) ein link angelegt werden sollte.
# ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
 
===Herstellerspezifische Artikel===
Vielleicht helfen dir auch die die Wiki-Artikel [[Brother Drucker]] oder [[Samsung Drucker]] weiter.


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


[[Kategorie:Hardware]]
[[Kategorie:Drucker]]
[[Kategorie:Daemons]]
[[Kategorie:Services]]
[[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