Hallo,
woran kann es liegen, daß ich über mein LAN zwar von der Konsole, nicht aber aus einer Anwendung (kwrite / openofice) drucken kann ?
ich habe meinen Brother DCP7030 am Desktop angeschlossen (Debian Lenny mit cups / USB). Lokal kann ich von openoffice problemlos drucken, nicht aber vom Notebook.
Das LAN läuft über Wlan/Fritz!Box mit Debian Lenny auf dem Notebook. Nachdem es auf dem Notebook mit der Standardinstallation über "localhost:631/printers" nicht lief (hatte zuerst Unsicherheiten wg. der DEV URI und Freischalten von Port 631 vergessen), habe ich es von der Konsole mit "lp -h name x.txt". Der Druck der Textdatei läuft problemlos und auch die lpstat-Meldung sieht gut aus.
Warum funzt der Druck aus der Anwendung dann nicht ?
Gruß
heriL
Linux 15.036 Themen, 107.107 Beiträge
Du hast den Brother Drucker an der FritzBox angeschlossen und die Fritzbox arbeitet praktisch als Printserver , richtig ?
Das ist überhaupt kein Problem. Du mußt nur das richtige CUPS Backend bei der Konfiguration der Druckerwarteschlange angeben.
In der Konsole kannst du mit lpadmin die Druckerwarteschlange so einrichten:
lpadmin -p name -E -v socket://fritz.box -m ppd-file des Druckers
Das CUPS Backend ist socket. Wenn du das webinterface von cups nutzen willst, dann gibst du auch socket als backend an.
Kannst du hier nochmal nachlesen:
http://www.wehavemorefun.de/fritzbox/index.php/Printserver_Linux
Das Notebook und die Fritzbox müssen alle in dem gleichen Netzwerk sein. Hast du die Netzwerkeinstellungen von deinem Notebook schon kontrolliert ?
Wenn der Desktoprechner als Printserver arbeiten soll, dann mußt du auf dem Notebook die Adresse des Desktoprechners bei der Konfiguration der Druckerwarteschlange angeben.
Mit "localhost:631/printers" ist immer der lokale Desktoprechner gemeint. Du mußt anstelle von localhost die richtige IP deines Desktoprechners angeben.
Und außerdem mußt du (wahrscheinlich) deinem Notebook (richtige IP Adresse) erlauben die Drucker oder CUPS auf dem Desktoprechner konfigurieren zu dürfen. Dazu gehst du in die CUPS Konfigurationsdatei /etc/cups/cupsd.conf rein.
PS: Nutze möglichst statische IP Adresen für dein Notebook und den Desktoprechner . Sonst kannst du die Druckerwarteschlange nicht richtig konfigurieren.
"Nachdem es auf dem Notebook mit der Standardinstallation über "localhost:631/printers" nicht lief "
Du mußt anstelle von localhost die IP von deinem Desktoprechner angeben. Mit localhost ist der lokale Desktoprechner gemeint.
Aber versuch doch mal die Fritzbox als Printserver zu nutzen.
Das spart Strom , weil der Desktoprechner nicht ständig laufen muß.
Ich verwende immer den lpr Druckbefehl:
lpr -PDrucker Datei.ps
Drucker muß durch den richtigen Namen von deiner Druckerwarteschlange ersetzt werden. Wenn die Druckerwarteschlange richtig konfiguriert ist, dann versuche mal eine Postscript Datei (Suffix ps) auszudrucken.
Mit "lpq -PDrucker " kannst du die Druckaufträge in der Druckerwarteschlange "Drucker" überprüfen . Und mit
"lprm -PDrucker Job-Nr"
kannst du einzelne Druckjobs löschen. Job-Nr muß mit der richtigen Zahl ersetzt werden, die vorher mit "lpq -PDrucker " angezeigt wurde.
Hallo, du schreibst zu schnell für mich ;-)
eine Druckerwarteschlange habe ich nicht bewußt konfiguriert; ich nehme an, die wird von "localhost:631/printers" automatisch angelegt oder ?
und, wie gesagt, von der Konsole kann ich drucken. Nur ein Testdruck von "localhost:631/printers" funktioniert genausowenig wie das Drucken von kwrite oder openoffice.
Gruß
heriL
Du mußt eine Druckerwarteschlange konfigurieren.
Mit localhost:631 startest du erstmal nur das Webinterface von cups.
Der Drucker hängt am Desktoprechner, also mußt du bei der GeräteURI auch die IP von deinem Desktoprechner angeben. Als Backend würde ich "http Internet Printing Protokoll" mal testen (habe ich bis jetzt noch nicht gemacht, weil ich einen kleinen Printserver von CNet nutze).
Also ich würde dir empfehlen den Drucker an die Fritzbox anzuschließen und die Fritzbox als Printserver zu konfigurieren.
zum Druckeranschluß:
nein, der Drucker hängt an der USB-Schnittstelle vom Desktop;
für den Desktop habe ich in der Fritz!Box eine statische Adresse angegeben, die auch in der /etc/hosts vom Notebook steht.
Von der Konsole auf dem Notebook kann ich den Drucker mit der statischen Adresse oder auch den Desktopnamen adressieren (lp -h amd-h:631 test.txt - - bin mir nicht ganz sicher, ob ich den Port angegeben habe oder nicht, aber es hat funktioniert )
In "localhost:631/printers" habe ich alle möglichen Adresse versucht: solche, die dort vorgeschlagen waren, den Vorschlag von der Install-Doku von Brother (ldp://ip-adresse/binary_p1 , wobei ich nicht weiß, was das "binary_p1" da soll - hat auch nicht funktioniert) und eigene Varianten .
das mit der Konfiguration ist interessant. Muß ich das Notebook für die Konfiguration des Desktop-cuspd freigeben, wenn ich vom Notebook nur drucken will ? (das muß ich demnächst ausprobieren)
FritzBox:
ich hatte meinen letzten Drucker direkt an der Fritzbox, bis mir ein Gewitter die FritzBox und die Schnittstelle vom Drucker geschoßen hat. Zwischen FritzBox und Drucker brauche ich ein 2m USB-Kabel, daß unter einem Fenster verläuft. Ich habe jetzt zwar Blitzschutzmaßnahmen getroffen, hab aber auch gelesen, daß die nur bedingt schützen, also hängt der Drucker jetzt mit kurzem Kabel direkt am Desktop. Wenn meine Tochter jetzt drucken will, muß sie eben den Desktop einschalten, ohne sich anzumelden. Hat bei Suse funktioniert und sollte es auch bei Debian, auch wenn es etwas umständlich ist ;-)
Gruß
heriL
Ich habe bis jetzt auch noch nicht einen Desktoprechner als Printserver genutzt. Ich würde das http Protokoll versuchen:
http://localhost:631/help/network.html
....
http://ip-address-or-hostname:port-number/resource
http://ip-address-or-hostname:port-number/resource?option=value
http://ip-address-or-hostname:port-number/resource?option=value&option=value
....
Ich würde diese Geräte URI testen:
http://IP-Desktoprechner:631/USB-Port-am-Desktoprechner
Die genaue USB-Portbezeichnug am Desktoprechner müßte man mit dem Befehl "lpinfo -v" auf dem Desktoprechner herausbekommen.
Diese Pseudo Geräte URI ist aber nur für das Notebook gültig. Auf dem Desktoprechner brauchst du nur den USB Port angeben.
was mache ich damit ?
~$ sudo lpinfo -v
network socket
network beh
direct usb://Brother/DCP-7030
direct hpfax
direct hp
network http
network ipp
network lpd
direct scsi
serial serial:/dev/ttyS1?baud=115200
Geräte URI
http://IP-Desktoprechner:631/usb://Brother/DCP-7030
Denke ich zumindest das es so funktionieren könnte.
oder mit lpadmin in der Konsole
lpadmin -p BROTHER -E -v http://IP-Desktoprechner:631/usb://Brother/DCP-7030 -m ppd-file des Druckers
Druckern kannst du danach mit "lpr -PBROTHER Datei.ps"
Hast du schon den Druckertreiber auf dem Notebook installiert ?
Dann müßte auch die passende ppd Datei auf dem Notebook installiert sein. Kannst du mit dem Befehl "lpinfo -m | less" oder "lpinfo | grep brother" herausbekommen. Die richtige ppd Datei mußt du dann auch noch bei der Konfiguration der Druckerwarteschlange angeben.
PS: Ich weiß schon das es ein Problem ist die richtige Geräte URI herauszubekommen. Ich habe damals bei der Hotline von CNet angerufen. Die haben mir gesagt das ich lpd als Backend für CUPS unter Linux nutzen muß. Im Handbuch war nur die Konfiguration unter SunOS und SCO Unix erklärt.
nee, bringt nichts.
ich habe gerade nochmal von der Konsole vom Notebook aus gedruckt mit
> lp -h rechnername testdat
> lp -d DCP7030 testdat
wurde beides umgehend gedruckt.
wie bewege ich kwrite oder openoffice zum drucken ?
Du kannst im Webinterface von cups einen Testseite drucken. Erst wenn das funktioniert ist der Drucker richtig konfiguriert und wird unterstützt.
Warum kaufst du nicht einen Drucker der Postscript Level 3 kann? Diese Postscript Drucker funktionieren alle unter Unix (Solaris , HP Unix, AIX Unix), FreeBSD, NetBSD, OpenBSD und unter allen Linuxdistributionen.
ein Versuch aus kate und openoffice zu drucken:
der Drucker wird erkannt und zwar mit Druckerstatus (Start/Stop - ist am Druckersymbol zu sehen) - aber kein Ausdruck :-(
ich habe mal den Auftragsstatus vom KJobViewer angehängt:
ich verstehe nicht, wo localhost und Dell (Notebook-Name) herkommen
momentan ist die uri auf: lpd://192.168.178.20/DCP-7030
und diese IP-Adresse ist definitiv dem Desktop zugeordnet
Attribut: Werte
job-more-info: ipp://localhost:631/jobs/33
job-printer-up-time: Di Jan 19 20:41:40 2010
job-state-reasons: job-printing
job-uri: ipp://localhost:631/jobs/33
printer-uri: ipp://localhost/printers/DCP7030
job-originating-user-name: hld5
job-name: xtast
document-format: application/postscript
copies: 1
multiple-document-handling: separate-documents-collated-copies
orientation-requested: 0x3
job-priority: 50
job-uuid: urn:uuid:cc4764d6-6ced-3ad2-7d46-c5b926679198
job-originating-host-name: localhost
time-at-creation: Di Jan 19 20:36:33 2010
time-at-processing: Di Jan 19 20:36:33 2010
time-at-completed:
job-id: 33
job-state: 0x5
job-media-sheets-completed: 0
job-printer-uri: ipp://Dell:631/printers/DCP7030
job-name: xtast
job-k-octets: 37
job-hold-until: no-hold
job-sheets: none
none: job-printer-state-message
Wiederherstellbar: Verbindung zum Drucker nicht möglich, erneuter Versuch in 30 Sekunden
job-printer-state-reasons: connecting-to-device
Ich weiß nicht genau ob http oder ipp das richtige Backend für cups ist. Das mußt du ausprobieren. Vielleicht funktionieren auch beide.
Ich denke eher das du die Druckertreiber auf dem Notebook nicht richtig oder überhaupt nicht installiert hast.
Ich habe das schon mehrfach erwähnt. Alle Unix-/Linux-Programm erzeugen ihre Druckdaten im Postscriptformat und da dieser billige Brotherdrucker kein Postscript kann, muß der Ghostscript die Druckdaten von Postscript in eine andere Druckersprache umwandeln, die dieser Drucker kann.
Du mußt die richtigen Druckerfilter (-treiber) installieren.
Man kann mit dem Befehl "lpinfo -m " überprüfen ob der Drucker überhaupt unterstützt wird.
Ich habe hier einen HP Deskjet 5652 und habe die hplip Treiber installiert.
lpinfo -m | grep 5652
lsb/usr/hpijs/HP/HP-DeskJet_5652-hpijs.ppd HP Deskjet 5652 Foomatic/hpijs, hpijs 2.8.6.20b - HPLIP 2.8.6.b
Teste mal ob die richtige ppd Datei überhaupt vorhanden ist. Du mußt diese ppd Datei auch bei der Konfiguration der Druckerwarteschlange angeben.
Wird dieser Brother Drucker überhaupt unterstützt? Sonst kaufe dir einen Drucker der Postscript Level 3 kann. Die Druckersprache Postscript ist seit Mitte der 80er Jahre Standard bei Unix und wurde auch von Linux übernommen.
Deshalb braucht man normalerweise unter Unix/Linux auch einen Drucker der Postscript Level 3 kann.
Ich habe die Lösung gefunden.
Das ist ein GDI Drucker , richtig ?
http://www.brother.de/g3.cfm/s_page/65190/s_level/24380/s_product/DCP7030G1/s_detailType/specs
Da hast du aber großes Pech, sowohl unter Linux als auch unter Windows.
GDI Drucker kann man nicht an einem Printserver anschließen, egal ob an deiner Fritzbox oder wenn du einen Desktoprechner als Printserver einrichten willst.
Bei einem GDI Drucker muß im Hintergrund auf dem Rechner ein Treiber laufen, der das Druckwerk (oder den Druckkopf) steuert . Dazu muß eine durchgehende elektrische Verbindung zwischen dem Rechner und dem Drucker existieren. Wenn man so einen GDI Drucker an einem Printserver anschließt dann ist diese Verbindung unterbrochen und der Treiber hat keinen Zugriff auf das Druckwerk oder den Druckkopf bei einem Tintenstrahldrucker.
GDI Drucker sind der billigste Schrott egal von welchem Hersteller. Die machen nur Probleme und funktionieren an keinem Printserver. So wohl unter Windows als auch unter Linux gibt es damit Probleme.
Die richtigen Drucker die eine Standarddruckersprache wie PCL oder Postscript können arbeiten autonom. Sie können das Druckwerk (oder den Druckkopf) selbst steuern. CUPS muß die Druckdaten nur im passenden Format oder in der richtigen Druckersprache an den Drucker senden.
Wobei unter Linux und Unix die Druckersprache Postscript Level 3 Standard ist. Wenn der Drucker Postscript Level 3 kann , dann braucht man unter Linux keine Treiber oder Filter. Man bekommt vom Hersteller eine ppd Datei (Postscriptdruckerbeschreibungsdatei), die für die Konfiguration der Druckerwarteschlange für CUPS wichtig ist.
Also am Desktoprechner funktioniert dieser Drucker wahrscheinlich noch, aber an einem Printserver gibt es mit GDI Drucker nur Probleme, sowohl unter Linux(Unix) als auch unter Windows. Das Problem ist nicht linuxspezifisch.
Hast du unter http://localhost:631/admin
auf dem Desktop "Freigeben von Druckern welche mit diesem System verbunden sind"
und auf dem Notebook "Zeige freigegebene Drucker von anderen Systemen"
angekreuzt?
Wird auf dem Notebook unter http://localhost:631/printers/ der Drucker angezeigt? Falls ja, druckt was, wenn du dort eine Testseite in Auftrag gibst?
Ja, fremde Drucker sind freigegeben und auf dem Notebook wird der Drucker angezeigt, aber ein Testdruck ist nicht erfolgreich, nur der Druck von der Konsole.
ich habe mal einen Ausdruck vom Fehlerprotokoll angehängt. Da kommt immer die Meldung: "No authentication data provided"; ab wie soll ich mich authentizieren ?
Gruß
heriL
Client:
20/Jan/2010:21:08:25 +0100] Cancel-Job: Unauthorized
E [20/Jan/2010:21:08:44 +0100] cupsdAuthorize: pam_authenticate() returned 7 (Authentication failure)!
E [20/Jan/2010:21:08:44 +0100] Cancel-Job: Unauthorized
E [20/Jan/2010:21:08:46 +0100] cupsdAuthorize: pam_authenticate() returned 7 (Authentication failure)!
E [20/Jan/2010:21:08:46 +0100] Cancel-Job: Unauthorized
I [20/Jan/2010:21:08:56 +0100] [Job 61] Canceled by "root".
E [20/Jan/2010:21:09:26 +0100] PID 8936 (/usr/lib/cups/backend/lpd) stopped with status 1!
I [20/Jan/2010:21:09:26 +0100] Hint: Try setting the LogLevel to "debug" to find out more.
I [20/Jan/2010:21:23:31 +0100] Started "/usr/lib/cups/cgi-bin/printers.cgi" (pid=9535)
I [20/Jan/2010:21:23:33 +0100] Started "/usr/lib/cups/cgi-bin/admin.cgi" (pid=9537)
I [20/Jan/2010:21:28:35 +0100] [Job ???] Request file type is application/postscript.
I [20/Jan/2010:21:28:35 +0100] [Job 62] Adding start banner page "none".
I [20/Jan/2010:21:28:35 +0100] [Job 62] Adding end banner page "none". I [20/Jan/2010:21:28:35 0100] [Job 62] File of type application/postscript queued by "hld5".
I [20/Jan/2010:21:28:35 +0100] [Job 62] Started filter /usr/lib/cups/filter/pstops (PID 9691)
I [20/Jan/2010:21:28:35 +0100] [Job 62] Started filter //usr/lib/cups/filter/brlpdwrapperDCP7030 (PID 9692)
I [20/Jan/2010:21:28:35 +0100] [Job 62] Started backend /usr/lib/cups/backend/lpd (PID 9694)
I [20/Jan/2010:21:31:20 +0100] Started "/usr/lib/cups/cgi-bin/jobs.cgi" /(pid=9864)
I [20/Jan/2010:21:31:31 +0100] Started "/usr/lib/cups/cgi-bin/admin.cgi" /(pid=9867)
E [20/Jan/2010:21:31:45 +0100] [Job 62] Wiederherstellbar: Verbindung zum /Drucker nicht möglich, erneuter Versuch in 30 Sekunden âŠ
Server (die Server-Meldungen sind endlos)
...
D [20/Jan/2010:21:28:35 +0100] cupsdAcceptClient: 13 from localhost (Domain)
D [20/Jan/2010:21:28:35 +0100] cupsdReadClient: 13 POST /printers/ HTTP/1.1
D [20/Jan/2010:21:28:35 +0100] cupsdAuthorize: No authentication data provided.
D [20/Jan/2010:21:28:35 +0100] CUPS-Get-Default
D [20/Jan/2010:21:28:35 +0100] cupsdProcessIPPRequest: 13 status_code=0 (successful-ok)
D [20/Jan/2010:21:28:35 +0100] cupsdCloseClient: 13
D [20/Jan/2010:21:28:35 +0100] cupsdAcceptClient: 13 from localhost (Domain)
D [20/Jan/2010:21:28:35 +0100] cupsdReadClient: 13 POST /printers/ HTTP/1.1
D [20/Jan/2010:21:28:35 +0100] cupsdAuthorize: No authentication data provided.
D [20/Jan/2010:21:28:35 +0100] Get-Printer-Attributes ipp://localhost:631/printers/DCP7030
D [20/Jan/2010:21:28:35 +0100] cupsdProcessIPPRequest: 13 status_code=0 (successful-ok)
D [20/Jan/2010:21:28:35 +0100] cupsdCloseClient: 13
D [20/Jan/2010:21:28:35 +0100] cupsdCloseClient: 9
D [20/Jan/2010:21:28:35 +0100] cupsdAcceptClient: 9 from localhost (Domain)
D [20/Jan/2010:21:28:35 +0100] cupsdReadClient: 9 POST / HTTP/1.1
D [20/Jan/2010:21:28:35 +0100] cupsdAuthorize: No authentication data provided.
D [20/Jan/2010:21:28:35 +0100] Get-Printer-Attributes ipp://localhost/printers/DCP7030
D [20/Jan/2010:21:28:35 +0100] cupsdProcessIPPRequest: 9 status_code=0 (successful-ok)
D [20/Jan/2010:21:28:35 +0100] cupsdReadClient: 9 GET /printers/DCP7030.ppd HTTP/1.1
D [20/Jan/2010:21:28:35 +0100] cupsdAuthorize: No authentication data provided.
D [20/Jan/2010:21:28:35 +0100] cupsdAcceptClient: 13 from localhost (Domain)
D [20/Jan/2010:21:28:35 +0100] cupsdReadClient: 13 POST / HTTP/1.1
...
D [20/Jan/2010:21:28:45 +0100] cupsdAcceptClient: 13 from localhost (Domain)
D [20/Jan/2010:21:28:45 +0100] Report: clients=4
D [20/Jan/2010:21:28:45 +0100] Report: jobs=3
D [20/Jan/2010:21:28:45 +0100] Report: jobs-active=0
D [20/Jan/2010:21:28:45 +0100] Report: printers=1
D [20/Jan/2010:21:28:45 +0100] Report: printers-implicit=0
D [20/Jan/2010:21:28:45 +0100] Report: stringpool-string-count=296
D [20/Jan/2010:21:28:45 +0100] Report: stringpool-alloc-bytes=6776
D [20/Jan/2010:21:28:45 +0100] Report: stringpool-total-bytes=6176
D [20/Jan/2010:21:28:45 +0100] cupsdReadClient: 13 POST /printers/ HTTP/1.1
D [20/Jan/2010:21:28:45 +0100] cupsdAuthorize: No authentication data provided.
D [20/Jan/2010:21:28:45 +0100] CUPS-Get-Printers
D [20/Jan/2010:21:28:45 +0100] cupsdProcessIPPRequest: 13 status_code=0 (successful-ok)
D [20/Jan/2010:21:28:45 +0100] cupsdCloseClient: 13
D [20/Jan/2010:21:28:45 +0100] cupsdAcceptClient: 13 from localhost (Domain)
D [20/Jan/2010:21:28:45 +0100] cupsdReadClient: 13 POST /classes/ HTTP/1.1
D [20/Jan/2010:21:28:45 +0100] cupsdAuthorize: No authentication data provided.
D [20/Jan/2010:21:28:45 +0100] CUPS-Get-Classes
D [20/Jan/2010:21:28:45 +0100] cupsdProcessIPPRequest: 13 status_code=0 (successful-ok)
D [20/Jan/2010:21:28:45 +0100] cupsdCloseClient: 13
D [20/Jan/2010:21:28:45 +0100] cupsdAcceptClient: 13 from localhost (Domain)
D [20/Jan/2010:21:28:45 +0100] cupsdReadClient: 13 POST /printers/ HTTP/1.1
D [20/Jan/2010:21:28:45 +0100] cupsdAuthorize: No authentication data provided.
D [20/Jan/2010:21:28:45 +0100] CUPS-Get-Default
D [20/Jan/2010:21:28:45 +0100] cupsdProcessIPPRequest: 13 status_code=0 (successful-ok)
D [20/Jan/2010:21:28:45 +0100] cupsdCloseClient: 13
D [20/Jan/2010:21:28:45 +0100] cupsdAcceptClient: 13 from localhost (Domain)
D [20/Jan/2010:21:28:45 +0100] cupsdReadClient: 13 POST /printers/ HTTP/1.1
D [20/Jan/2010:21:28:45 +0100] cupsdAuthorize: No authentication data provided.
D [20/Jan/2010:21:28:45 +0100] Get-Printer-Attributes ipp://localhost:631/printers/DCP7030
D [20/Jan/2010:21:28:45 +0100] cupsdProcessIPPRequest: 13 status_code=0 (successful-ok)
D [20/Jan/2010:21:28:45 +0100] cupsdCloseClient: 13
D [20/Jan/2010:21:28:45 +0100] cupsdCloseClient: 9
...
Google meint, du sollst mal das Häkchen bei "Erlaube Drucken vom Internet aus" setzen. Bessert sich die Lage dann?
das ist mir klar, darum habe ich das ganz am Anfang gemacht. ;-)
Das ist ein allgemeines Problem mit GDI Drucker. Der Treiber läuft auf dem HOST, deinem Notebook, und er bekommt keine Rückmeldung vom Drucker , weil zwischen dem Drucker und dem HOST der Printserver ist. Das gleiche Problem wirst du auch unter Windows haben.
Man kann GDI Drucker nicht an einem Printserver betreiben.
Ich empfehle dir einen HP Drucker. Wenn du unbedingt Scanfunktion brauchst, dann nimm ein HP Multifunktionsgerät.
Hier sind alle HP Drucker aufgelistet die momentan funktionieren. Du kannst die hplip Treiber auch über aptitude oder synaptic installieren.
http://hplipopensource.com/hplip-web/index.html
unter Suse hat's funktioniert.