Drucker-Probleme mit SuSE Linux 8.0

Supportdatenbank (jsmeix_print-80-probleme)
Bezieht sich auf

SuSE Linux: Version 8.0

Index

Wechsel zu CUPS
Drucken via Samba
Drucken auf einem Novell-Server
Drucken mit StarOffice

Wechsel zu CUPS

Symptom

Wenn Sie mit YaST2 vom Standarddrucksystem zu CUPS wechseln, erhalten Sie eine Meldung bzgl. Paketkonflikten mit dem Hinweis, dass Sie normalerweise "ohne sich darüber Gedanken zu machen" fortfahren können.
Hier dürfen Sie aber keinesfalls fortfahren, sonst wird CUPS nicht funktionieren.

Ursache

Zur Unterstützung einiger sog. GDI-Drucker wurde noch das Paket "filters" zum standardmäßigen Installationsumfang hinzugenommen.
Dieses Paket benötigt das Paket "lpdfilter" und dieses wiederum benötigt das Paket "lprng".
Der Standarddruckerfilter "lpdfilter" muss nicht neben CUPS installiert sein.
Der Standarddruckerspooler "lprng" darf nicht neben CUPS installiert sein.
Statt "lprng" muss das Paket "cups-client" installiert werden.

Lösung

Bevor Sie mit YaST2 vom Standarddrucksystem zu CUPS wechseln, deinstallieren Sie das Paket "filters" entweder mit YaST2 oder als Benutzer "root" auf der Kommandozeile mit
rpm -e --nodeps filters

Drucken via Samba

Symptom

Sie verwenden das Standarddrucksystem und haben mit YaST2 eine Warteschlange für einen Samba/Windows-Drucker eingerichtet (d.h. der Drucker hängt dann normalerweise an einem Windows-Rechner).
Obwohl Sie den Rechnernamen des Samba-Servers und den Namen der entfernten Warteschlange (d.h. den Namen des Samba-Shares) sowie Benutzer und Passwort richtig eingegeben haben, erhalten Sie keinen Ausdruck.
Wenigstens eine dieser Angaben enthält aber Sonderzeichen oder Leerzeichen.

Ursache

Sonderzeichen oder Leerzeichen werden nicht korrekt behandelt.

Direkte Tests ohne Verwendung des Drucksystems

Sie können die grundlegende Funktion mit folgendem Befehl, der in einer einzigen Zeile einzugeben ist, testen

echo -en "" | smbclient "//HOST/SHARE" "PASSWORD" -c 'print -' -N -U "USER" && echo "OK" || echo "ERROR"
wobei Sie für HOST den Rechnernamen des Samba-Servers, für SHARE den Namen der entfernten Warteschlange, für PASSWORD das Passwort und für USER den Benutzernamen einsetzen.
Hierbei wird nur getestet, aber nicht wirklich gedruckt.
Achten Sie auf die Ausgabe, ob OK oder ERROR kommt.
War der Test erfolgreich, dann sollte mit
echo -en "\rHallo\r\f" | smbclient "//HOST/SHARE" "PASSWORD" -c 'print -' -N -U "USER"
ein Blatt mit dem Wort Hallo ausgedruckt werden.
Voraussetzung ist, dass der Drucker ASCII-Text (hier das Wort Hallo umgeben von dem ASCII-Zeichen \r für Wagenrücklauf und gefolgt von dem ASCII-Zeichen \f das einen Seitenvorschub auslöst) drucken kann - vergl. den Artikel Drucker einrichten

Lösung

War zumindest der erste der obigen Tests erfolgreich, dann edieren Sie die Datei
/etc/lpdfilter/QUEUE/redirect
wobei Sie für QUEUE den Namen Ihrer lokalen Warteschlange einsetzten, so dass nur eine einzige Zeile mit folgendem Inhalt vorhanden ist:

/usr/lib/lpdfilter/redirect/samba_print "//HOST/SHARE" "PASSWORD" -U "USER" -N
wobei Sie wie oben HOST, SHARE, PASSWORD und USER ersetzen.
Prüfen Sie sicherheitshalber danach, ob die Rechte dieser Datei passend gesetzt sind, nämlich:
-rwxr-x--- ... lp ...

Drucken auf einem Novell-Server

Symptom

Sie verwenden das Standarddrucksystem und haben mit YaST2 eine Warteschlange für einen Novell-Drucker eingerichtet (d.h. der Drucker hängt dann normalerweise an einem Novell-Server).
Obwohl Sie das Paket "ncpfs" installiert haben und Rechnernamen und Warteschlange des Novell-Servers sowie Benutzer und Passwort richtig eingegeben haben, erhalten Sie keinen Ausdruck.

Ursache

Die Konfigurationsdatei
/etc/lpdfilter/QUEUE/redirect
die den lpdfilter veranlasst, dessen Ausgabe an den Novell-Server weiterzuleiten, wird völlig falsch erzeugt.
Hierbei ist QUEUE durch den Namen Ihrer lokalen Warteschlange zu ersetzen.

Direkte Tests ohne Verwendung des Drucksystems

Sie können die grundlegende Funktion mit folgendem Befehl, der in einer einzigen Zeile einzugeben ist, testen

echo -en "" | nprint -S HOST -q QUEUE -U USER -P PASSWORD - && echo "OK" || echo "ERROR"
wobei Sie für HOST den Rechnernamen des Novell-Servers, für QUEUE den Namen der entfernten Warteschlange, für USER den Benutzernamen und für PASSWORD das Passwort einsetzen.
Hierbei wird nur getestet, aber nicht wirklich gedruckt.
Achten Sie auf die Ausgabe, ob OK oder ERROR kommt.
War der Test erfolgreich, dann sollte mit
echo -en "\rHallo\r\f" | nprint -S HOST -q QUEUE -U USER -P PASSWORD -
ein Blatt mit dem Wort Hallo ausgedruckt werden.
Voraussetzung ist, dass entweder der Drucker ASCII-Text direkt drucken kann (siehe oben) oder dass zumindest die Novell-Warteschlange QUEUE entsprechend eingerichtet ist.

Lösung

War zumindest der erste der obigen Tests erfolgreich, dann edieren Sie die Datei
/etc/lpdfilter/QUEUE/redirect
wobei Sie für QUEUE den Namen Ihrer lokalen Warteschlange einsetzten, so dass nur eine einzige Zeile mit folgendem Inhalt vorhanden ist:

/usr/lib/lpdfilter/redirect/novell_print -S HOST -q QUEUE -U USER -P PASSWORD -
wobei Sie wie oben HOST, QUEUE, USER und PASSWORD ersetzen.
Prüfen Sie sicherheitshalber danach, ob die Rechte dieser Datei passend gesetzt sind, nämlich:
-rwxr-x--- ... lp ...

Hinweise

Achten Sie bei der Installation des Paketes "ncpfs" darauf, dass danach "SuSEconfig" läuft und dass dabei "/etc/permissions.easy" verwendet wird, wodurch folgende Zugriffsrechte eingestellt werden:

-rwsr-xr-x  root  root  /usr/bin/ncpmount
-rwsr-xr-x  root  root  /usr/bin/ncpumount
-rwsr-xr-x  root  root  /usr/bin/nwsfind
Andernfalls können normale Benutzer nicht mittels "nprint" drucken ("nprint" ruft seinerseits "nwsfind" auf), sondern nur "root" und die Benutzer, die der Gruppe "trusted" angehören.

Zusätzlich fehlt noch folgender Link im Paket "ncpfs", den Sie als Benutzer "root" auf der Kommandozeile mit
cd /usr/lib/
ln -s libncp.so.2.3.0 /usr/lib/libncp.so.2.3
anlegen müssen, denn "nprint" sucht nach "/usr/lib/libncp.so.2.3".

Drucken mit StarOffice

Symptom

Sie verwenden einen Drucker, der nicht mit einer Auflösung von 300 dpi arbeitet oder nicht das Papierformat A4 verwendet und normalerweise funktioniert auch das Drucken, nicht aber bei StarOffice-Dokumenten.
Sie verwenden in StarOffice wie empfohlen den generischen Drucker.
Insbesondere mit CUPS funktioniert es nicht.

Ursache

StarOffice fügt in die PostScript-Druckausgabe Zeilen folgender Art ein:

%%BeginFeature: *Resolution 300dpi
1 dict dup /HWResolution [300 300] put setpagedevice
%%EndFeature
%%BeginFeature: *PageSize A4
<</PageSize [595 842] /ImagingBBox null>> setpagedevice
%%EndFeature
Diese legen mit PostScript-Befehlen die Auflösung auf 300 dpi und die Seitengröße auf A4 fest, so daß es eigentlich nur für Drucker funktioniert, die das auch so verwenden.

Derartige Festlegungen sind unpassend für einen generischen Drucker. Beim generischen Drucker hat der PostScript-Code hardwareunabhängig zu sein.
Ein Anwendungsprogramm muß natürlich die Druckausgabe in einer gewissen Auflösung und für eine gewisse Seitengröße erstellen, aber es ist unnötig, das auch im PostScript-Code festzusetzten.

Insbesondere mit CUPS funktioniert es nicht, da bei CUPS derartige Einstellungen im PostScript-Code an Ghostscript weitergegeben werden - anders als beim LPRng/lpdfilter Drucksystem, das Ghostscript nur mit den Einstellungen gemäß der Druckerkonfiguration aufruft, wodurch zumindest bei manchen Ghostscript-Treibern die Festlegungen im PostScript-Code nicht ausgewertet werden.

Lösung

Stellen Sie in StarOffice im Druckerdialog die Eigenschaften des generischen Druckers passend ein (Resolution und Papiergröße).

Natürlich ist es unangenehm, wenn Sie wechselweise Drucker mit verschiedenen Auflösungen verwenden, denn dann müssen Sie zum einen die korrekten Druckerauflösungen kennen (entweder 300 dpi oder 360 dpi sollten zumeist funktionieren) und zum anderen müssen Sie jedesmal passend umstellen.
Da StarOffice "binary only" ist, können das nicht wir in StarOffice korrigieren. Bitte wenden Sie sich daher direkt an den Hersteller von StarOffice.
Im Prinzip würde eine Anpassung der von StarOffice für den generischen Drucker verwendeten PPD-Datei /opt/office52/share/xp3/ppds/SGENPRT.PS genügen, aber dann gab es Abstürze von StarOffice beim Drucken, wenn überhaupt keine Auflösung gesetzt war.


Siehe auch:
o Drucker einrichten ab SuSE Linux 8.0
o Drucken mit CUPS
o Bekannte Probleme und Besonderheiten in SuSE Linux 8.0

Stichwörter: DRUCKER, DRUCKEN, 8.0, 80, CUPS, YAST2, SAMBA, NOVELL, STAROFFICE, OFFICE

Kategorien: Fragen und Antworten , Dokumentation , Drucker

Feedback willkommen: Send Mail to jsmeix@suse.de (Geben Sie bitte folgendes Stichwort an: SDB-jsmeix_print-80-probleme)
SDB-jsmeix_print-80-probleme, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 15. Apr 2002
SuSE Linux AG - Zuletzt generiert: 13. Jun 2002 von jsmeix (sdb_gen 1.40.0)