• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Sehr lange Verzögerung/Wartezeit bis Druck beginnt

zven

Newbie
Hallo,
ich habe versucht eine möglichst passende Überschrift zu meinem Problem zu finden. "Druckerproblem" wie bei vielen wäre wohl etwas nichtssagend gewesen. Die Frage wär auch vielleicht was für's Forum "Drucker", aber nun zum Problem:
Wenn ich auf meinem Netzwerkdrucker, den ich unter Linux eingerichtet habe, einen Druckauftrag von meinen Windows-Rechnern übermittle, passiert eine Zeit lang erst mal nichts. Das Problem zeigt sich schon, wenn ich im Drucken-Fenster den Netzwerkdrucker auswählen will. Er braucht eine Ewigkeit, bis man mit der Dropdown-Box den Netzwerkdrucker ausgewählt hat. Das liegt daran, dass Windows ständig haufenweise Daten sendet oder vom Server empfängt. Die LEDs vom Router brennen fasst durch. Der Drucker ansich funktioniert unter Suse wunderbar.
Welche fitzel Variabel muss ich umstellen, damit nicht dauernd (wahrscheinlich überflüssige) Daten gesendet werden. Zur Zeit ist das so unzumutbar. Besonders wenn ich über 54mbit wlan auf den Drucker zugreifen will, braucht das mindestens 2 Minuten! Bis der Druck dann endlich los geht, vergehen wieder ein paar.
windows sagt bei der Installation des Netzwerkdruckers, dass Linux/Samba keine Druckertreiber hinterlegt hat. Mich hatte das nicht gestört, da ich einfach die Windows-Treiber auf den Windows-Rechnern für den Drucker installiert habe. Eine Inkompatibiltät?

Hier noch ein paar Fakten:
Suse Linux 9.3 (immer up to date) mit Samba 3.0.12. Der Drucker ist ein Epson Stylus cx5400, der auch erkannt wird. Treiber sind bei Suse dabei. Meine Windows-Clients sind XP Home und Prof.
Der Drucker wurde automatisch von Samba freigegeben. Admin-User sind unteranderem auch "nobody"=guest.

Danke für Vorschläge!
 
Ich probier mal einen Schuss ins blaue:

Hast du einen DNS-Server laufen?
Oder hast du die Rechner einfach nur in einer Arbeitsgruppe ohne weitere Server?

Ich frage deswegen:
Wenn du beispielsweise eine Domäne hast mit einem anständigen DNS-Server (in deinem Netzwerk), dann geht die Namensauflösung recht fix. Das heisst: Der Windows-Rechner holt sich die IP von deinem Samba Server über den DNS-Server, was wesentlich schneller geht als wenn er ihn selber suchen müsste. Wenn er dann die IP und die ganzen Netzwerkdaten zusammengekratzt hat, dann verbindet er sich mit dem Druckserver und beginnt das Drucken.

Wenn du aber nur eine einfache Arbeitsgruppe hast, und dann vielleicht noch einen gemeinsamen Internetzugang für alle. Und du nun die DNS-Server im Internet angegeben hast, dann passiert folgendes:
Der Windows-Rechner versucht erst mal den DNS-Server im Internet zu fragen, was für eine IP dein Druckserver hat. Logischerweise weis er das nicht. Hier ist also schon eine Zeitverschwendung vorhanden. Nun beginnt Windows erst mit dem eigenständigen suchen. Und das dauert. Wenn Windows dann den Druckserver gefunden hat, dann beginnt der Druck.

Mögliche Lösung:
1. Lösung: (die Elegante)
Setz in deinem Netzwerk einen DNS-Server auf und mach diesen für alle Rechner in deinem Netzwerk bekannt.

2. Lösung: (die vielleicht Einfachere)
Verbinde den Windows-Rechner mit dem Druckserver nicht über den Computernamen, sondern direkt mit der IP-Adresse.
Sag also nicht, der Drucker ist //Sambaserver/Drucker1 sondern
//192.168.3.34/Drucker1
Das problem an dieser Lösung ist: du musst mit statischen IP's arbeiten und kannst kein DHCP verwenden.

Konnte ich helfen?
 
OP
Z

zven

Newbie
BrotBraeuner schrieb:
Hast du einen DNS-Server laufen?
Oder hast du die Rechner einfach nur in einer Arbeitsgruppe ohne weitere Server?
Letzteres, nichts besonderes.

Also ich habe beide Arten mal ausprobiert, aber eine Beschleunigung hat's nicht gegeben.
Ich weiß nicht was Windows so alles macht, aber selbst wenn ich auf "Eigenschaften" des Druckers klicke, überträgt er jede Menge Daten.
Oder kann es sein, dass die Bandbreite, die für die Übertragung sehr gering eingestellt ist?

Trotzdem vielen Dank für den Vorschlag, dass finde ich sehr freundlich.
Grüße, Sven
 

SD582

Member
Hi

Ein sehr ähnliches Problem hatte ich vor etwar einem Jahr auch.
Nur wars bei mir so, daß von einem Windows Rechner aus das Drucken eigentlich immer normal ging und von drei anderen aus fast immer sehr sehr langsam. Manchmal gings aber auch da.

Der entsprechende Thread ist hier http://www.linux-club.de/viewtopic.php?t=17132

Leider konnte mir auch keiner helfen, worauf ein paar Wochen später Suse 9.1 zu Grabe getragen und durch XP ersetzt wurde.

Momentan spiele ich wieder mit dem Gedanken es mit Suse 9.3 auf ein Neues zu versuchen. Aber ich befürchte, ich kann das gleich wieder verwerfen :(

Gruß
Franz
 
OP
Z

zven

Newbie
Ist dies ein generelles Problem, das bei Windows-Clients und Samba-Druck-Servern existiert? Oder liegt das an den Windows-Druckertreibern? Ich werde mal ausprobieren, ob ich sich Standard-Treiber besser machen.
 

Frankie777

Advanced Hacker
Warum unbedingt Samba zum Drucken nehmen, in kleinen Umgebungen ist das nicht unbedingt erforderlich.

CUPS installieren
Unix-Druckdienste bei Win Aktivieren.
Drucker über LPR-Anschluß eintragen.
fertig, ist deutlich performanter als Samba noch dazwischen zu haben
 

SD582

Member
Hi

Jo wenn das auch geht....
Das hat uns (mir) noch keiner gesagt :roll:

Das muß ich dann gleich mal ausprobieren. Ich dachte immer ohne Samba geht mit Windows-Clients garnix.

Gruß
Franz
 

Frankie777

Advanced Hacker
Hier eine Kurzanleitung dazu:

Drucker auf CUPS-Server installieren
Windows Systemsteuerung
Software
Windows Komponenten hinzufügen/entfernen
weitere Datei und Druckdienste
"Druckdienste für Unix" installieren
Drucker hinzufügen
Lokalen Drucker ohne PlageandPanne hinzufügen
Einen neun Anschluß erstellen Typ LPR
Servername und Druckername aus CUPS eintragen (ohne // oder \\)
Kommunikation mit TCP/515 zum CUPS Server, evtl. Firewall öffnen
 

SD582

Member
Hi

Noch eine Frage dazu:

Type LPR

Ich schau gerade in der Druckerkonfig auf meinem Firmenrechner nach. Da habe ich die Porttypen
- Local Port
- M$...........
- Standard TCP/IP Port
zur Auswahl

LPR würde ich am ehesten mit LocalPrinter, also Local Port übersetzen. Andererseits käme mir Standard TCP/IP Port logischer vor.

Was ist hier jetzt richtig?

Gruß
Franz
 

Frankie777

Advanced Hacker
Der LPR Port fehlt!
Druckdienste für Linux vorher installiert?

Meine Angaben stimmen mindestens für Win2003 und XP ProfSP2, bei Win2K bin ich mir nicht mehr sicher...

---
Ein TCP/IP Port ist übrigens auch eine nette Lösung.
Wenn Du einen PrintJet kaufst wird der Drucker parallel oder USB an den PrintJet angeschlossen und der PrintJet über Ethernet mit dem Netz verbunden. Der PrintJet kann dann direkt von den Clients über TCP/IP angesprochen werden. Auch eine sehr schlanke Lösung und kommt ganz ohne Server aus.
 
OP
Z

zven

Newbie
Hi,
ich habe mit meinem CUPS-Drucker unter XP Home noch so meine Probleme. Der Drucker wurde automatisch und erfolgreich unter Suse 9.3 hinzugefügt. Ich kann eine hübsche Testseite ausdrucken. Danach habe ich versucht, den Drucker unter Windows XP Home hinzuzufügen. Ich habe den Assistenten aufgerufen und einen Internet-Drucker hinzugefügt. Ich habe den Pfad angegeben, den mir Linux gesagt hat, der wie lautet:
Code:
ipp://homeserver:631/printers/cx5400
Das ipp habe ich durch http ersetzt. Windows akzeptiert diesen so problemlos. Hätte ich dort was falsches eingeben, hätte Windows gemeckert. Dann will ich einen Druckauftrag in Auftrag geben, doch die Aufträge kommen aus dem Spooler nicht raus. Schaue ich in die Warteschlange für den Drucker, steht bei Status "Fehler" (sehr aussagekräftig). In den Log-Dateien von Windows steht auch nix.
Hat irgendjemand eine Ahnung, warum die Daten nicht gesendet werden können?
 

SD582

Member
Hi

Ich bekomme das nicht wirklich zum laufen:

Frankie777 schrieb:
Hier eine Kurzanleitung dazu:

> Drucker auf CUPS-Server installieren

hab ich gemacht - lokaler Druck OK - CUPS Weboberfläche von Außen erreichbar aber kein Login möglich (auch lokal nicht) - noch kein Password vergeben

> Windows Systemsteuerung
> Software
> Windows Komponenten hinzufügen/entfernen
> weitere Datei und Druckdienste
> "Druckdienste für Unix" installieren

Durchgeführt

> Drucker hinzufügen
> Lokalen Drucker ohne PlageandPanne hinzufügen
> Einen neun Anschluß erstellen Typ LPR
> Servername und Druckername aus CUPS eintragen (ohne // oder \\)

sollte passen, wobei aber gemeldet wurde, daß das Testkommando nicht korrekt beantwortet wurde.

> Kommunikation mit TCP/515 zum CUPS Server, evtl. Firewall öffnen

Externes Drucken funktioniert nicht "Drucker wird verwendet oder Druckerfehler".
Firewall ist intern total offen
Ein Versuch mit "Telnet 192.168.0.7 515" oder auch lokal mit "Telnet localhost 515" funktioniert nicht.

Kann man da noch etwas prüfen? nachsehen? schrauben? einstellen?

Gruß
Franz
 

Frankie777

Advanced Hacker
Wenn das Testprogramm bei Win nicht geht ist der Drucker nicht erreichbar. Es muß genau der Druckername eingegeben werden.

#lpstat -t zeigt Dir Deine Drucker an.
# nmap localhost -p 515 zeigt Dir einen open Port
#netstat - lntp zeigt Dir an ob auf 515 gehorcht wird
# telnet localhost 515 zeigt Dir zwar nichts in der Console, erzeugt aber einen Eintrag im Logfile
Sep 20 21:45:55 linux cups-lpd[4633]: Connection from localhost (127.0.0.1)
---------------[/var/log/xinetd.log]---------------
05/9/20@21:45:55: START: printer from=127.0.0.1

Wenn CUPS nicht richtig läuft siehe Suse Hilfe, da ist das gut erläutert auch wie man ein password vergibt.
 

SD582

Member
Hi

Es war noch sehr viel rumsucherei und probiererei, aber jetzt hab ich's :)

Port 515 war nicht offen und ich hatte keine Ahnung wie ich die Mühle dazu bringe den Port zu öffnen.
Es gab kein xinetd.log und auch kein inetd.log. Das brachte mich auf die Idee, in der xinetd-Konfiguration nachzusehen. Und da habe ich nach längerem Suchen einen Dienst namens 'printer' gefunden. Das kam mir verdächtig vor.

Fazit: es muß nicht nur CUPS laufen, was ja laut rccups status der Fall war, sondern es muß auch dieser printer - dämon laufen

Jetzt gibt es nur noch das Thema mit dem octet-Stream ( http://www.linux-club.de/viewtopic.php?t=8825 ) zu beheben, dann sollte der Druck ohne Samba laufen :)

Danke Frankie777 :)
Aber das mit dem printer-dämon hättest du auch gleich dazu sagen können ;)

Gruß
Franz
 

marcof123

Newbie
Auch ich habe die selben Probleme wie der Threadverfasser. Jedoch würde ich gerne wissen, ob man dieses Problem auch in Samba in den Griff bekommt. Normal ist das ja nicht, dass diese enorme Verzögerung auftritt. Was könnte man außer den bereits genannten Punkten noch versuchen um das Ganze zu beschleunigen?
 

Frankie777

Advanced Hacker
Das ist ja ein uralter Thread.

Wenn bei Deinem Win XP SP2 die Prozessorlast hoch geht und es lange dauert dann kann man die registry verändern und das Problem ist weg.
Mehr Infos habe ich dazu nicht, es ist zu lange her.
 
Ich habe das Problem auch. Nun habe ich meine Drucker aber (unter anderem deswegen) an einzelne Printserver gehängt und da dauerts auch ewig, bis Win XP was tut bei heftigem Datenverkehr.
Ach ja, die Win98-clients mucken nicht...

Ich suche auch verzweifelt eine Lösung. Samba/CUPS scheint aber nicht dran schuld zu sein.
Bei mir läuft alles an name-Diensten: DNS und Wins und alles andere läuft ja auch sehr gut, nur diese doofen Drucker...

Einmal angewählt drucken die jedenfalls gut.

Grüße
 

Frankie777

Advanced Hacker
Das hier mal probieren:

Gerald (Jerry) Carter wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> david rankin wrote:
...
> | Procedure:
> | 1. Edit the registry observing usual caution.
> | 2. Locate the key HKEY_CURRENT_USER\Printers\DevModePerUser
> | 3. Remove all VALUES for Network printers of the form:
> | \<print_server_name ><printer_queue_name>
> | 4. Locate the key HKEY_CURRENT_USER\Printers\DevModes2
> | 5. Remove all VALUES for Network printers of the form:
> | \<print_server_name><printer_queue_name>
>
>
> The Windows print cache is timestamp based.  The client
> spooler gets in a loop where it continually asks the
> server for the timestamp (ChangeID) on a given printer.
> In spite of the fact that the timestamp has been incremented
> by some change to the printer, the client never updates
> its local cache of printer data.  And so it continually
> thinks it is out of date.

I'm afraid this is not enough:

I have an XP machine with two users
(domain logon, roaming profile, both
have administrator privileges on the pc).

User no. 2:

1. regedit, remove the values above.
2. exit regedit, log out&in
3. check regedit, no printers appear in
    DevModePerUser or DevModes2
4. start a program that uses a printer,
    access is fine. Exit program.
5. start regedit, no printers appear in
    DevModePerUser or DevModes2

User no. 1

1. regedit, remove the values above.
2. exit regedit, log out&in
3. check regedit, no printers appear in
    DevModePerUser or DevModes2
4. start a program that uses a printer,
    access is slow. Exit program.
5. start regedit, the default printer appears
    in DevModePerUser

Why this difference between users?

Mogens
 
Oben