logoOL.gif
user_gelb_schwarz_or.gif
logoUL.gif
logoUR.gif claim.gif
LinuxUser LinuxCommunity EasyLinux Linux-Magazin International
      Anzeige
TFT Monitor bei Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich.
Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps.
Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung.
Günstige Shareware Programme als direkte Downloads im Software Portal.
Bis zu 70% sparen durch Preisvergleich.
      Anzeige

Erschienen in LinuxUser 09/2004   »   Ausgabe bestellen

Drucker mit CUPS einrichten und im Netzwerk benutzen

Druck machen

von Martin Loschwitz


CUPS kann nicht nur dazu hergenommen werden, vom eigenen Rechner direkt auf den damit verbundenen Drucker zu drucken. Im heterogenen Netzwerk können Sie die Drucksuite auch verwenden, um Windows-Rechner mit einem Drucker an einem Linux-Rechner zu verbinden. Wir zeigen, wie das geht.

Drucken mit Linux war früher eine Katastrophe: Jede Distribution kochte ihr eigenes Süppchen und diejenigen, die Drucker unter SUSE Linux noch zum Funktionieren brachten, mussten bei Red Hat Linux oder Mandrake Linux das Handtuch werfen. Heute ist das glücklicherweise anders: Das Commmon Unix Printing System, kurz: CUPS, ist ein gänzlich neuer Ansatz und eine Universallösung zum Drucken mit Linux. CUPS hat die gängigen Linux-Distributionen geeint. Egal, ob SUSE, Fedora oder Mandrake und unabhängig davon, wie das grafische Tool zur Druckerkonfiguration aussieht -- im Hintergrund werkelt immer CUPS.

Und noch ein Problem hat CUPS gelöst: Weil es sowohl mit Samba oder allein als Druckerserver läuft, kann man mit einem Windows-Client einen Drucker an einer Linux- Maschine verwenden. Ein Linux-Computer im heterogenen Heimnetz wird so mit CUPS spielend leicht zum Printserver, der zusätzlich zu den Standard-Funktionen mit einem speziellen Treiber sogar noch natives PostScript-Printing direkt aus Dateien heraus erlaubt.

Die Konfiguration der einzelnen Programme beim Gespann aus Windows-Client und Linux-Drucker-Server ist -- abhängig von den Vorraussetzungen -- unterschiedlich: Windows 95, Windows 98 und Windows ME brauchen zum Druck übers Netz eine Samba-Anbindung; Windows 2000 und Windows XP können direkt über das Internet Printing Protocol, kurz IPP, an CUPS angebunden werden.

Als besondere Alternative für alle Betriebssysteme gibt es dann noch einen von Adobe bereitgestellten PostScript-Treiber. Jener wird auf dem Windows-System als Pseudo-Drucker installiert und greift dann per Netz auf den CUPS-Drucker zurück.

Wir werden im Folgenden erklären, wie Sie einen Drucker fit für den Einsatz in CUPS machen und wie Sie anschließend auf den Drucker von einem Windows-Client zugreifen. Zudem stellen wir Adobes PostScript-Treiber vor.

Die halbe Miete: CUPS einrichten

Zunächst gilt es, CUPS einzurichten und den Drucker zu konfigurieren. Hier ist das Etappenziel der erfolgreiche Probeduck direkt an dem Rechner, an dem der Drucker angeschlossen ist. Netzwerktechnik kommt hier noch nicht zum Einsatz.

Die folgende Anleitung beschreibt die universelle Methode, um bei allen Linux-Distributionen einen Drucker über CUPS einzurichten. Weil Distributionen wie SUSE, Fedora und Mandrake CUPS als Standard schon integriert haben, finden sich hier die entsprechenden Tools, um den Drucker automatisch zu erkennen und zu konfigurieren. Ob Sie Drucker über den hier beschriebenen Weg oder über die bekannten Programme der Distribution konfigurieren, bleibt Ihnen überlassen. Der nun gezeigte Weg funktioniert jedenfalls bei ausnahmslos jeder Distribution, die CUPS verwendet.

Vergewissern Sie sich zunächst, dass auf Ihrem System alle für CUPS relevanten Pakete vorhanden sind. Dazu zählen meist die Pakete, die die Begriffe cupsys und libcups im Namen haben. Zudem sollten Sie einen Treiber-Grundstock anlegen, die Pakete dafür haben foomatic im Namen. Wenn Sie einen Drucker des Typs Hewlett-Packard DeskJet oder OfficeJet verwenden, sollten Sie zudem das Paket hpijs installieren. Sie können mit dem Package-Tool Ihrer Distribution (YaST2 bei SUSE, RPMdrake bei Mandrake) einfach prüfen, ob die wichtigsten Pakete installiert sind und die Installation nachholen, falls Pakete fehlen.

Nun müssen Sie sicherstellen, dass alle erforderlichen Module in den Kernel geladen sind, damit der angeschlossene Drucker richtig erkannt wird. Öffnen Sie eine Konsole und werden Sie mit su zu root. Wenn Sie einen Drucker am paralellen Anschluss benutzen, führen Sie den Befehl modprobe lp aus. Bei einem USB-Drucker wird der Befehl modprobe printer (Kernel 2.4) und modprobe usblp (Kernel 2.6) fällig.

Schließlich müssen Sie sich noch eine sogenannte PPD-Datei für Ihren Drucker besorgen. PPD steht für PostScript Printer Description ; diese Art Datei enthält Informationen darüber, wie ein Drucker am einfachsten angesteuert werden kann, welcher Druckertreiber dafür der geeignetste ist und welche Fähigkeiten der Drucker überhaupt beherrscht. Man könnte die PPD-Dateien durchaus Drucker im CUPS-System nennen. Damit Ihr Drucker mit CUPS funktioniert, brauchen Sie also unbedingt eine PPD Datei, die zu Ihrem Drucker passt. Besuchen Sie am besten die Website des LinuxPrinting-Projekts (http://www.linuxprinting.org). Dort können Sie links unter Printer Listings Ihr Drucker-Modell wählen und dann beim Eintrag Recommended auf download PPD klicken. Speichern Sie die PPD-Datei einfach in Ihrem Home-Verzeichnis und kopieren sie als root in das CUPS-PPD-Verzeichnis (meistens /usr/share/cups/model). Veranlassen Sie CUPS schließlich mit dem Befehl kiillall -HUP cupsd, seine Konfigurationsdateien erneut einzulesen.

Nachdem Sie alle Vorraussetzungen getroffen haben, können Sie CUPS zum ersten Mal testen: Öffnen Sie in einem Webbrowser einfach die Adresse http://localhost:631/. Funktioniert CUPS ordnungsgemäß, sehen Sie die CUPS-Seite wie in Abbildung 1. Je nach Browser-Einstellung kann die Seite auch in Englisch erscheinen. Das ändert aber nichts an den Links, die Sie im Folgenden verwenden müssen.

cups1.png

Abb. 1: So sieht das Web-Interface von CUPS nach dem Login per HTTP aus.

Klicken Sie im Web-Konfigurationsmenü von CUPS auf den obersten Eintrag Einrichtungsaufgaben. Es erscheint eine Passwortfrage. Hier müssen Sie beim Benutzernamen root und beim Passwort das Passwort für den Superbenutzer root eingeben. Danach haben Sie vollen Zugriff auf die CUPS-Konfiguration. Sie kommen auf die Seite, die Admin heißt.

Jetzt gilt's: Den Drucker konfigurieren

Sie sehen auf der Administratorenseite drei Abschnitte. Hier ist besonders der untere Abschniss Drucker für Sie besonders wichtig. Klicken Sie auf Drucker hinzufügen. Sie sehen die erste Seite des Druckerdialogs. Geben Sie beim Feld Name den Namen ein, den der Drucker später im System haben soll. Sie dürfen in diesem Feld keine Leerzeichen verwenden, zur Trennung einzelner Abschnitte darf aber der Unterstrich ("_") verwendet werden, Als Name für einen HP DeskJet 880C können Sie zum Beispiel "HP_DESKJET_880C" schreiben. Standort sowie Beschreibung können nach Belieben ausgefüllt werden, hier sind auch Leerzeichen und andere Sonderzeichen erlaubt.

Im nächsten Dialog müssen Sie die Schnittstelle wählen, an die der Drucker angeschlossen ist. Klicken Sie auf das Dropdown-Menü und sehen nach, ob CUPS Ihren Drucker schon an einer Schnittstelle erkannt hat. Wählen Sie dann den entsprechenden Eintrag einfach aus und bestätigen mit Weiter.

Wählen Sie dann den Hersteller Ihres Druckers und bestätigen abermals mit Weiter. Im nächsten Dialog suchen Sie dann noch den Treiber aus, der zu Ihrem Drucker passt. Hier sollte auch der Treiber auftauchen, den Sie eigens per PPD-Datei in CUPS importiert haben. Sie wählen einfach diesen Eintrag. Die Erfolgsmeldung im nächsten Fenster beendet die Installation des Druckers. Wenn Sie nun oben rechts auf Drucker verwalten klicken, erscheint der kurz zuvor eingerichtete Drucker. Um sicherzugehen, dass er funktioniert, können Sie hier auch eine Testseite drucken.

cups2.png

Abb. 2: Nachdem der Drucker in CUPS korrekt eingerichet wurde, kann man sich unter "Drucker verwalten" sämtliche Optionen zeigen lassen.

Windows 95 und Windows 98: Samba ol'e!

Windows 95, 98 und ME unterstützen nicht das Drucken über IPP, wie es etwa Windows 2000 oder Windows XP tun. Das bedeutet aber nicht, dass Sie mit diesen Windows-Versionen nicht über einen Linux-Rechner drucken könnten; es bedarf lediglich eines kleinen Umwegs über Samba.

Es wird vorrausgesetzt, dass Sie bereits einen funktionierenden Samba haben, dass dieser Samba-Server in Ihr Netzwerk integriert ist und dass auch die Samba-Benutzerverwaltung mit Zugriffsrechten bereits funktioniert. Diese Einstellungen kann man mit dem Distributionstools für Samba ohne Probleme erledigen, zudem wird die Samba-Konfiguration in LinuxUser ## ab Seite ## ausführlich beschrieben.

Um Samba für den Einsatz mit CUPS fit zu machen, öffnen Sie als root in einem Terminal die Samba-Konfigurationsdatei (bei fast allen Distributionen /etc/samba/smb.conf). Suchen Sie zunächst den Eintrag [global]. Tragen Sie in diesen Abschnitt die folgenden Zeilen ein:

printing = cups
printcap name = cups
load printers = yes

Sollten einige der Einträge bereits vorhanden sein, ändern Sie diese so, wie im Beispiel beschrieben. Suchen Sie dann den Eintrag [printers] und fügen Sie die neuen Zeilen hinzu oder ändern die eventuell bereits vorhandenen Einträge so, dass der Eintrag am Ende so aussieht:

comment = All Printers
path = /var/spool/samba
browseable = no
public = yes
guest ok = yes
writable = no
printable = yes
printer admin = root

Suchen Sie in der smb.conf dann nach der Zeile, die mit invalid users = anfängt. Normalerweise steht hinter dem "=" root. Um Samba erstmals mit CUPS zu verbinden, muss root das Kommando cupsaddsmb -a ausführen. Dazu muss sich der Superuser aber erst einmal mit Samba verbinden können -- entfernen Sie also das root hinter dem Gleichheitszeichen.

Fügen Sie schließlich am Ende der Datei den folgenden Eintrag hinzu:

[print$]
comment = Printer Drivers
path = /etc/samba/drivers
browseable = yes
guest ok = yes
read only = yes
write list = root

Haben Sie diese Dinge in der smb.conf geändert, gespeichert und die Datei wieder geschlossen, sollten Sie Samba neu starten. Dann kommt der schon erwähnte Befehl: Führen Sie als root auf der Konsole den Befehl cupsaddsmb -a aus, um die CUPS-Drucker mit Samba zu verbinden. Danach erscheint der Drucker in Samba.

CUPS ist in der Standardkonfiguration darauf trainiert, von Druckern nur so genannte Raw data -- also "Rohdaten" -- anzunehmen. Das Formatieren vor dem Druck erledigt CUPS dann selbst. Da Sie unter Windows 98 sowie Windows ME aber einen passenden Treiber für den Drucker installieren müssen, kommen die Daten bei CUPS nicht mehr im Raw-Format an, sondern sind schon vorformatiert. Damit CUPS die Daten zum Drucken trotzdem ohne Murren akzeptiert, hilft ein Trick. Öffnen Sie als root die MIME-Einstellungsdateien von cupsd (diese sind bei nahezu allen Distributionen /etc/cups/mime.convs sowie /etc/cups/mime.types). In mime.convs steht eine Zeile, die so aussieht -- oder zumindest sehr ähnlich:

#application/octet-stream       application/vnd.cups-raw        0       -

Zusätzlich ist in mime.types die folgende Zeile zu beachten:

#application/octet-stream

Entfernen Sie in den zwei Dateien jeweils die # am Anfang dieser beiden Zeilen. Danach starten Sie CUPS-System neu; falls Sie nicht auf Anhieb wissen, wie das funktioniert, hilft im Notfall auch ein Reboot des Rechners.

Dichten Sie nun noch Ihre Samba-Installation wieder ab: Öffnen Sie wie eben die smb.conf und fügen in der Zeile invalid users nach dem "=" den Eintrag root wieder ein.

Die Gegenseite: der Drucker unter Windows

Das Einrichten des Druckers unter Windows 95, 98 oder ME erfolgt nach dem von Windows bekannten Schema. Öffnen Sie den Arbeitsplatz, dort klicken Sie auf Drucker. Klicken Sie auf Drucker hinzufügen und folgen den Schritten des Einrichtungs-Assistenten. Wählen Sie Netzwerkdrucker und klicken auf Durchsuchen. Suchen Sie dort den Rechner, an dem der Drucker angeschlossen ist und wählen diesen aus. Ignorieren Sie eventuelle Hinweise darüber, dass Druckertreiber vom Samba-Server auf Ihren Rechner installiert werden -- weil Sie den Windows-Treiber für den Drucker verwenden, ist diese Funktion für Sie uninteressant. Halten Sie eine Treiber-CD für den Drucker bereit, denn im nächsten Schritt wird Windows einen Treiber für den Drucker verlangen. Selbstverständlich können Sie auch einen bereits vorhandenen Treiber benutzen, falls dieser in der Treiberliste auftaucht. Drucken Sie am Ende des Prozesses die Testseite.

Windows 2000 und Windows XP: Ohne hosts geht nichts

Drucker-Sharing zwischen Linux und Windows ist seit Windows 2000 wesentlich bequemer, denn Windows 2000 beherrscht das IPP; und ebenso kann Windows XP mit dem neuen Standard umgehen. Der Umweg über Samba ist somit Geschichte. Auch hier sind aber einige kleine Tricks notwendig, damit der Druck am Ende funktioniert.

Bevor man bei Windows 2000 und Windows XP überhaupt mit dem Setup des Druckers beginnen kann, müssen Sie einen Bug umschiffen. Theoretisch soll es möglich sein, bei der Druckerinstallation unter Windows an der Stelle, an der man den Pfad zum Drucker im Netzwerk angibt, als Adresse für den CUPS-Rechner eine IP-Adresse zu verwenden. Windows 2000 und Windows XP zeigen aber nur eine Fehlermeldung an, wenn man an dieser Stelle eine IP-Adresse angibt. Lösen lässt sich das Problem, indem man den Hostnamen des Rechners angibt. Weil aber die wenigsten in ihrem Heimnetz einen eigenen Nameserver haben, der den Hostname in eine IP umwandeln könnte, muss man Windows erst sagen, welche IP sich hinter dem Hostname des CUPS-Servers verbirgt. Das geht genauso wie bei Linux mit einer Datei namens hosts.

Öffnen Sie im Explorer das Verzeichnis C:\WINNT\SYSTEM32\DRIVERS\ETC\ bei Windows 2000 und C:\WINDOWS\SYSTEM32\DRIVERS\ETC\ bei Windows XP. Dort finden Sie eine Datei namens hosts. Öffnen Sie diese Datei in Notepad. Tragen Sie am Ende der Datei eine passende Zeile für den Rechner ein, auf dem der CUPS-Server läuft. Ist der Hostname dieses Rechners zum Beispiel "minerva" und die IP 192.168.0.1, lautet der korrekte neue Eintrag:

192.168.0.1 minerva

cups4.png

Abb. 3: Auch unter Windows gibt es die von Linux schon bekannte "hosts"-Datei, in der Rechnernamen und IP-Adressen verbunden werden.

Achten Sie auf die korrekte Schreibweise bei diesem Eintrag -- von ihm hängt später ab, ob das Einrichten eines Netzwerkdruckers funktioniert.

CUPS: Türsteher beim Internet Printing Protocol

Beim Einsatz über das IPP verbindet sich der Drucker-Client direkt mit dem CUPS-Server über das HTTP-Protokoll. In der Standardkonfiguration geht CUPS aber auf Nummer sicher und erlaubt solche Verbindungen nur von localhost, also von dem Rechner, auf dem CUPS selbst läuft. Das ist natürlich hinderlich, wenn Sie von einem anderen Drucker im Netzwerk auf dem CUPS-Server drucken wollen. Deswegen müssen Sie CUPS so einrichten, dass es Verbindungen auch von anderen Computern annimmt. Öffnen Sie dazu als root die Datei /etc/cups/cupsd.conf. Suchen Sie die Zeile mit der Zeichenkette <Location /> am Anfang. Bei Debian sieht diese so genannte "Directive" so aus:

<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>

Um Clients im lokalen Netz das Drucken zu ermöglichen, müssen Sie einen "Allow"-Eintrag für das Netzwerk einfügen, der dieselbe Form hat wie der letzte Eintrag im Beispiel, aber für den IP-Bereich in Ihrem Netzwerk gilt. Dabei dürfen Wildcards benutzt werden. Wenn Sie in Ihrem Heimnetzwerk also den Adressraum 192.168.1.* verwenden, dann sieht die passende "Allow"-Zeile so aus:

Allow From 192.168.0.*

Fügen Sie diese Zeile in die cupsd.conf am Ende des Directive, aber vor der Zeile mit "</Location>" ein. Speichern Sie die geänderte Datei.

Schließlich müssen noch zwei Änderungen am CUPS-System gemacht werden, damit der Drucker die Dateien, die Windows-Clients ihm schicken, auch als solche identifiziert. Sie müssen die beiden Zeilen in der mime.convs und der mime.types -- wie im Abschnitt zu Windows 95, 98 und ME beschrieben -- ändern. Ist das geschehen, starten Sie das CUPS-System neu.

Windows 2000: Klassenkampf

Um einen Fehler in der IPP-Verwertung von Windows 2000 zu umgehen, ordnen Sie den Rechner in dem schon aus Abbildung 1 bekannten Web-Interface in eine "Druckerklasse" ein. Öffnen Sie das Web-Interface, klicken auf Einrichtungsaufgaben und dann auf Klasse hinzufügen. Machen Sie die Angaben, die dort verlangt werden. Beim Namen gilt wiederum, dass dieser keine Leer- und keine Sonderzeichen enthalten darf (zum Beispiel "Klasse"). In allen anderen Feldern sind der Fantasie keine Grenzen gesetzt. Wählen Sie im darauf folgenden Dialog den Drucker aus, den Sie zu Anfang konfiguriert haben (normalerweise wird dieser Drucker sowieso der einzige in der Liste sein). Nach einem Klick auf Weiter ist der Vorgang abgeschlossen.

Nun erfolgt die Konfiguration des Druckers in Windows 2000. Starten Sie den bekannten Dialog zum Hinzufügen von Druckern. Wählen Sie während des Dialogs den Druckertyp Netzwerkdrucker und im dann folgenden Dialog den Typ Verbindung mit einem Drucker im Internet oder Heim/Firmennetz herstellen. Geben Sie im Feld URL die URL zum Drucker auf dem CUPS-System ein. Dieser muss die Form "http://Hostname des Rechners:631/classes/Klassenname" haben. Wenn Ihr CUPS-Rechner also "minerva" heißt und Sie die Druckerklasse, die Sie in CUPS eingerichtet haben, "Klasse" genannt haben, wäre hier der korrekte Eintrag http://minerva:631/classes/Klasse. Halten Sie die Treiber für den Drucker parat, damit Windows sie im nächsten Schritt verwenden kann. Am Ende des Prozesses sollte der Drucker eine Testseite ohne Murren auswerfen.

Windows XP: Geht doch!

Windows XP ist die einzige Windows-Version, bei der das Drucken über IPP bis auf den kleinen Schnitzer mit der hosts-Datei problemlos funktioniert. Deswegen ist das Einrichten hier beinahe schon trivial. Nachdem Sie CUPS so wie oben beschrieben vorbereitet haben, starten Sie einfach den Dialog zum Hinzufügen neuer Drucker. Wählen Sie als Druckertyp Netzwerkdrucker und im nächsten Dialog wie bei Windows 2000 den Eintrag Verbindung mit einem Drucker im Internet oder Heim/Firmennetz herstellen. Geben Sie im Feld URL den Pfad des Druckers auf dem CUPS-Server ein. Bei Windows XP setzt sich dieser zusammen aus "http://Hostname des Rechners:631/printers/Drucker". Heißt Ihr CUPS-Server "minerva" und Sie haben den Drucker bei Schritt 1 mit dem Namen HP_DESKJET_880C versehen, so wäre der korrekte Eintrag in diesem Falle http://minerva:631/printers/HP_DESKJET_880C. Halten Sie auch hier den passenden Windows-Treiber für Ihren Drucker bereit. Schließen Sie den Drucker-Wizzard ab -- auch hier sollte der erfolgreiche Druck einer Testseite der Lohn für die Mühe sein.

cups3.png

Abb. 4: So sieht der Dialog zum Einrichten eines Netzwerkdruckers bei Windows XP aus. Es ist wichtig, den Eintrag "Verbindung mit einem Drucker ..." auszuwählen, da nur dieser auf IPP zurückgreift.

Extrawurst: Adobes PostScript-Treiber

Es gibt noch eine weitere Möglichkeit, sämtliche Windows-Betriebssysteme über IPP an CUPS anzuschließen -- Adobes PostScript-Treiber. Zur Erklärung: PostScript ist ein international standardisiertes Dateiformat für Drucker. Vor allem professionelle Industrie-Drucker verstehen das PostScript-Format, so dass man PostScript-Dateien wie große Poster und Bilder direkt an den Drucker schicken kann. Ein Qalitätsverlust durch Formatumwandlungen bleibt aus. Wir stellen diese Lösung aber trotzdem nur als zweite Wahl vor, weil sie auch einige Nachteile hat: Zunächst unterstützt Adobes Treiber nicht alle Funktionen, die der PostScript-Standard vorgibt. Außerdem bekommt man den Treiber nur im Internet, die Standard-Methoden funktionieren aber bei allen Windows-Versionen mit Bordmitteln. Und schließlich scheint der Adobe-Treiber zumindest mit Windows XP nicht problemlos zu funktionieren, denn der während der Installation angelegte Pseudo-Drucker wird von Windows nur als Schwarz-Weiß-Gerät erkannt. Wer den Treiber trotzdem ausprobieren möchte, weil er zum Beispiel eine PostScript-Datei hat, die er gerne ausdrucken möchte (mit handelsüblichen Low-Budget-Druckern ist das meist nicht möglich), geht wie folgt vor:




Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2010 Linux New Media AG | Last modified: 2008-04-22 13:59

[Linux-Magazin] [LinuxUser] [EasyLinux] [Linux-Community] [Ubuntu User] [Linux Technical Review] [Linux Magazine] [Linux Pro Magazine] [Ubuntu User]
[EasyLinux Poland] [Linux Magazine Poland] [Linux Magazine Brasil] [EasyLinux Brasil] [Linux Magazine Spain]