Beein-druckend
Printserver mit Samba
Automatische Installation eines generischen Druckertreibers vom Server
Die Samba-seitigen Voraussetzungen zur Freigabe eines Linux-Druckers für Windows-Clients sind jetzt erfüllt. Wenden wir uns jetzt noch einmal den eingangs angedeuteten Szenarien und damit der Frage zu, wer die Aufbereitung der Druckdaten übernehmen soll (Client oder Server), also den eigentlichen Druckertreiber bereitstellt, und wie die automatische Installation eines generischen Postscript-Treibers funktioniert, falls der Server die Druckdaten aufbereiten soll. Im Übrigen ist es in beiden Szenarien möglich, die benötigten Treiber zur automatischen Installation auf dem Linux-Server zur Verfügung zu stellen. Trotzdem ist die automatische Treiberinstallation lediglich das Sahnehäubchen des Netzwerkdrucks. Drucken können Sie auch ganz ohne Automatismen. Sobald Sie aber die erforderlichen Treiber vor dem ersten Druckversuch auf dem Server zur Verfügung stellen, wird der Treiber vom Samba-Server geladen und automatisch im Hintergrund installiert. Dazu müssen Sie eine Sektion [print$] in die Samba-Konfiguration einfügen, die etwa so aussehen sollte:
[print$] comment = Drucker-Treiber auf dem Server path = /usr/share/samba/drivers browseable = yes guest ok = yes read only = yes write list = root
In diesem Beispiel werden die erforderlichen Treiberdateien unter /usr/share/samba/drivers allen Clients zur automatischen Installation zur Verfügung gestellt. Alle Benutzer dürfen die erforderlichen Druckertreiber vom Server herunter laden. Mit den beschriebenen Anpassungen existieren zwar jetzt die eigentlichen Druckerfreigaben, die jeweiligen Drucker sind aber noch nicht mit einem Treiber verbunden, so dass Windows immer noch zur Installation eines Druckertreibers auffordert, sobald Sie die Freigabe anklicken. Jetzt müssen Sie aber im Gegensatz zum obigen Beispiel mit Nein antworten, damit sich der Dialog für Drucker Eigenschaften öffnet. Hier können Sie mit Hilfe der Option Neuer Treiber den neuen Druckertreiber vom Linux-/CUPS-Server installieren, der im freigegebenen Verzeichnis [print$] zur Verfügung steht.
Fazit
Im Grunde genommen ist das Freigeben eines Linux-Druckers über Samba mit wenigen Handgriffen erledigt. In der Sektion [global] werden lediglich der Print-Server aktiviert und das verwendete Drucksystem sowie die Lage der Spool-Verzeichnisse spezifiziert. Unter [printers] geben Sie alle lokal am Linux-Server verfügbaren Drucker automatisch frei. Zur gezielten Freigabe eines einzelnen Druckers richten Sie eine separate Sektion mit dem Namen des betreffenden Druckers (z. B. [lp]) ein. Eine Sektion [print$] kennzeichnet den Pfad zu den verschiedenen Druckertreiber-Verzeichnissen, falls Sie diese auf dem Server bereit halten wollen. Für die Installation des Druckertreibers am Client gibt es mehrere Möglichkeiten. Sie können einen generischen Postscript-Treiber verwenden und beziehen diesen vom Samba-Server, wenn dieser die Aufbereitung der Druckdaten übernehmen soll. Falls der Client die Druckdaten selbst erzeugen soll, können Sie den nativen Windows-Treiber für lokal installieren oder ebenfalls vom Server beziehen (Parameter: "printer driver location").
Kasten 1: Trouble Shooting
Sollte das Drucken zwar am Linux-Server, also unter Linux problemlos funktionieren, nicht aber unter Samba, sollten Sie zunächst die angepasste Datei smb.conf auf Syntaxfehler und Kommentare überprüfen. Außerdem können Sie das Samba-Kommando
testparm /etc/smb.conf
ausführen und nach Fehlerausgaben suchen. Mit testparm können Sie außerdem die Standardwerte aller Parameter einsehen. Zusätzlich muss sichergestellt sein, dass die Gerätedatei /dev/null für sämtliche Benutzer schreibbar ist, denn Samba benutzt sie. Das erreichen Sie mit
chmod a+w /dev/null
Hier noch ein kleiner Hinweis für Benutzer von Postscript-Druckern: Falls Ihr Drucker statt der gewünschten Grafik nur Postscript-Code ausgibt, ergänzen Sie in ihrer Samba-Konfigurationsdatei den Parameter
postscript = yes
Kasten 2: Verwendung des CUPS-Postscript-Treibers
Falls Sie CUPS verwenden und die Druckdaten auf Server-Seite, also von CUPS, gefiltert werden sollen, können Sie auch den CUPS-Postscript-Treiber für die Clients verwenden. Dazu muss das Paket cups-samba installiert sein. SuSE liefert dieses Paket mit. Anschließend müssen Sie als root das mitgelieferte Skript cups-samba.install aufrufen, wodurch die Treiber in die zugehörigen Verzeichnisse unter /usr/share/cups/drivers kopiert werden. Danach rufen Sie das Programm cupsaddsmb auf, als Parameter erwartet es die Namen des Samba-Servers und des CUPS-Servers, also etwa:
cupsaddsmb -H NameSamba-Server -U root -h Name-cupsServer
Bei Verwendung von cupsaddsmb müssen CUPS und cups-samba in der gleichen Version installiert sein.



