HP Jetdirect als CUPS-Server?

Einrichten des Druckers und des Drucksystems, Scannerkonfiguration und Software zum Scannen und Faxen.
Antworten
Misterzde
Beiträge: 66
Registriert: 16.03.2015 08:19:24

HP Jetdirect als CUPS-Server?

Beitrag von Misterzde » 27.03.2015 12:41:10

Hallo,

ist es möglich einen HP-Laserjet-Drucker direkt als CUPS-Server (ohne lokalen CUPS-Daemon) zu benutzen?

Port 631 ist vorhanden:

Starting Nmap 5.00 ( http://nmap.org ) at 2015-03-27 12:36 CET
Interesting ports on 192.168.1.34:
Not shown: 987 closed ports
PORT STATE SERVICE
23/tcp open telnet
80/tcp open http
81/tcp open hosts2-ns
82/tcp open xfer
83/tcp open mit-ml-dev
443/tcp open https
515/tcp open printer
631/tcp open ipp
8080/tcp open http-proxy
8291/tcp open unknown
8292/tcp open unknown
8888/tcp open sun-answerbook
9100/tcp open jetdirect

Habe dazu die client.conf von CUPS konfguriert (und den Server entfernt):

root@debian6:/etc/cups# more client.conf
ServerName 192.168.1.34
BrowsePoll 192.168.1.34:631/version=1.1

Ich kann mich mit dem Drucker-Konfigurationswerkzeug von Debian 6 zwar verbinden, die Verbindung hängt dann jedoch.

Hat hier jemand Erfahrung? Oder geht eine direkte Verbindung auf Port 9050 via LPR oder LP?

Danke!

Benutzeravatar
Six
Beiträge: 8066
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Re: HP Jetdirect als CUPS-Server?

Beitrag von Six » 29.03.2015 12:45:50

Ich glaube, du bist einem Irrtum erlegen. CUPS ist nicht nur ein Printserver, sondern stellt das komplette Drucksubsystem auf deiner GNU/Linux-Maschine. Ohne CUPS kannst du nur sogn. raw-Daten verschicken, die der JetDirect-Printer dann auf Port 9100 annehmen würde und dann zu drucken versuchte. Das geht manchmal gut, aber halt nicht immer -- vor allem beherrschen aber die meisten Anwendungen auf deinem Rechner keinen raw-Daten-Druck. Die verlassen sich auf das Drucksubsystem ;)

Die meisten Daten, die du an einen Drucker schicken möchtest, müssen entweder zu einem Raster aufbereitet werden, oder in eine Seitenbeschreibungssprache, z. B. Postscript, übersetzt werden, bevor der Drucker die Daten verstehen kann. Diese Arbeit erledigt dein lokales CUPS. Der Wikipedia-Artikel erklärt es gut: http://en.wikipedia.org/wiki/CUPS
Be seeing you!

Misterzde
Beiträge: 66
Registriert: 16.03.2015 08:19:24

Re: HP Jetdirect als CUPS-Server?

Beitrag von Misterzde » 31.03.2015 10:58:03

Six hat geschrieben:Ich glaube, du bist einem Irrtum erlegen. CUPS ist nicht nur ein Printserver, sondern stellt das komplette Drucksubsystem auf deiner GNU/Linux-Maschine. Ohne CUPS kannst du nur sogn. raw-Daten verschicken, die der JetDirect-Printer dann auf Port 9100 annehmen würde und dann zu drucken versuchte. Das geht manchmal gut, aber halt nicht immer -- vor allem beherrschen aber die meisten Anwendungen auf deinem Rechner keinen raw-Daten-Druck. Die verlassen sich auf das Drucksubsystem ;)

Die meisten Daten, die du an einen Drucker schicken möchtest, müssen entweder zu einem Raster aufbereitet werden, oder in eine Seitenbeschreibungssprache, z. B. Postscript, übersetzt werden, bevor der Drucker die Daten verstehen kann. Diese Arbeit erledigt dein lokales CUPS. Der Wikipedia-Artikel erklärt es gut: http://en.wikipedia.org/wiki/CUPS
Ja aber....

Warum hat dann die "Jet-Direct-Karte" --> fest im Drucker eingebaut --> neuerer HP Laserjet Pro den Port 631 offen?

Es wäre doch prinzipiell schlau, dass der CUPS-Client direkt diesen Port anspricht und dann die nötige Aufbereitung im Drucker erfolgt - denn diese "Jet-Direct-Karte" hat ja immer den richtigen Treiber eingebaut...

Im Grunde wäre dieser Lösung sogar schlauer, denn so hätte auch ein altes Linux immer einen aktuellen Treiber.

Benutzeravatar
sys_op
Beiträge: 672
Registriert: 17.09.2007 19:10:47
Lizenz eigener Beiträge: GNU General Public License

Re: HP Jetdirect als CUPS-Server?

Beitrag von sys_op » 31.03.2015 13:36:08

Misterzde hat geschrieben:...
Ja aber....
Warum hat dann die "Jet-Direct-Karte" --> fest im Drucker eingebaut --> neuerer HP Laserjet Pro den Port 631 offen?
...
Liste der standardtisierten Ports:
631 Internet Printing Protocol (IPP)
gruss sys;-)

Benutzeravatar
Six
Beiträge: 8066
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Re: HP Jetdirect als CUPS-Server?

Beitrag von Six » 01.04.2015 07:47:13

Misterzde hat geschrieben: Warum hat dann die "Jet-Direct-Karte" --> fest im Drucker eingebaut --> neuerer HP Laserjet Pro den Port 631 offen?
Deine Verwirrung setzt sich fort. IPP ist ein Netzwerkprotokoll und dient nur der Datenübermittlung. Da findet auch implizit keine Datenaufbereitung statt. Das passiert früher. Der Port ist offen, weil auf diesem Port der Drucker auf IPP-Verbindungen lauscht. So wie ein Webserver auf Port 80 auf http-Verbindungen lauscht.
Es wäre doch prinzipiell schlau, dass der CUPS-Client direkt diesen Port anspricht und dann die nötige Aufbereitung im Drucker erfolgt - denn diese "Jet-Direct-Karte" hat ja immer den richtigen Treiber eingebaut...

Im Grunde wäre dieser Lösung sogar schlauer, denn so hätte auch ein altes Linux immer einen aktuellen Treiber.
So mag es auf den ersten Blick aussehen, wenn man denkt, das ein Drucker magischerweise einfach alles druckt, was man ihm hinwirft. Aber in der Wirklichkeit muss ein Drucker die reinkommenden Daten verarbeiten können und so müssten dann alle Drucker all die komischen Datenformate von allen möglichen Programmen beherrschen. Könnte ein Drucker es nicht, könnten bestimmte Programme dort nicht drucken. Dann hättest du Kompatibilitätlisten für deine Drucker, z. B. Arbeitet mit Photoshop. Aber was ist mit GIMP? Das wäre offensichtlich insb. für GNU/Linux ein massiver Rückschritt.

Was ist die konsequente Folge?
Be seeing you!

Misterzde
Beiträge: 66
Registriert: 16.03.2015 08:19:24

Re: HP Jetdirect als CUPS-Server?

Beitrag von Misterzde » 01.04.2015 10:56:53

Ja aber, wenn der Port 631 nur lauscht, warum muss er dann beim lokalen CUPS lauschen?

Ich drucke aus Openoffice --> ruft sonstwas auf --> Aufbereitung wird gemacht --> schickt es an Port 631 --> IPP-Daemon schickt dann an irgendeinen Netzwerkdrucker oder auch lokal an USB-Port.

Genausogut könnte CUPS einfach den verarbeiteten (aufbereiteten) Auftrag per "Pipe" entgegennehmen und an einen Drucker im Netz auf einem temporären Random-Port schicken. Das wäre zumindest sicherer, da der Port ständig wechseln und auch nicht dauerhaft geöffnet ist.

Und HP könnte die Jetdirect-Karte zum vollstädnigen CUPS-Server aufrüsten, der nötige Prozessor inkl. RAM für die Verarbeitung ist im Laserdrucker sowieso vorhanden. Das würde insbesondere in Firmennetzwerken viel Arbeit an den Clients ersparen --> Neuer Drucker --> neue Konfiguration verteilen, etc.

Misterzde
Beiträge: 66
Registriert: 16.03.2015 08:19:24

Re: HP Jetdirect als CUPS-Server?

Beitrag von Misterzde » 01.04.2015 16:02:27

Misterzde hat geschrieben:Ja aber, wenn der Port 631 nur lauscht, warum muss er dann beim lokalen CUPS lauschen?

Ich drucke aus Openoffice --> ruft sonstwas auf --> Aufbereitung wird gemacht --> schickt es an Port 631 --> IPP-Daemon schickt dann an irgendeinen Netzwerkdrucker oder auch lokal an USB-Port.

Genausogut könnte CUPS einfach den verarbeiteten (aufbereiteten) Auftrag per "Pipe" entgegennehmen und an einen Drucker im Netz auf einem temporären Random-Port schicken. Das wäre zumindest sicherer, da der Port ständig wechseln und auch nicht dauerhaft geöffnet ist.

Und HP könnte die Jetdirect-Karte zum vollstädnigen CUPS-Server aufrüsten, der nötige Prozessor inkl. RAM für die Verarbeitung ist im Laserdrucker sowieso vorhanden. Das würde insbesondere in Firmennetzwerken viel Arbeit an den Clients ersparen --> Neuer Drucker --> neue Konfiguration verteilen, etc.
P.S.

Früher meine ich mich daran zu erinnern, dass es in etwa so ablief:

Druckauftrag wird vom jeweiligen Programm in ein "Spool-Verzeichnis" gestellt, dort von einer Art Daemon entgegen genommen, Aufbereitung erfolgt dann druckerspezifisch, anschliessend Übermittlung an den jeweiligen Drucker per Parellel-Port, USB oder Netzwerk.

Mir ist der Aufbau von CUPS im Detail nicht bekannt, aber wozu dient der UDP-Port? Werden sämtliche Datentransfers über diesen Port abgewickelt?

Benutzeravatar
sys_op
Beiträge: 672
Registriert: 17.09.2007 19:10:47
Lizenz eigener Beiträge: GNU General Public License

Re: HP Jetdirect als CUPS-Server?

Beitrag von sys_op » 01.04.2015 16:17:55

Spooler werden ja auch heute noch verwendet, die Abarbeitung der Druckaufträge verhält sich also ca. so, wie du das beschreibst.
Das hat aber mit dem IPP-Protokoll eigentlich nichts zu tun.
http://de.wikipedia.org/wiki/Internet_Printing_Protocol

Auszug:
..IPP basiert auf HTTP 1.1 und wurde entsprechend der Anwendung um bidirektionale Fähigkeiten erweitert, um z. B. Statusabfragen und -meldungen zu ermöglichen....
Du musst zwischen Client-Port 631 und Server-Port 631 unterscheiden.

Lasse mich dafür nicht totschlagen, aber ich meine:
Der lokale Cups-Server stellt über Port 631 ein Webfrontend zur Verfügung, über das du Cups konfigurieren kannst. Dieses Frontend nutzt IPP, lauscht also auf Port 631.
Der Client (der Drucker) kann über diesen Port Druckaufträge entgegen nehmen und verarbeiten.

UDP 631 ist mir momentan auch nicht geläufig...
gruss sys;-)

Misterzde
Beiträge: 66
Registriert: 16.03.2015 08:19:24

Re: HP Jetdirect als CUPS-Server?

Beitrag von Misterzde » 02.04.2015 00:22:47

So, ich habe mal ein wenig Google bemüht und so ein wenig nachgeforscht:

Die Defaultinstallation von CUPS auf Debian 6 öffnet 2 Port, Port 631 UDP zum Internet, Port 631 TCP auf localhost.

Der UDP-Port dient wohl dazu, dass der lokale "CUPS-Server" von anderen Clients im Netz gefunden werden kann. Das ist für reine Client-Installation aber nicht interessant:

Der UDP-Port kann mit der Option:

# Show shared printers on the local network.
Browsing Off

in /etc/cups/cupsd.conf deaktiviert werden.

Der TCP-Port wird anscheinend nur vom Webinterface im CUPS-Server benötigt, das Webinterface kann deaktiviert werden:

# Only listen for connections from the local machine.
#Listen localhost:631
Listen /var/run/cups/cups.sock

Dazu einfach den "Listener" in /etc/cups/cupsd.conf auskommentieren.

Das Printing auf einen HP-Laserjet geht anschliessend immer noch, beide Netzwerk-Ports werde also für eine einwandfreie Client-Konfiguration gar nicht benötigt.

Aus Sicherheitsgründen kann also abgeschaltet werden. Bleibt immer noch die Frage, warum HP keinen vollständigen CUPS-Server auf Port 631 anbietet....

Antworten