ubuntuusers.de

GDI-Drucker

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Einen Drucker mit USB-Anschluss kann man einfach an eine Fritzbox anschließen, dort freigeben und er lässt sich via CUPS über die Fritzbox erreichen bzw. nutzen. Im Prinzip stellt die Fritzbox einen primitiven Druckserver dar (nur den Drucker bereitstellen, keine Auftragsverwaltung usw.). Bei ausschließlich für den Betrieb unter Windows gedachten GDI-Druckern gestaltet sich die Inbetriebnahme schwieriger. Bevor diese Drucker drucken können, muss zuerst eine spezielle Firmware in den Drucker geladen werden. Dies betrifft beispielsweise verschiedene Modelle des HP LaserJet 10xx.

Natürlich kann man einen GDI-Drucker auch einfach an die Fritzbox anschließen und freigeben. Vielleicht findet ihn CUPS auch, aber ohne Firmware kann er mit Druckbefehlen nichts anfangen. Und CUPS kümmert sich nicht darum, ihn "intelligent zu machen" und erst danach zu drucken. Für weitere Informationen siehe auch hier.

Eine alternative Vorgehensweise mit mehr Möglichkeiten - aber auch mehr Aufwand - findet sich im Artikel Nicht unterstützte Drucker als Windows-Freigabe

GDI-Drucker einrichten

Auch mit einem GDI-Drucker (z.B. HP Laserjet 1020) kann man über die Fritzbox drucken und damit von mehreren PCs auf den Drucker zugreifen. Dafür wird normalerweise beim Einschalten des Druckers erst die Firmware über die USB-Schnittstelle aufgespielt. Dies muss natürlich auch beim Anschluss über die Fritzbox erfolgen.

Hinweis:

Die nachfolgende Anleitung bezieht sich zwar auf eine Fritzbox und einen HP Laserjet 1020, sollte sich aber auf andere (vergleichbare) Router und andere GDI-Drucker sinngemäß übertragen lassen. Auf jeden Fall sollte man sie zuerst komplett lesen, da es zeitliche Abhängigkeiten in der Ausführung gibt.

Zuerst den Drucker lokal an einem USB-Port einrichten (z.B. wie in HP LaserJet 10xx beschrieben). Hierbei wird u.a. ein Verzeichnis /usr/share/foo2zjs/firmware/ erstellt, in dem sich z.B. die Datei sihp1020.dl (für HP Laserjet 1020) befindet. Das ist die angesprochene Firmwaredatei. Danach den Drucker an die Fritzbox anschließen und dort über die Weboberfläche nach Herstellerangabe freigeben (dabei aber keinen USB-Fernanschluss für den Drucker aktivieren). Anschließend ein Terminal [1] öffnen und Folgendes eingeben - aber ohne abschließendes (zu den Details siehe netcat):

cat /usr/share/foo2zjs/firmware/sihp1020.dl | netcat -w 1 192.168.178.1 9100 

Dabei sind der Pfad und Name der Firmwaredatei an den eigenen Drucker anzupassen. 192.168.178.1 ist die Werks-IP der Fritzbox und ist ggf. anzupassen. Sie kann über die Web-Oberfläche der Fritzbox ermittelt werden. 9100 ist der Port, der sich bei Druckereinrichtung durch CUPS ergibt. Jetzt den Drucker einschalten und nach dessen Initialisierungsphase drücken.

Achtung!

Nach dem versucht das System, die Firmwaredatei hochzuladen. Dieses kann einen Moment dauern. Erfolg stellt man fest, wenn der Drucker ein Walzengeräusch von sich gibt, ggf. mehrfach ausführen. Im Terminal erscheint danach wieder der Prompt.

Mögliche Fehlerquelle im Ablauf:

Der Drucker geht nach einer gewissen Zeit in Standby (erkennbar an einem kurzen Geräusch). Es kann sein, dass er nach dieser Zeit nichts mehr annimmt. Dann muss man ihn zuerst einmal aus- und wieder einschalten, daher erst kurz vor dem Terminalbefehl einschalten. Ggf. kann man mit dem Parameter -w 1 (= 1 Sekunde warten) experimentieren.

Hinweis:

Der Befehl ist immer nur einmal nach dem Einschalten des Druckers auszuführen. Drucken kann man dann beliebig oft - auch von anderen Rechnern aus.

Jetzt kann man den Drucker auch noch als Netzwerkdrucker in CUPS einrichten (am besten einen anderen Namen als bei der lokalen Einrichtung, z.B. Laserjet-Fritzbox), ggf. einen Testdruck anfertigen. Danach kann man den Drucker auch im Standarddruckdialog auswählen. Alternativ kann man mit dem obigen Befehl durch Austausch des Firmware-Dateinamens gegen eine binäre Druckdatei (kein Postscript!) diese direkt drucken.

Automatisierung

Zur Vereinfachung kann man eine Skriptdatei mit obiger Befehlszeile erstellen und diese ausführbar [2] machen. Leider muss man die Übertragung der Firmware nach jedem Ausschalten des Druckers erneut durchführen - oder den Drucker anlassen.

Umgehen kann man das nur, wenn man eine modifizierte Firmware für die Fritzbox verwendet (da diese für die Druckererkennung primär zuständig ist), Hinweise dafür finden sich im ip.phone-forum.de 🇩🇪. Andersherum könnte man auf dem eigenen PC einen Dienst laufen lassen, welcher permanent versucht, die Datei hoch zu laden.

Für Windows müsste man bei solchen Druckern eigentlich den "USB-Fernanschluss" von AVM installieren und in der Box aktivieren. Leider geht dort entweder "Netzwerkdrucker" oder "Fernanschluss" - beides zusammen nicht. Damit würde man auf Möglichkeiten des Fernanschlusses verzichten (Statusmeldungen des Druckers usw.).

Diese Revision wurde am 29. Januar 2015 13:52 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Drucker, Netzwerk, Hardware