3.6.2007

Drucken unter Linux

default

 

Drucken unter Linux

Mein Drucker hatte einen Papierstau genau unter dem Druckkopf. Anschließend konnte ich auch nach mehrfachem "Reinigen" nichts mehr lesbar drucken. Offenbar war der Druckkopf empfindlicher als ich dachte.

Jetzt habe ich einen "Epson Stylus D68". Natürlich hatte ich vor dem Kauf bei http://www.linuxprinting.org/ nachgesehen, ob er "unterstützt" wird. Aber mein Drucksystem erwies sich als nicht aktuell genug für diesen Drucker, ich mußte also neue Programme installieren.

Die Distributionen verwenden alle CUPS von http://www.cups.org/ und Foomatic von http://www.linuxprinting.org/foomatic.html . Das sind tolle Programme, und das Einrichten eines Druckers ist ein Kinderspiel damit. Beide verlassen sich aber offenbar darauf, daß die Distributions-Entwickler noch etwas Arbeit hineinstecken.

Ich installierte mir CUPS und Foomatic, und als Druckertreiber Gutenprint von http://gutenprint.sourceforge.net/index.php3 (vormals "Gimp-Print"), alles aus den Source-Tarballs. Das Frontend über den Webbrowser ist wirklich einfach zu bedienen. Aber dann, beim ersten Versuch zu drucken, tat sich absolut gar nichts, keine Fehlermeldung, keine blinkenden Lämpchen, nichts, der Drucker rührte sich nicht. Mein Linux druckte ins Nirwana, eine gute Gelegenheit, mehr über das Drucksystem zu lernen.

 

Was ist ein Drucksystem

Die Programme, die drucken möchten, oder man selbst, oder der Filebrowser, rufen den Spooler auf: lpr -P<printer> <datei>, bzw. schicken ihm die Druckdaten in einer Pipe: | lpr -P<printer>.

druck1
Der User läßt eine Spooldatei (Zwischendatei) anlegen

Wenn man in seinem Drucksystem ein Magic-Filter hat, kann man beliebige Dateien auf sein Drucker-Icon auf dem Desktop ziehen, und sie werden gedruckt. Von Windows war man es bisher gewohnt, daß nur Anwendungen drucken können, nicht der User einfach so.

Der Scheduler läuft mit etwas mehr Rechten im Hintergrund und wartet auf Spooldateien ("Jobs"). Wenn er eine findet, ruft er das Magicfilter auf und übergibt die Datei. Das Magicfilter sieht sich die Druckerkonfiguration an (Papierformat, Qualität, Farbe) und ermittelt den Dateityp. Dann ruft das Magicfilter ggfs. ein passendes Umwandlungsprogramm auf, das die Druckdaten erstmal in Postscript umwandelt.

Wenn ich einen Postscript-Drucker hätte, könnte das Magicfilter anschließend die Druckdaten einfach in die Device-Datei schieben (/dev/lp0 bzw. in meinem Fall /dev/usb/lp0). Da ich mir aber nur einen preiswerten Rasterdrucker leisten kann, muß das Postscript in die entsprechende Druckersprache umgewandelt werden. Das macht Ghostscript von http://www.ghostscript.com/ oder die GPL-Version von http://www.cups.org/espgs/. Die GPL-Version ist tatsächlich nur eine etwas ältere Version. Ghostscript macht also aus Postscript ein Rasterbild, z.B. in der Sprache "Escape P" (für Epson) oder "PCL" (für HP).

druck2
Der Scheduler läßt die Spooldatei umwandeln in die Druckersprache und schiebt sie ins Druckdevice

Von da an ist das Kernel zuständig. In meinem Fall der USB-Printer-Treiber, vorher der Treiber für die parallele Schnittstelle "parport".

 

Wenn es aber nicht funktioniert, was dann

Ich mußte dringend meine Steuererklärung ausdrucken, deshalb hatte ich als Notlösung auf einem alten Windowsrechner den neuen Drucker installiert (mit der beiliegenden CD-Rom) und die Druckdateien übers LAN geholt. Anders ging es erstmal nicht.

Inzwischen kann ich immerhin mit den Programmen und Anwendungen "in eine Datei drucken", d.h. eine Postscript-Datei erzeugen ("druck.ps"). Und dann kann ich mit einem Ghostscript-Aufruf von der Kommandozeile aus die Postscript-Datei in Rasterdaten umwandeln und in das Druckdevice schieben. Für diesen zweiten Schritt muß ich in einem Textfenster "root" sein.

Im Augenblick habe ich also keinen Spooler/Scheduler laufen und auch kein Magicfilter. Ich habe nur Ghostscript und die Druckertreiber von Gutenprint. Die sind besonders für Epson optimiert. Für HP müßte man wohl "hpijs" nehmen, von http://hplip.sourceforge.net/ .

Der Ghostscript-Aufruf sieht im Augenblick so aus (das ist noch stark verbesserungsfähig):

gs -q \
-sDEVICE=ijs \
-sIjsServer=/usr/bin/ijsgutenprint.5.0 \
-sDeviceManufacturer=EPSON \
-sDeviceModel=$DRIVER \
-dBATCH -dNOPAUSE \
sPAPERSIZE=$PAPER \
-sOutputFile=$DEVICE \
"$FILE" \
2>/dev/null

Der Übersichtlichkeit halber sind es hier mehrere Zeilen (der Ausdruck "\<lf>" wird als "Whitespace" interpretiert). $DRIVER ist bei mir "escp2-d68", $DEVICE ist "/dev/usb/lp0", $PAPER ist "a4", $FILE ist die Postscript-Datei. "2>/dev/null", d.h. Fehlermeldungen ungelesen entsorgen, macht man natürlich erst, wenn es funktioniert.

Abgesehen von der Flut an Optionen im Ghostscript-Aufruf war bisher am schwierigsten die Identifikation des Druckertreibers: "/usr/bin/ijsgutenprint.5.0 mit escp2-d68". So weit ich es verstanden habe, muß das Plugin-Protokoll "ijs" in Ghostscript einkompiliert sein, damit man ijsgutenprint verwenden kann. "escp2-d68" ist dann ein Parameter für ijsgutenprint.

Bei Gutenprint ist (für Epsondrucker) ein kleines Programm dabei: "escputil", mit dem man abfragen kann, wie der Drucker sich selbst nennt und wie der Gutenprint-Treiber dafür heißt:

Drucker identifizieren: escputil -q -r /dev/usb/lp0 -d

Treiber identifizieren: escputil -q -M

Status und Tintenfüllstand: escputil -q -r /dev/usb/lp0 -s

 

Mein vorläufiges Testergebnis mit dem Epson Stylus D68

Epson war - als Druckerhersteller gesehen - schon mal wesentlich besser. Zur Zeit der Nadeldrucker strahlte ein Epson-Drucker Qualität und Kompetenz aus. Heute fühlt sich ein Epson-Drucker an wie Geiz, Schikane und wertloses Plastikspielzeug. Er druckt sehr hübsch, das gebe ich zu, aber verdammt teuer. Ich ärgere mich jedesmal ein bißchen, wenn ich damit drucke. Beim nächsten Mal ist bei mir ein anderer Hersteller dran.

Die Single-Ink-Patronen (getrennt für Cyan, Magenta, Yellow und Black) kommen dem allgemein gestiegenen Umwelt- und Sparbewußtsein entgegen - im Prinzip. Wenn sie nur nicht so furchtbar wenig Tinte enthielten. Früher hat man immer ein kleines bißchen Tinte umsonst weggeworfen, heute kauft man für wenige Milliliter Tinte ein Plastikgehäuse mit Elektronik. Das ist auch nicht so richtig ökologisch gedacht von Epson.

Mit der ersten Bestückung wird, wie Epson es nennt, "der Druckkopf gefüllt". Bunt war anschließend auf 80%, Schwarz auf 48%. Ich glaube nicht, daß das wirklich nötig ist. Ich glaube, da haben sie kalkuliert: Wieviel werden die User wohl gerade noch akzeptieren, bevor sie die Marke wechseln? Und dann den Druckkopf so konstruiert, daß er entsprechend viel schluckt. Bei mir haben sie sich damit verrechnet.

Sobald ein Tintenbehälter unter 20% ist, blinkt der Drucker rot. Man kann es nicht wegdrücken. Es sieht aus, als ob er jetzt kaputt wäre. Rotes Blinken ist eigentlich nur bei ernsten Störungen angebracht und auch dann nur, solange man es noch nicht zur Kenntnis genommen hat. Nach dem Quittieren muß das Blinken in Dauerlicht übergehen. Wenn es sich, wie in diesem Fall, nur um eine Warnmeldung handelt, wäre ein gelbes Dauerlicht angebracht. Rotes Blinken wegen niedrigen Füllstands ist etwas kindisch.

Sobald ein Tintenbehälter unter 5% ist, setzt der Windowstreiber den Füllstand im Chip der Patrone auf Null, die letzten 5% kann man also unter Windows nicht verbrauchen. Nach dem Wechseln der (nur scheinbar leeren) Patrone führt der Drucker einen "Reinigungsvorgang" durch, der aus den anderen Patronen jeweils 11% absaugt. Das bedeutet: Nach dem Wechseln von 4 einzelnen Patronen hat man 33% Tinte verloren. Das entspricht zur Zeit 3 Euro. Das bedeutet: eine Schwarz-Patrone kostet einen in Wirklichkeit nicht 9 Euro, sondern 12 Euro.

Der Papierfang, wo die bedruckten Blätter abgelegt werden, ist mit einem Magnetschnäpper verschlossen, der ein kleines bißchen zu leicht aufgeht. Andererseits ist der Drucker so leicht, daß man die Magnetkraft auch nicht erhöhen könnte. Ein Ballastgewicht im Gehäuseboden wäre vielleicht eine Idee gewesen. Der Papierfang hat einen Auszug, der jedesmal benutzt werden muß, wenn das Blatt nicht auf dem Fußboden landen soll. Dieser Auszug ist etwas zu hakelig und kann ohne ruckeln nicht betätigt werden, und manchmal verkantet er sich so, daß man beide Hände braucht. Es ist fast so umständlich wie die Motorhaube beim Auto.

Die Zahnräder, Zahnriemen, der Papiertransport und die Reaktionen der Firmware machen einen guten Eindruck. Der Drucker reinigt den Kopf nicht mehr bei jedem Einschalten wie die Vorgänger. Er ist nach knapp 20 Sekunden betriebsbereit. Zum Ausschalten braucht er nur wenige Sekunden.

Der Kopf geht nicht mehr bei jedem Papierstau sofort kaputt. Es gibt einen Sensor, der bei Papierstau schnell alles ausschaltet. Das ist besser geworden. Das Papier wird auch besser niedergehalten. Leider verbraucht ein Papierstau fast 20 Prozent einer Tintenfüllung. Einen Papierstau gibt es auch dann, wenn man nur vergißt, den Papierfang zu öffnen.

Das Einstellen der Papierbreite ist ein Hebel mit einer Arretierung, die man zusammendrücken muß. Die ganze Hebelkonstruktion ist so tief im Papierschacht angebracht, daß man eigentlich Kinderhände braucht, sie ist so dünn und biegsam, man merkt gar nicht, was genau muß man eigentlich wohin drücken und wie bewegen, um die Papierbreite zu verstellen. Die Konstruktion hat so wenig Halt in sich selbst, daß man Angst hat, gleich bricht sie ab.

Das Gehäuse macht einen wenig stabilen, billigen Eindruck, ähnlich einer Keksdose.

Der Drucker soll randlos, bzw. fast randlos drucken können, das scheint zu stimmen. Genauer konnte ich das noch nicht testen. DIN A4 hat 1 oder 2 mm Rand links und rechts. Der Algorithmus, mit dem nacheinander die verschiedenen Pixelreihen die Farbe aufs Papier bringen, so daß nichts verschmiert, macht einen guten und kompetenten Eindruck.

Wenn man, wie ich, wenig druckt, hauptsächlich Text, und wenn man ein ordentliches Druckbild braucht, verbraucht der Drucker ungefähr 0,3 Prozent der Schwarz-Patrone pro Seite. Nach meinem Eindruck kann man wahrscheinlich mit 5 mal schwarz und einmal bunt 1500 Seiten bedrucken. Das entspricht 4,8 Cent pro Seite.

Da ich zunächst unter Windows drucken mußte, habe ich erlebt, wie der Treiber reagiert, wenn die Farbe unter 20% sinkt: Man kriegt entweder vor jedem Druckjob ein Dialogfenster mit Kaufempfehlungen, oder man muß es ganz abwählen. Beides ist keine gute Lösung. Der Drucker ist unter Windows noch nerviger als unter Linux.

Wenn das Generve nicht wäre, wenn die Tinte nur so teuer wäre wie - ja, wie Tinte halt und nicht wie "Chanel No.5", wenn die hakeligen Plastikteile angemessen stark wären und z.B. in Teflonschienen liefen, und wenn das Gehäuse etwas stabiler und schwerer wäre, würde ich den Drucker empfehlen. Und ich persönlich würde einen Preis bis 250 oder vielleicht 300 Euro akzeptieren.

Die jetzige Lösung, den Drucker allerbilligst zu produzieren, ihn für ganze 66 Euro zu verkaufen und dann bei der Tinte mit Schikanen und Abzocke daherzukommen, ist meiner Meinung nach genau die falsche Richtung. Die zahlenden Kunden fühlen sich geärgert. Und solange der Drucker zu billig und die Tinte zu teuer ist, fällt das Wechseln leicht.

25.8.06: Nach der soeben gemachten Erfahrung, was bei einem Tintenstand unter 5% und dem erzwungenen vorzeitigen Wechsel der Patrone passiert (siehe oben) kann ich von Epson-Druckern ab jetzt nur abraten. Man ärgert sich zu oft.

abatz.de Jörn Abatz - Technische Software Impressum