web-dev-qa-db-ja.com

Ubuntu Server 10.04で印刷するときに10秒の遅延があるのはなぜですか?

さまざまなフォーラムでこれや同様の質問をする投稿をたくさん見ましたが、誰も解決策を提供できないようです。

基本的な問題は次のようになります。

[古いバージョンのLinuxディストリビューションを挿入]では印刷は正常に機能しましたが、[新しいバージョンのLinuxディストリビューション]に更新した後、ファイルを印刷キューに送信してからプリンターが実際に印刷されるまでに[5,10,15]秒の遅延が発生します。印刷を開始します。

私の特定のケースでは、Ubuntu 8.04ですぐに印刷が開始されましたが、10.04にアップグレードした後、10秒の遅延があります。私はこれをUbuntuServerで実行し、lprコマンドで印刷していますが、問題は10.04デスクトップにも存在します。私が読んだことから、それはまた、MOSTLinuxディストリビューションの新しいバージョンにも影響を及ぼします。 Fedora、OpenSUSE、Archなど。

プリンターはすべてネットワークプリンターです。 Windowsからの印刷もすぐに行えます。プリンタのライトがすぐに点滅し始めますが、10〜15秒間何も表示されません。

Ubuntu10.04はCUPS1.4.3を使用します。 CUPSのバグかもしれないと思ったので、Ubuntuの1.4.3を置き換えるためにCUPS 1.4.5(最新の安定版)をコンパイルしました。しかし、まだ遅れがあります。

何がこれを引き起こしているのか考えていますか?または、問題のトラブルシューティングを行って、原因を特定する方法はありますか?


[〜#〜] update [〜#〜]:loglevelをデバッグに設定し、1つのジョブのログに約660行の出力を取得しました。送信したテストファイルは、キューに追加されてから出てくるまでに10秒かかりました。

ここにすべてを投稿することはしませんが(本当に必要な場合を除いて)、ここにハイライトがあります。

仕事は合図され、同じ秒でたくさんのことが起こります。その秒の最後の行は次のとおりです。

D [28/Nov/2010:14:44:19 -0500]
   Discarding unused printer-state-changed event...

次のログ行は、4秒後に完全に発生します。

D [28/Nov/2010:14:44:23 -0500]
  [Job 3071] prtGeneralCurrentLocalization type is 0, expected 2!

したがって、ここでは何らかの理由で4秒の遅延があります。

1秒後に取得します:

 D [28/Nov/2010:14:44:23 -0500] PID 15448(/ usr/lib/cups/filter/pdftoraster)はエラーなしで終了しました。
 D [28/Nov。/2010:14:44:24 -0500] [ジョブ3071] 8192バイトの印刷データを書き込みました... 
 D [28/Nov/2010:14:44:24 -0500] [ジョブ3071]読み取り8192バイトの印刷データ... 
 I [28/Nov/2010:14:44:24 -0500] [ジョブ3071]ページ1の印刷、57%完了... 
 I [ 28/Nov/2010:14:44:24 -0500] [ジョブ3071]ページ1の印刷、59%完了... 
 D [28/Nov/2010:14:44:24-0500]破棄未使用のジョブ進行イベント... 
 D [28/Nov/2010:14:44:24-0500]未使用のプリンター状態変更イベントを破棄しています... 
 I [28/Nov。/2010:14:44:24 -0500] [ジョブ3071]ページ1の印刷が60%完了しています... 

これは次のように繰り返されます。

 I [28/Nov/2010:14:44:26 -0500] [Job 3071]ページ1の印刷、99%完了... 
 D [28/Nov/2010:14: 44:26-0500]未使用のジョブ進行イベントを破棄しています... 
 D [28/Nov/2010:14:44:26-0500]未使用のプリンタの状態が変更されたイベントを破棄しています... 
私[2010年11月28日:14:44:26-0500] [ジョブ3071]印刷する準備ができました。

次に、次のようになります。

 D [28/Nov/2010:14:44:26 -0500] [Job 3071] 8192バイトの印刷データを書き込みました... 
 D [28/Nov/2010:14:44 :26 -0500] [ジョブ3071] 8192バイトの印刷データを読み取ります... 

まで何度も何度も:

 D [28/Nov/2010:14:44:29 -0500] [Job 3071] 3361バイトの印刷データを読み取ります... 
 D [28/Nov/2010:14:44 :29 -0500] [Job 3071] 3361バイトの印刷データを書き込みました... 
 I [28/Nov/2010:14:44:29 -0500] [Job 3071]印刷ファイルが送信され、プリンターを待機しています終わる...

これは、プリンターが実際に出力の生成を開始するポイントです。完全に10秒後。

5
Nick

私は同じことのいくつかを経験します。これがあなたと同じ問題であるかどうかはわかりませんが、レシートプリンターでは、印刷時に突然4秒の遅延が発生し始めたものもあれば、すぐに発生したものもあります。

これは、Cupsのアップグレード(Slackware linux)の後でした。

多くのデバッグの結果、SNMPをサポートしているプリンターには遅延がないのに対し、SNMPをサポートしていないプリンターには遅延があることがわかりました。

アップグレード後、cupsは、実際の印刷ジョブを送信する前に、SNMPによってプリンターから情報を取得しようとしているようです。

この機能を無効にする方法を探しています...解決策が見つかった場合は、返信を試みます。

これらのプリンターへのraw/socket接続を使用していることを言及する必要があります。わかりました RedHatにはこれに関するバグが報告されています ですが、表示することは許可されていません(BZ#709896)

CupsでSNMP通信を無効にする方法がわかりません。 :\

3
user127222

あなたの質問に対する潜在的な無関係な答えですが、確かに私の質問に対する答えはローカルUSBサーマルプリンターでした-なぜそれが印刷の間に5秒の遅延を引き起こしたのですか?.

解決策は、CUPSのように双方向通信を行うようにすべてのUSBプリンターをセットアップする必要があるわけではないことが判明しました。そのため、カップの/ usr/share/cups/usb領域にプリンターの「癖」を設定して、特定のプリンター「ID」を含め、「unidir」、「no-reattach」、「soft-reset」などのフラグを設定するように見えました。私のために問題を完全に修正します。うまくいけば、同じ問題を探している人は、カップコードへのデバッグを数時間節約して、USB読み取りスレッドが終了するのを待っている(明らかに5秒)というデバッグ出力を入力すると明らかなことを理解できます。

1
Michael Smith

私はuser127222で同じ経験をしています。 SNMPがサポートされていない一部のプリンターでは、印刷ジョブに4秒の遅延があります。 CUPSでそれらのコードを研究した後:

  if ((ppd = ppdOpenFile(getenv("PPD"))) == NULL ||
      ((ppdattr = ppdFindAttr(ppd, "cupsSNMPSupplies", NULL)) != NULL &&
       ppdattr->value && _cups_strcasecmp(ppdattr->value, "true")))
  {
    ppdClose(ppd);
    return;
  }

そのプリンタのPPDファイルを更新することで、これらのSNMP要求を無効にできることがわかりました。使用:

*cupsSNMPSupplies: False

参照: CUPS PPD拡張機能

1
sonicli

プリンターとの通信にも問題があるようですので、ubuntuforumsの次の投稿をご覧になることをお勧めします。

http://ubuntuforums.org/showthread.php?t=110127

それが役立つことを願っています、RayQuang

1
RayQuang