Login
Newsletter
Werbung

Do, 15. Februar 2001, 00:23

LinuxPrinting: Aufruf zur Mithilfe

Jeder Linux-Anwender, der einen Drucker am Parallelport (oder auch an einem USB) betreibt, kann jetzt mithelfen, die Unterstützung dieses Druckers unter Linux zu verbessern (falls sie noch nicht optimal ist).

Es geht darum, die Linuxprinting-Datenbank mit Informationen über verfügbare PJL-Kommandos zu befüllen. Diese Datenbank baut Grant Taylor, Autor des Linux Printing HOWTO schon seit längerer Zeit auf. Sie ist der Schlüssel für die Verwirklichung von einem (oder mehreren) bestmöglichen freien Drucksystem(en) für Linux. Bei vielen Druckermodelle sind die Datenbank-Einträge der funktionierenden PJL-Kommandos jedoch noch sehr lückenhaft. Je besser und schneller die Datenbank befüllt wird, umso umfassender und rasanter wird die Druckerunterstützung für Linux (und, nebenbei gesagt, auch für *BSD und andere freie -- oder auch unfreie! -- UNIX-Betriebsysteme) in den nächsten Monaten vorankommen. Die Datenbank dient nicht nur CUPS -- auch andere Spool- und Drucksysteme wie BSD-LPD, LPRng oder PDQ werden davon profitieren.

Das Übertragen von PJL-Fähigkeiten für tausende von Druckern aus den Herstellerdokumentationen in die Datenbank ist sehr langwierig und fehlerbehaftet. Lässt sich diese Dokumentation denn überhaupt auftreiben? Ist sie vollständig? Ist sie fehlerfrei? -- Es gibt einen besseren Weg: man fragt einfach den Drucker selbst... Till Kamppeter, Architekt des neuen Mandrake 7.2-Drucksystems (und auch Autor des freien GUI-Tools für CUPS, XPP), hat ein kleines Shell-Script vorgelegt, dasjedem Linux- (oder BSD-)Anwender ermöglicht, seinen Drucker zu befragen und so einen Beitrag für die Datensammlung auf Linuxprinting.org zu leisten.

Hierfür sollte man das folgende 6-zeilige Shellscript kopieren, unter einem leicht zu merkenden Namen abspeichern und ausführbar machen:

#!/bin/sh
echo "Writing PJL options into opts.txt"
echo -en "\033%-12345X@PJL\r\n@PJL INFO VARIABLES\r\n"> /dev/lp0
sleep 1
echo "Press Ctrl+C"
cat < /dev/lp0 > opts.txt

Ich beschreibe gleich kurz, wie das Script funktioniert. Zuerst noch einige (hoffentlich auch für Linux-Anfänger nachvollziehbare) Punkte, die jedem Freiwilligen helfen sollten, die benötigten Daten für Linuxprinting.org einzusammeln:

* Auf meinem Rechner heisst das Script get_pjl_info.sh und befindet sich in meinem Homeverzeichnis. * Mit chmod a+x get_pjl_info.sh wurde es ausführbar gemacht. * Mit./get_pjl_info.sh kann ich es in meinem Homeverzeichnis ausführen.

Damit die Sache klappt, müssen mehrere Voraussetzungen zutreffen: * Es muss ein Drucker mit dem Parallelport des Rechners verbunden sein. * Es muss ein neueres Parallelkabel verwendet werden, das bi-direktionale Kommunikation zulässt. * Es darf im Bios des Rechners keine bi-di Kommunikation ausgeschaltet * Es muss durch root ausgeführt werden. * Es muss im Kernel die Parallelport-Unterstützung aktiv sein.

Letztere kann meist als Modul nachgeladen werden, wenn sie nicht bereits zur Bootzeit aktiviert ist. ["Warum erzählt der Pfeifle das?", fragen sich vielleicht manche, "wer keinen Parallelport aktiv hat, hat auch keinen Drucker dran und kann den Test eh' nicht machen." -- Falsch. Da Till (und ich) momentan noch nicht wissen, wie wir die bi-di Kommunikation mit dem Script über das Ethernet zuwege bringen, müssen Helfer mit Netzwerk-Druckern ihre Geräte kurzzeitig an ein Parallelkabel hängen. Ich musste diese Dinge selbst erst rausfinden, als ich den LaserJet 5L meines Chefs von seinem Schreibtisch auslieh (heut' ist Sonntag und er nicht da ;-), um den Test zu fahren...]

Also -- Nachladen des Moduls, falls nötig:

root@espprintpro:/home/kurt > modprobe parport_pc
root@espprintpro:/home/kurt > modprobe printer

Überprüfen des Ergebnisses:

root@espprintpro:/home/kurt > lsmod

Zeigt es Einträge über parport_pc, parport und lp an? Dann ist alles OK...

Bei Verwendung eines USB-Druckers muss das Script an zwei Stellen leicht abgeändert werden. Anstelle von /dev/lp0 muss in der letzten Zeile /dev/usb/lp0 eingetragen werden. Und selbstverständlich muss im Kernel ebenfalls USB aktiviert sein.

Das Script benutzt ein PJL-Kommando, um den Drucker zu fragen, welche anderen PJL-Komandos er kennt und unterstützt. Falls eine Verständigung zustande kommt, schreibt das Script die Rückmeldungen des Druckers in die Datei opts.txt. Wenn das Script nicht selbst zum Ende kommt, nachdem der Drucker mit seiner Antwort fertig ist, kann man es mit STRG + C abbrechen. Die gewonnene Datei sollte man mal anschauen: wenn sie leer ist, kam keine Kommunikation zustande. Eine nicht-leere Datei könnte auch bedeuten,dass der Drucker zwar keine PJL, jedoch ASCII unterstützt.

Vor dem Test des nächsten Druckers sollte man die Datei umbenennen, damit sie nicht überschrieben wird: root@espprintpro:/home/kurt > mv opts.txt HP_LaserJet_5L_opts.txt. Till sammelt alle umbenannten und nicht-leeren opts.txt-Dateien: till.kamppeter@NOSPAM_gmx.net Bitte auch dafür Sorge tragen, dass die zutreffende Modellbezeichnung des Druckers möglichst exakt wiedergegeben wird. Die Inhalte dieser Dateien werden schnellstmöglich zu Einträgen in die Datenbank übersetzt. Jeder zusätzliche Eintrag bringt die Druckerunterstützung durch freie Software einen kleinen Schritt weiter (und zwar nicht nur mit CUPS, sondern auch mit LPD, LPRng und PDQ!) Till bittet darum, das Script selbst dann auszuprobieren, wenn in der linuxprinting-Datenbank behauptet wird, dass der betreffende Drucker keine PJL unterstützt, da diese Information falsch sein könnte. Weiterhin könnten Informationen, die in der Datenbank bereits enthalten sind, unvollständig sein.

Die meisten jetzigen Einträge bezüglich PJL sind aufgrund von Informationen in den offiziellen Hersteller-Dokumentationen zustande gekommen. Till hat jedoch mittels des Scripts beispielsweise herausgefunden, dass der HP LaserJet 4050 seine voreingestellte Sprache am User-Display mittels eines PJL-Kommandos ändert. Und dies, obwohl es weder am User-Display noch im Druckerhandbuch einen Hinweis auf diese Möglichkeit gibt....

Copyright 2001 Kurt Pfeifle

Werbung
Kommentare (Insgesamt: 12 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung