This page (revision-7) was last changed on 23-Nov-2008 20:16 by ThomasBayen 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
7 23-Nov-2008 20:16 10 KB ThomasBayen to previous Backlink zu CupsUndWindows
6 31-Jan-2008 16:30 10 KB ThomasBayen to previous | to last Tagging
5 22-Oct-2007 19:20 10 KB ThomasBayen to previous | to last Link korrigiert
4 22-Oct-2007 19:12 10 KB ThomasBayen to previous | to last Paket smbclient, um auf Windows-Server drucken zu können
3 22-Oct-2007 00:57 10 KB ThomasBayen to previous | to last Überarbeitung nach Installation meines neuen Servers
2 04-Oct-2006 13:00 8 KB ThomasBayen to previous | to last Wiki-Umstellung und was zum Omni-Treiber
1 03-Oct-2006 21:29 6 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

=!!!>> Drucken mit CUPS<< =>>

<<==!!>> Was ist CUPS?<< ==>>
CUPS (Common Unix Printing System) ist ein neues Drucksystem, das
sich aller Voraussicht nach in Zukunft im Linux-Bereich durchsetzen
wird. Im Vergleich zu den alten BSD bzw. Sys V - Lösungen stellt es
sich wesentlich moderner und leistungsfähiger dar. CUPS benutzt das
IPP-Protokoll, das (so wie es aussieht) zu einem neuen,
plattformübergreifenden Standard für Drucken im Netzwerk wird. IPP
basiert auf HTTP und ist daher leicht zu implementieren. CUPS ist
komplett über eine Weboberfläche konfigurierbar.

<<==!!>> Installation<< ==>>
Wie bei mir üblich bezieht sich das hier gesagte auf die
<<Debian-Distribution.

===
Debian-Distribution
>> <<Debian(Sarge).>> <<Sarge ===
>>Zu Beginn habe ich die nötigen Pakete<<
>>installiert:

{{
 apt-get install cupsys cupsys-client foomatic-filters-ppds cupsys-bsd
}}

* cupsys
Der eigentliche CUPS-Server. Er läuft im Hintergrund und wartet auf
einen Client, der ihm Druckaufträge zuschiebt und druckt diese dann
aus. Außerdem verwaltet er auch die Weboberfläche zur Konfiguration
etc.
* foomatic-filters-ppds
Dieses Paket enthält Druckerkonfigurationen für viele verschiedene
Modelle. Ich dachte, daß es keine schlechte Idee sein kann, dieses
erstmal mitzuinstallieren.
* cupsys-client
Dieses Paket enthält SysV-Client-Programme. Man bekommt also die
normalen Druckbefehle, die man gewöhnt ist, wenn man vorher ein
SysV-Drucksystem hatte, also z.B. mit "lp" Dateien gedruckt hat.
* cupsys-bsd
Dieses Paket enthält BSD-Client-Programme. Man bekommt also die
normalen Druckbefehle, die man gewöhnt ist, wenn man vorher ein
BSD-Drucksystem hatte, also z.B. mit "lpr" Dateien gedruckt hat.
Außerdem enthält es einen lpd-Server, der als Daemon gestartet wird
und so tut, als sei er ein normaler lpd-Server. Er nimmt
Druckaufträge wie üblich an und reicht diese dann an den
CUPS-Server weiter. So können Rechner im Netzwerk, die nur auf
lpd-Systeme drucken können, ohne Probleme eingebunden werden.

Wenn man einen Drucker hat, der nicht direkt eine
Seitenbeschreibungssprache (wie z.B. Postscript) spricht, muss man
noch die Pakete ''gs'' und ''gsfonts'' für Ghostscript
installieren.

<<===!!>> <<Debian Etch ===

Um alle Druckertreiber und alle Möglichkeiten zu bekommen, habe ich folgendes installiert:

 aptitude install cupsys cups-pdf cupsys-driver-gutenprint foomatic-filters-ppds linuxprinting.org-ppds


==
>>Spezielle Einstellungen<< ==>>
Einige Dinge können in '''/etc/cups/cupsd.conf''' eingestellt
werden. Die Datei ist schön übersichtlich und man sollte sich dort
zurechtfinden. Nach Änderungen nicht vergessen, mit
'''/etc/init.d/cupsys restart''' die neue Konfiguration einzulesen.

<<===!>> Administration von anderen Rechnern aus<< ===>>
Defaultmäßig läßt CUPS Zugriffe auf das Administrationsmodul nur
von localhost aus zu. Um das zu ändern, muss man andere Hosts oder
Netzwerke ganz am Ende der Datei in der Rubrik ''<Location
/admin>'' z.B. mit '''Allow From 192.168.5.47''' eintragen.
Entsprechend dem, was man so machen will kann das auch noch in
anderen Location-Teilen nötig sein.

<<===!!>> <<Authentifizierung ===

Die normale Konfiguration besteht darauf, daß man eine verschlüsselte Verbindung benutzt, wenn man CUPS über das Netzwerk konfiguriert. Das ist auch stark zu empfehlen. Zur Authentifizierung empfiehlt es sich also, ssl einzurichten. Die Standardkonfiguration beesteht immer auf SSL, wenn man von aussen auf den Server zugreift. Seltsamerweise konnte ich nicht finden, wo das richtig dokumentiert ist, daß das einzurichten ist.

 aptitude install openssl
 openssl req -new -x509 -keyout /etc/cups/ssl/server.key -out /etc/cups/ssl/server.crt -days 3650 -nodes


==
>>Und loslegen!<< ==>>
Jetzt nimmt man seinen Browser und browst nach
"http://localhost:631". Und Schwuppdiwupp erklärt sich der Rest
fast von ganz alleine! Wer schonmal ein BSD-Drucksystem "von Hand"
installiert hat, wird in Entzückens-Schreie ausbrechen. :-)

<<===!!>> <<Administration ===

Die Administration wird normalerweise jedem Benutzer der Gruppe lpadmin erlaubt. Ich erstelle hier einen solchen Benutzer neu, weil ich ansonsen eigentlich gar keine Benutzer auf dem Printserver habe und CUPS nicht als root administrieren will:

 adduser admin
 adduser admin lpadmin

Läuft CUPS lokal auf dem Desktop-System, so nimmt man nur die zweite Zeile und setzt seinen Benutzernamen entsprechend ein.

==
>>Probleme<< ==>>
<<
>>Ein kleines Problem hatte ich bei der Anlage meines ersten
Druckers. Als ich über die Weboberfläche den Drucker einrichten
wollte, wurde mir in der Auswahlliste der Devices nicht der
Parallelport angezeigt. Nachdem ich den Drucker dann über die
Kommandozeile mit '''lpadmin -p test1 -E -v parallel:/dev/lp0 -m
deskjet.ppd''' (egal, ob der Treiber stimmt, kann man wieder
ändern) angelegt habe, tat's auf einmal auch die Anlage per
Webformular. Ich nehme an, daß der Drucker erst einmal angesprochen
sein muss, damit CUPS die Schnittstelle bemerkt. Vielleicht reicht
ja auch ein '''echo bla >/dev/lp0''' hierzu aus...?
<<
>>:''Das Problem ist bei mir nicht aufgetreten.'' PeterHormanns
<<
::Soweit
::"Soweit
>> ich weiss, müssen beim Starten des cupsd die<<
>>entsprechenden Module (lp/parport/etc.) geladen <<sein.sein.">>

<<
>>Ein zweites Problem trat auf einem Rechner auf, auf dem auch <<HylaFaxHylFax>>
lief. Beim Hochfahren von CUPS hat es das ''serial''-Backend
geladen und ist dabei hängengeblieben, d.h. cupsd und serial stehen
in der Prozessliste, aber es tut sich nichts. Ich denke, das liegt
daran, dass das Backend versucht, nach Druckern zu scannen, aber
nicht auf die Schnittstelle zugreifen darf, weil HylaFax da schon
draufsitzt. In so einem Fall kann man am einfachsten das Backend
löschen.

<<===!!>> USB-Drucker<< finden mit usbview ===>>
<<
>>Die nette Software http://usbview.sf.net zeigt alle angeschlossenen<<
>>USB-Geräte an.<<

{{
>> <<Esapt-get>> <<gibtinstall>> <<auchusbview>> <<ein Debian-Paket '''usbview'''.
}}

>>Das Modul '''printer''' muss geladen sein, damit der Drucker auch<<
>>angesprochen werden kann.<<
>>Andernfalls zeigt usbview das Gerät rot an und nicht schwarz.

<<==!!>> File-Backend<< ==>>

In früheren Versionen gab es ein sogenantes File-Backend. Damit
konnte man Druckjobs in eine Datei umleiten. Dieses bietet leider
eine <<scheunentorgrosseScheunentorgrosse>> Sicherheitslücke und ist deshalb
normalerweise abgeschaltet. Es kann mit der Option
http://cups.org/sam.html#FileDevice eingeschaltet werden. Aus einem
unerfindlichen Grund kann man damit jedoch keine raw-Daten
speichern, sondern nur die durch den Druckertreiber erzeugten,
obwohl ich gerade diese in meinem Fall haben wollte. :-(

Also habe ich ein EigenesCupsBackend geschrieben.

<<Alternativ!!>> <<gibt es seit neuestem auch ein PDF-Backend. Die erzeugten PDF-Dateien werden damit auf Wunsch direkt in die Benutzerverzeichnisse abgelegt. Je nach Aufgabenstellung kann auch das eine Lösung sein.

==
>>Wie finde ich den richtigen Treiber?<< ==>>
<<
>>Durch Installation des CPUS-O-MATIC-Paketes ist bereits eine sehr
grosse Anzahl an Druckern direkt auswählbar. Ansonsten kann man in
seinem Druckerhandbuch nach Emulationen suchen. Mein '''Brother
HL-P 2000''' hat eine "HP Laserjet II"-Emulation. Der entsprechende
Treiber funktionierte nicht so ganz perfekt aber nach zwei Stunden
herumprobieren und ca. 80 bedruckten Seiten Papier kam ich darauf,
daß der Laserjet 4-Treiber funktioniert, wenn man ihn auf 300 dpi
stellt. :-) (für diesen Drucker siehe unten den Omni-Treiber)

Weiteres Beispiel (von unbekanntem Autor):
{{{
<<  >>apt-get install foomatic-bin foomatic-data hpijs
<<  
>>zless /usr/share/doc/foomatic-bin/USAGE.gz
<<  
>>foomatic-configure -O | less
<<  
>>foomatic-configure -s cups -n DeskJet -c file:/dev/usb/lp0 -p 133664 -d cdj880 -o PageSize=A4
}}}

<<===!>> Omni-Treiber<< ===>>

Wer einen Drucker besitzt, der mit den normalen Treibern nicht (oder nicht zufriedenstellend) arbeitet, kann den Omni-Treiber versuchen (http://www.linuxprinting.org/show_driver.cgi?driver=omni bzw. http://omniprint.sourceforge.net). Hierbei handelt es sich soweit ich das verstanden habe um ein komplettes Treibersystem, das über 450 vor allem auch ältere Drucker unterstützt. Es kommt ursprünglich von IBM und nutzt lt. Doku das Know-How aus OS/2. Hiermit bekomme ich auch meinen __Brother HL-P2000__ richtig zum laufen.

Leider ist die Installation nicht ganz trivial (aber auch nicht sehr schwer). Omni ist im Grunde ein Treiber für Ghostscript. Das entsprechende Paket kann man von der Sourceforge-Seite als RPM herunterladen. Dazu gibt es noch ein Paket mit der CUPS-Einbindung, das ich ebenfalls heruntergeladen habe. Leider gibt es nur diese RPM-Pakete für Redhat und Suse. Allerdings kann man mit dem ''alien''-Programm ganz einfach Debian-Pakete hieraus erzeugen. Diese habe ich einfach installiert. Nun gibt es noch eine Besonderheit: Die Omni-Binaries greifen auf ein eigenes Library-Verzeichnis zu. Deshalb habe ich folgendes am Anfang von ''/etc/init.d/cuprys'' eingefügt:

{{{
# -TB-
# fuer den Brother HL-P2000 Omni-Treiber
export LD_LIBRARY_PATH=/usr/lib/Omni
}}}

Nun kann man den Drucker ganz normal über seine Lieblings-Oberfläche konfigurieren. Die Omni-Treiber stehen dabei mit in der Auswahlliste der Druckertreiber.

<<===!!>> <<Weitere spezielle Drucker ===

Zu folgenden Druckern gibt es spezielle Seiten hier im Wiki: HPOfficeJetR45, BrotherDrucker

==
>>Zugriff von Windows-Rechnern<< ==>>
<<
>>Neuere Windows-Versionen sollen direkt per IPP auf den CUPS-Server
zugreifen können (habe ich keine Erfahrungen mit). Um Windows 95/98
zum laufen zu bekommen, empfiehlt sich der Weg über Samba:
SambaUndCUPS. Neuerdings soll es auch IPP für Windows 98 geben.
Näheres unter:
http://wiki.bsdforen.de/index.php/Drucken_mit_Windows

Für Samba müssen die folgenden Einträge geändert werden
{{{
/etc/samba/smb.conf (Debian)
printing = cups
printcap name = cups
}}}

Ich würde aber zu IPP-Druck raten.

<<== Dokumentation =={{{>>
<<
Ausser
>> <<der1.)>> <<Online-DokuStart/Drucker>> und <<demFaxgeräte/Drucker>> <<untenhinzufügen
>> <<angegebenen2.)>> <<Link zurweiter>>
<<CUPS-Homepage>> <<waren3.)>> <<für mich folgende Doku-Dateien sehr hilfreich:Netzwerkdrucker>>
<<
*
>> <</usr/doc/cupsys/README.Debian.gz

Die
4.)
>> <<komfortabelsteVerbinden>> <<Art,mit>> <<CUPSeinem>> <<zu benutzen, ist übrigens meiner Meinung nach '''kprinter''', das ist der Druckdialog von KDE. Er erlaubt immer eine Vorschau, er erlaubt das Anlegen von Profilen, so daß man in der Druckauswahl einen >>Drucker <<mitim>> <<unterschiedlichenInternet>> <<Einstellungen (farbig/sw >>oder <<einfach/duplex)Heim-/Firmennetzwerk
>> <<auswählen5.)>> <<kann.URL:>> <<Leidereingeben>> <<arbeitenhttp://<HostnameoderIPAdresse>:631/printers/<Druckername>
>> <<einige6.)>> <<wichtigeDruckertreiber>> <<Programmeauswählen>> <<jedoch
>> <<mit7.)>> <<eigenen,Testseite>> <<anderendrucken
}}}

!!
>> <<Dialogen.Dokumentation
Ausser
>> <<Inder>> <<[diesem|http://www.easylinux.de/pipermail/suse/2007-March/019920.html]Online-Doku>> <<Artikelund>> <<stehtdem>> <<eineunten>> <<Methode,angegebenen>> <<OpenOfficeLink>> <<mitzur
CUPS-Homepage
>> <<demwaren>> <<kprinter-Dialog zu betreiben. Auch >>für <<Firefoxmich>> <<gibtfolgende>> <<esDoku-Dateien>> <<einesehr>> <<ähnlichehilfreich:

*
>> <<Lösung./usr/doc/cupsys/README.Debian.gz>>

<<==!! Links<< ==

* http://www.cups.org
* http://www.linuxprinting.org