apt-get install cupsys cupsys-client foomatic-filters-ppds cupsys-bsd }}
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.
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 smbclient
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 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. :-)
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.
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...?
Ein zweites Problem trat auf einem Rechner auf, auf dem auch HylaFax 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.
Die nette Software http://usbview.sf.net
zeigt alle angeschlossenen USB-Geräte an. Es gibt auch 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.
In früheren Versionen gab es ein sogenantes File-Backend. Damit
konnte man Druckjobs in eine Datei umleiten. Dieses bietet leider
eine scheunentorgrosse 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.
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
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.
Zu folgenden Druckern gibt es spezielle Seiten hier im Wiki: HPOfficeJetR45, BrotherDrucker
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.
Ausser der Online-Doku und dem unten angegebenen Link zur CUPS-Homepage waren für mich folgende Doku-Dateien sehr hilfreich:
Artikel steht eine Methode, OpenOffice mit dem kprinter-Dialog zu betreiben. Auch für Firefox gibt es eine ähnliche Lösung.