Entfernter Cups drucken

Einrichten des Druckers und des Drucksystems, Scannerkonfiguration und Software zum Scannen und Faxen.
Antworten
Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Entfernter Cups drucken

Beitrag von Rossi81 » 12.03.2009 09:29:58

Hallo,
seit meinem Dist Upgrade von Etch auf Lenny habe ich ein Problem mit dem Drucken.
Der Drucker hängt an einem Server auf dem Cups läuft. Client ist ein Laptop mit Gnome Desktop Umgebung und installiertem cups-client. Aus Openoffice kann ich beispielsweise problemlos drucken. Jedoch kann ich aus evince nicht drucken. Die Drucker werden zwar angezeigt, aber der Drucker Button bleibt ausgegraut und funktionslos.
Woran könnte das liegen?
Mit freundlichen Grüßen
Christian

Benutzeravatar
feldmaus
Beiträge: 1316
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: Entfernter Cups drucken

Beitrag von feldmaus » 18.03.2009 00:14:21

Das hört sich ja ulkig an. Hast Du schon mal geschaut, ob die Drucker
auf deinem Cups Server aktiviert sind ?

Kannst du mal in deinen log dateien nach allem schauen wo
cups drinne steht und dies posten?

Grüße Markus

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 18.03.2009 09:36:22

feldmaus hat geschrieben:Das hört sich ja ulkig an. Hast Du schon mal geschaut, ob die Drucker
auf deinem Cups Server aktiviert sind ?
Also die Drucker sind definitiv aktiv, denn ich kann vom Client mit Openoffice, mit Evince aber nicht, drucken.
feldmaus hat geschrieben: Kannst du mal in deinen log dateien nach allem schauen wo
cups drinne steht und dies posten?

Grüße Markus
Ja das mache ich mal fertig. Bin gerade aber nicht an dem entsprechenden Rechner.

mfg
CR

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 18.03.2009 21:11:19

Guten Abend,
in meiner syslog finde ich:

Code: Alles auswählen

Mar 18 20:55:23 hyperion cupsd[3304]: *** WARNING *** The program 'cupsd' uses the Apple Bonjour compatibility layer of Avahi.
Mar 18 20:55:23 hyperion cupsd[3304]: *** WARNING *** Please fix your application to use the native API of Avahi!
Mar 18 20:55:23 hyperion cupsd[3304]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=cupsd>
die Cups Error Log enthält Einträge der Art

Code: Alles auswählen

D [18/Mar/2009:21:06:46 +0100] cupsdNetIFUpdate: "lo" = localhost...
D [18/Mar/2009:21:06:46 +0100] cupsdNetIFUpdate: "eth0" = hyperion.saturn...
D [18/Mar/2009:21:06:46 +0100] cupsdNetIFUpdate: "lo" = localhost...
D [18/Mar/2009:21:06:46 +0100] cupsdNetIFUpdate: "eth0" = fe80::205:5dff:fe80:64b8%eth0...
D [18/Mar/2009:21:06:46 +0100] Report: clients=0
D [18/Mar/2009:21:06:46 +0100] Report: jobs=388
D [18/Mar/2009:21:06:46 +0100] Report: jobs-active=0
D [18/Mar/2009:21:06:46 +0100] Report: printers=7
D [18/Mar/2009:21:06:46 +0100] Report: printers-implicit=0
D [18/Mar/2009:21:06:46 +0100] Report: stringpool-string-count=1906
D [18/Mar/2009:21:06:46 +0100] Report: stringpool-alloc-bytes=8752
D [18/Mar/2009:21:06:46 +0100] Report: stringpool-total-bytes=34192
Die Access Log Der ausgeführte Druckjob kommt von einem Windows Client.

Code: Alles auswählen

192.168.0.11 - - [15/Mar/2009:23:00:21 +0100] "POST /printers/HP_Deskjet_5940 HTTP/1.1" 200 90685 Print-Job successful-ok
localhost - - [18/Mar/2009:19:21:04 +0100] "POST / HTTP/1.1" 200 129 CUPS-Get-Classes successful-ok
localhost - - [18/Mar/2009:19:31:53 +0100] "POST / HTTP/1.1" 200 129 CUPS-Get-Classes successful-ok
localhost - - [18/Mar/2009:20:42:07 +0100] "POST / HTTP/1.1" 200 129 CUPS-Get-Classes successful-ok
Was hat es denn mit diesem Avahi auf sich?
Schönen Abend
CR

Benutzeravatar
feldmaus
Beiträge: 1316
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: Entfernter Cups drucken

Beitrag von feldmaus » 19.03.2009 01:01:55

Avahi soll es Clients erleichtern IP Adressen und Namen ohne DNS Server
zu übersetzten. Allerdings habe ich mich mit Avahi auch noch nie auseinander-
gesetzt.

Mal so eine Idee, hat der Autor der PDF Dokumente die Du mit
Evince öffnest überhaupt vorgesehen, dass Du die Dokumente
drucken darfst ?

Erstelle Dir mal eigene PDF Dokumente und schau mal ob
das immer noch grau ist.

Grüße Markus

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 19.03.2009 11:02:40

Ich habe von meinem Arbeitsrechner aus mal ein Debian in einer virtuellen Umgebung installiert. Da tritt dasselbe Problem auf. Der Druck-Manager kann noch nichtmal eine Testseite drucken, dieses Feld bleibt auch ausgegraut. So vermute ich, dass es am Server liegt?!
mfg
CR

Benutzeravatar
feldmaus
Beiträge: 1316
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: Entfernter Cups drucken

Beitrag von feldmaus » 19.03.2009 13:40:59

Du sagtest allerdings das es von Openoffice, von deinem Laptop aus, möglich ist zu drucken ?!
Dann steht fest, dass Du drucken kannst und somit würde ich den Server ausschließen.

Du könntest spasses halber mal gdb starten und dort evince laufen lassen.
Vielleicht erscheint dort eine Fehler Meldung, die mit dem ausgrauen zu tun hat?!

Code: Alles auswählen

$gdb
run evince
Poste doch mal deine <cupsd.conf>.

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 20.03.2009 19:57:10

feldmaus hat geschrieben:Du sagtest allerdings das es von Openoffice, von deinem Laptop aus, möglich ist zu drucken ?!
Dann steht fest, dass Du drucken kannst und somit würde ich den Server ausschließen.

Du könntest spasses halber mal gdb starten und dort evince laufen lassen.
Vielleicht erscheint dort eine Fehler Meldung, die mit dem ausgrauen zu tun hat?!

Code: Alles auswählen

$gdb
run evince
Poste doch mal deine <cupsd.conf>.
Also der gdb hat nix ergeben, nur Meldungen wie New Thread und Thread exited.
Meine cupsd.conf sieht folgendermaßen aus:

Code: Alles auswählen

DefaultCharset notused
LogLevel debug
Printcap /var/run/cups/printcap
# Allow remote access
Port 631
Listen /var/run/cups/cups.sock
<Location />
  # Allow shared printing...
  Order allow,deny
  Allow @LOCAL
</Location>
<Location /jobs>
  AuthType Basic
  AuthClass User
</Location>
<Location /admin>
  AuthType Basic
  AuthClass System
  # Restrict access to the admin pages...
  Order allow,deny
</Location>
# Enable printer sharing and shared printers.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseAddress @LOCAL
<Location /admin/conf>
  AuthType Basic
  Require user @SYSTEM
  # Restrict access to the configuration files...
  Order allow,deny
</Location>
<Policy default>
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default CUPS-Add-Device CUPS-Delete-Device>
    AuthType Basic
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Cancel-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
Schönen Abend
CR

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Entfernter Cups drucken

Beitrag von Danielx » 20.03.2009 20:46:10

Kannst du evince mal von der Konsole aus starten und nachsehen, welche Meldungen erscheinen, wenn du zu drucken versuchst bzw. wenn du einen Drucker auswählst.

Gruß,
Daniel

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 20.03.2009 20:53:48

Danielx hat geschrieben:Kannst du evince mal von der Konsole aus starten und nachsehen, welche Meldungen erscheinen, wenn du zu drucken versuchst bzw. wenn du einen Drucker auswählst.

Gruß,
Daniel
Da erscheinen leider garkeine Fehlermeldungen :-(
mfg
CR

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Entfernter Cups drucken

Beitrag von Danielx » 20.03.2009 21:11:08

Richte mal bitte auf dem CUPS-Server einen zusätzlichen Drucker ein, der aber den gleichen physikalischen Drucker anspricht.
Was steht denn bei Evince im Druckdialog bei Standort?

Gruß,
Daniel

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 20.03.2009 22:00:25

Danielx hat geschrieben:Richte mal bitte auf dem CUPS-Server einen zusätzlichen Drucker ein, der aber den gleichen physikalischen Drucker anspricht.
Was steht denn bei Evince im Druckdialog bei Standort?

Gruß,
Daniel
Guten Abend Daniel,
Drucker hab ich eingerichtet, das gleiche Problem. Beim Standort steht das was ich eingestellt habe im Cups.
mfg
CR

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 21.03.2009 15:13:12

So ich hab jetzt das Problem anscheinend gelöst. Ich habe in der cupsd.conf in der Sektion Location / Allow From 192.168.0.0/24 eingetragen und dann gings lustigerweise, aber warum gings nicht über LOCAL, die Rechner sind doch im gleichen Subnetz?
mfg
CR

Benutzeravatar
feldmaus
Beiträge: 1316
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: Entfernter Cups drucken

Beitrag von feldmaus » 21.03.2009 15:21:39

Rossi81 hat geschrieben:So ich hab jetzt das Problem anscheinend gelöst. Ich habe in der cupsd.conf in der Sektion Location / Allow From 192.168.0.0/24 eingetragen und dann gings lustigerweise, aber warum gings nicht über LOCAL, die Rechner sind doch im gleichen Subnetz?
Ich werde mir deine cups config zu Hause nochmal anschauen.
Die grundsätzliche Frage ist, was versteht er unter LOCAL ?
Da ich erst Montag zu Hause bin kann ich dir weiteres erst Montag sagen. :-)

Ich vermute das <polen> der vorhandenen Drucker musst Du auch nochmal
für Dich besser anpassen ?!
<polen> war das holen von vorhandenen Druckern, das tun die
Clients immer in regelmäßigen Abständen.

Grüße Markus

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 21.03.2009 16:08:18

Wo findet man denn das, was unter @LOCAL steht?
Wo kann man das Poll einstellen?
mfg
CR

Benutzeravatar
feldmaus
Beiträge: 1316
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: Entfernter Cups drucken

Beitrag von feldmaus » 21.03.2009 21:38:24

Rossi81 hat geschrieben:Wo findet man denn das, was unter @LOCAL steht?
Wo kann man das Poll einstellen?
mfg
CR
Also grundsätzliche Hilfe zu den Befehlen kannst Du über deinen Browser
bekommen:
http://deinServer:631
Dort gibt es eine Hilfe Seite, die cupsd.conf Druckerverwaltung ...

Grüße Markus

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Entfernter Cups drucken

Beitrag von Danielx » 22.03.2009 03:23:16

feldmaus hat geschrieben:Die grundsätzliche Frage ist, was versteht er unter LOCAL ?
Mit LOCAL sind alle Subnetze der lokalen Interfaces gemeint.

Hier mal ein kleines Programm, welches die entsprechenden lokalen Subnetze ausgibt, die CUPS unter LOCAL versteht:

Code: Alles auswählen

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <net/if.h>
#include <ifaddrs.h>
#include <errno.h>
#include <stdio.h>

int main()
{
  struct ifaddrs *interfaceArray = NULL, *tempIfAddr = NULL;
  void *tempAddrPtr = NULL;
  int rc = 0;
  char addressOutputBuffer[INET6_ADDRSTRLEN];

  rc = getifaddrs(&interfaceArray);
  if (rc == 0)
  {
    printf("Local Interfaces\n\n");

    for(tempIfAddr = interfaceArray; tempIfAddr != NULL; tempIfAddr = tempIfAddr->ifa_next)
    {
      if ((tempIfAddr->ifa_addr->sa_family == AF_PACKET) || (tempIfAddr->ifa_flags & IFF_POINTOPOINT))
        continue;

      if(tempIfAddr->ifa_addr->sa_family == AF_INET)
        tempAddrPtr = &((struct sockaddr_in *)tempIfAddr->ifa_addr)->sin_addr;
      else
        tempAddrPtr = &((struct sockaddr_in6 *)tempIfAddr->ifa_addr)->sin6_addr;

      printf("Interface      :  %s \n", tempIfAddr->ifa_name);

      printf("Address family :  %s\n",
              (tempIfAddr->ifa_addr->sa_family == AF_INET) ?   "AF_INET" :
              (tempIfAddr->ifa_addr->sa_family == AF_INET6) ?  "AF_INET6" : "");

      printf("Address        :  %s \n",
             inet_ntop(tempIfAddr->ifa_addr->sa_family,
                       tempAddrPtr,
                       addressOutputBuffer,
                       sizeof(addressOutputBuffer)));

      if(tempIfAddr->ifa_netmask != NULL)
      {
        if(tempIfAddr->ifa_netmask->sa_family == AF_INET)
          tempAddrPtr = &((struct sockaddr_in *)tempIfAddr->ifa_netmask)->sin_addr;
        else
          tempAddrPtr = &((struct sockaddr_in6 *)tempIfAddr->ifa_netmask)->sin6_addr;

        printf("Netmask        :  %s \n",
               inet_ntop(tempIfAddr->ifa_netmask->sa_family,
                         tempAddrPtr,
                         addressOutputBuffer,
                         sizeof(addressOutputBuffer)));
      }
      printf("\n");
    }

    freeifaddrs(interfaceArray);
    interfaceArray = NULL;
  }
  else
  {
     printf("getifaddrs() failed with errno =  %d %s \n",
            errno, strerror(errno));
     return rc;
  }
}
Bei CUPS sind die Funktionen cupsdAllowHost und cupsdCheckAuth in der Datei ./scheduler/auth.c dafür zuständig.

Gruß,
Daniel
Zuletzt geändert von Danielx am 31.03.2009 02:45:31, insgesamt 2-mal geändert.

Benutzeravatar
feldmaus
Beiträge: 1316
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

Re: Entfernter Cups drucken

Beitrag von feldmaus » 23.03.2009 21:53:36

Rossi81 hat geschrieben:So ich hab jetzt das Problem anscheinend gelöst. Ich habe in der cupsd.conf in der Sektion Location / Allow From 192.168.0.0/24 eingetragen und dann gings lustigerweise, aber warum gings nicht über LOCAL, die Rechner sind doch im gleichen Subnetz
Du solltest deinen cups Server nur soweit zugänglich machen, dass das
Sicherheitsprinzip gewart bleibt. Natürlich ist diese Entscheidung Dir überlassen.

So ein paar Unterschiede zu meiner habe ich schon mal, bei mir gibt es:

Code: Alles auswählen

Browsing On
BrowseOrder allow,deny
BrowseAllow @LOCAL
DefaultAuthType Basic
@Danielx
Was bedeutet denn nun LOCAL ?
Wenn es sich bei dem Cups Server auch um einen
Router handelt mit DSL Zugang, dann ist auch das ppp0
Interface LOCAL ?

Grüße Markus

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Entfernter Cups drucken

Beitrag von Danielx » 23.03.2009 22:39:32

feldmaus hat geschrieben:Was bedeutet denn nun LOCAL ?
LOCAL = alle IP-Adressen, welche zu den Subnetzen der lokalen Interfaces gehören.
Lokale Interfaces sind alle Interfaces, welche nicht "Point-to-Point" sind.
feldmaus hat geschrieben:Wenn es sich bei dem Cups Server auch um einen
Router handelt mit DSL Zugang, dann ist auch das ppp0
Interface LOCAL ?
Nein, damit ist das Interface nicht lokal, da es dann eben ein "Point-to-Point"-Interface ist.
Siehe Zeile 24-25 (IFF_POINTOPOINT) in meinem Programm. ;-)

Ich hoffe ich habe das jetzt verständlich erklärt.

Gruß,
Daniel

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 30.03.2009 22:06:53

Hallo,
entschuldigt bitte, ich habe ein wenig länger gebraucht.
die Ausgabe deines Programmes,Danielx,sieht folgendermaßen aus:

Code: Alles auswählen

Local Interfaces

Interface      :  lo 
Address family :  AF_INET
Address        :  127.0.0.1 
Netmask        :  255.0.0.0 

Interface      :  eth0 
Address family :  AF_INET
Address        :  192.168.0.1 
Netmask        :  255.255.255.0 

Interface      :  lo 
Address family :  AF_INET6
Address        :  ::1 
Netmask        :  ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 

Interface      :  eth0 
Address family :  AF_INET6
Address        :  fe80::205:5dff:fe80:64b8 
Netmask        :  ffff:ffff:ffff:ffff:: 
Daraus entnehme ich, dass eigentlich Rechner die im Netz 192.168.0.0 hängen für CUPS zu LOCAL gehören, oder? Ich werde das Gefühl nicht los, dass ich http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=512234 diesem Bug aufgesessen bin, vielleicht ist das ja die Erklärung.
Schönen Abend
CR

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Entfernter Cups drucken

Beitrag von Danielx » 31.03.2009 01:45:19

Rossi81 hat geschrieben:Daraus entnehme ich, dass eigentlich Rechner die im Netz 192.168.0.0 hängen für CUPS zu LOCAL gehören, oder?
Ja, Rechner aus dem Netz 192.168.0.x gehören zu @LOCAL.
Rossi81 hat geschrieben:Ich werde das Gefühl nicht los, dass ich http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=512234 diesem Bug aufgesessen bin, vielleicht ist das ja die Erklärung.
Hm, ich kann den Zusammenhang nicht erkennen.

Gruß,
Daniel

Rossi81
Beiträge: 27
Registriert: 12.03.2009 08:56:18

Re: Entfernter Cups drucken

Beitrag von Rossi81 » 31.03.2009 08:52:22

Guten Morgen,
ich musste auch explizit die 192.168.0.0/24 einführen, daher dacht ich. Kann sein, dass meine Vermutung falsch ist.
Naja es geht erstmal, also werde ich es so lassen.
Vielen Dank für Eure Hilfe
Mit freundlichen Grüßen
CR

Antworten