「CUPS/トラブルシューティング」の版間の差分
(mDNSでプリンタを見つけられない問題の解決法を追記した) |
|||
(3人の利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
[[Category:プリンター]] |
[[Category:プリンター]] |
||
[[en:CUPS/Troubleshooting]] |
[[en:CUPS/Troubleshooting]] |
||
+ | [[ru:CUPS (Русский)/Troubleshooting]] |
||
− | {{Note|メインの記事は [[CUPS]] を見て下さい。}} |
||
+ | {{Related articles start}} |
||
+ | {{Related|CUPS}} |
||
+ | {{Related|CUPS/プリンター別の問題}} |
||
+ | {{Related articles end}} |
||
この記事では一般的な CUPS の問題と印刷ドライバーに関するトラブルシューティングを提供しています (プリンターの共有については取り扱っていません)。問題の原因を調べる方法や特定の問題を解決する方法があります。 |
この記事では一般的な CUPS の問題と印刷ドライバーに関するトラブルシューティングを提供しています (プリンターの共有については取り扱っていません)。問題の原因を調べる方法や特定の問題を解決する方法があります。 |
||
53行目: | 57行目: | ||
lpd://BRN_020554/BINARY_P1 |
lpd://BRN_020554/BINARY_P1 |
||
− | ホスト名 'BRN_020554' が CUPS を動かしているサーバーからプリンターの IP に解決されるようにする必要があります。 |
+ | ホスト名 'BRN_020554' が CUPS を動かしているサーバーからプリンターの IP に解決されるようにする必要があります。[[Avahi]] を使用している場合、[[Avahi#ホスト名の解決|Avahi のホストネーム解決]]が機能していることを確認してください。 |
+ | |||
+ | もしくは、URI のホストネームをプリンターの実際の IP アドレスに置き換えてください。 |
||
=== PPD のバージョンが gutenprint と互換性がない === |
=== PPD のバージョンが gutenprint と互換性がない === |
||
61行目: | 67行目: | ||
そして CUPS を再起動してください (このことは gutenprint のインストール後のメッセージでも指示されます)。 |
そして CUPS を再起動してください (このことは gutenprint のインストール後のメッセージでも指示されます)。 |
||
+ | |||
+ | === GTK3 アプリケーションの印刷ダイアログでプリンターが表示されない === |
||
+ | |||
+ | GTK3 のバージョン 3.22.26 以前までは GTK3 の印刷ダイアログにプリンターを表示するには {{ic|gtk3-print-backends}} パッケージが必要でした。インストールしていない場合 [[gedit]] や [[Firefox]] などのアプリケーションで印刷ができず、CUPS のウェブインターフェイスや lpstat ではプリンターが認識されるため、コマンドラインや GIMP などの GTK2 アプリケーションからは印刷できる状態でした。 |
||
+ | |||
+ | バージョン 3.22.26 から {{Pkg|gtk3}} パッケージにバックエンドが統合されたためパッケージのインストールは不要になりました。 |
||
== ネットワークの問題 == |
== ネットワークの問題 == |
||
+ | |||
+ | === Unable to locate printer === |
||
+ | |||
+ | CUPS でネットワークプリンターが探知されるのに、何か印刷しようとすると "Unable to locate printer" エラーが表示されることがあります。Avahi の [[Avahi#ホスト名の解決|.local ホストネーム解決]]を有効にすることで問題は解決します。詳しくは [[CUPS#ネットワーク]]を見てください。 |
||
+ | |||
+ | ファイアウォールを使っている場合に問題が発生することもあります。ファイアウォールを無効化したり適切なルールを設定する必要がある場合があります。system-config-printer によるネットワークプリンターの検出は自動的に行われます。 |
||
+ | |||
+ | === 古い CUPS サーバー === |
||
+ | |||
+ | CUPS バージョン 1.6 から、クライアントはデフォルトで IPP 2.0 を使用します。CUPS 1.5 / IPP 1.1 以下を使っている場合、クライアントのプロトコルは自動的にダウングレードされないため、サーバーと接続ができません。URL に {{ic|1=version=1.1}} オプションを追加することで解決します [https://www.cups.org/doc/network.html#TABLE2]。 |
||
=== CUPS によってプリンターが認識されるのに接続できない === |
=== CUPS によってプリンターが認識されるのに接続できない === |
||
70行目: | 92行目: | ||
例: {{ic|socket://192.168.11.6:9100}}。ポート番号は [[nmap]] や {{ic|telnet ''your-printer-ip'' 9100}} で確認できます。 |
例: {{ic|socket://192.168.11.6:9100}}。ポート番号は [[nmap]] や {{ic|telnet ''your-printer-ip'' 9100}} で確認できます。 |
||
+ | === ローカルでは共有プリンターが機能するのにリモートマシンから印刷できない === |
||
− | === Windows 印刷サーバーの URI === |
||
+ | 印刷ジョブがローカルマシンとリモートマシンの両方でフィルタを通して送信されているのが原因です。[[CUPS#ネットワーク_2|CUPS]] ページの警告を見てください。 |
||
− | ときどき Windows では実際のデバイスの URI (デバイスの場所) がよくわからない場合があります。CUPS で適切なデバイスの場所を指定するのに困ったときは、次のコマンドを実行して特定の windows のユーザー名で利用できる共有を全て表示してみてください: |
||
− | $ smbtree -U ''windowsusername'' |
||
− | This will list every share available to a certain Windows username on the local area network subnet, as long as Samba is set up and running properly. It should return something like this: |
||
− | {{bc| WORKGROUP |
||
− | \\REGULATOR-PC |
||
− | \\REGULATOR-PC\Z |
||
− | \\REGULATOR-PC\Public |
||
− | \\REGULATOR-PC\print$ Printer Drivers |
||
− | \\REGULATOR-PC\G |
||
− | \\REGULATOR-PC\EPSON Stylus CX8400 Series EPSON Stylus CX8400 Series}} |
||
− | What is needed here is first part of the last line, the resource matching the printer description. So to print to the EPSON Stylus printer, one would enter: |
||
− | smb://username.password@REGULATOR-PC/EPSON Stylus CX8400 Series |
||
− | as the URI into CUPS. Notice that whitespaces are allowed in URIs, whereas backslashes get replaced with forward slashes. |
||
− | If it won't work try '%20' instead of spaces. |
||
+ | === ファイアウォールを使用しているとDNS-SDやmDNSでプリンタを見つけられない === |
||
− | == HP のプリンター == |
||
+ | コンピュータがネットワークプリンタから発信されるメッセージを受信できないことが原因です。 |
||
− | === HPLIP プリンターが "/usr/lib/cups/backend/hp failed" エラーを送る === |
||
+ | UDPポート5353を開いてください[https://www.cups.org/doc/firewalls.html]。 |
||
+ | == USB プリンター == |
||
− | Make sure dbus is installed and running. If the error persists, try starting avahi-daemon. |
||
+ | === SANE と衝突する === |
||
− | Try adding the printer as a Network Printer using the http:// protocol. Generate the printer URI with {{ic|hp-makeuri}}. |
||
+ | [[SANE]] も実行している場合、CUPS に干渉する可能性があります。解決するには [[Udev]] ルールを作成して libsane でデバイスをマッチさせてください: |
||
− | {{Note|There might need to set permissions issues right. Follow indications here: [[#Device node permissions]].}} |
||
+ | {{hc|/etc/udev/rules.d/99-printer.rules|output= |
||
+ | ATTRS{idVendor}=="''vendor id''", ATTRS{idProduct}=="''product id''", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"}} |
||
+ | === usblp と衝突する === |
||
− | === HPLIP プリンターはジョブが完了したと言ってるのにプリンターが何もしない === |
||
+ | USB プリンターにアクセスする方法は2つあります: usblp カーネルモジュールと libusb です。前者は古い方法です。シンプルなシリアルデータストリームとしてデバイスファイルにデータを書き込むことでプリンターにデータを送信します。同一デバイスファイルを読み込むことで双方向アクセスが可能です。インク残量やプリンターの状態を読み込むことができます (PJL)。シンプルなプリンターでは上手く動作しますが、マルチプリンター (プリンター/スキャナ) では役不足で HP などのメーカーは独自のバックエンドを提供しています。ソース: [http://lists.linuxfoundation.org/pipermail/printing-architecture/2012/002412.html]。 |
||
− | This happens on HP printers when you select the (old) hpijs driver (e.g. the Deskjet D1600 series). Instead, use the hpcups driver when adding the printer. |
||
+ | {{Warning|{{Pkg|cups}} バージョン 1.6.0 以上では、{{ic|usblp}} カーネルモジュールをブラックリストに入れる必要はありません。ブラックリストに入れるしか解決方法がない場合は上流の CUPS バグトラッカーに報告してください。Till Kamppeter (Debian の CUPS メンテナ) と連絡がとれます。詳しくは [http://cups.org/str.php?L4128] を参照。}} |
||
− | Some HP printers (e.g HP LaserJet) require their firmware to be downloaded from the computer every time the printer is switched on. If there is an issue with udev (or equivalent) and the firmware download rule is never fired, you may experience this issue. |
||
− | As a workaround, you can manually download the firmware to the printer. Ensure the printer is plugged in and switched on, then enter |
||
− | hp-firmware -n |
||
+ | USB プリンターが動作しない場合、{{ic|usblp}} [[カーネルモジュール]]をブラックリスト化することで解決することがあります: |
||
− | === hp-setup が見つかったプリンターの PPD ファイルを指定するように要求する === |
||
+ | {{hc|/etc/modprobe.d/blacklistusblp.conf| |
||
− | hp-setup を実行する前に CUPS をインストールしてください。 |
||
+ | blacklist usblp |
||
+ | }} |
||
+ | カスタムカーネルを使っている場合は手動で {{ic|usbcore}} [[カーネルモジュール]]をロードする必要があります。 |
||
− | === Qt をインストールしたのに、hp-setup が "Qt/PyQt 4 initialization failed" と表示する === |
||
+ | モジュールをロードしたら、プリンターを接続して、以下のコマンドを実行してカーネルによってプリンターが認識されていることを確認してください: |
||
− | "hp-check -t" won't give you useful information to find the required package. You have to install all the "Dependent Packages" prefixed with "python2" in https://www.archlinux.org/packages/extra/x86_64/hplip/ |
||
+ | # journalctl -e |
||
+ | または: |
||
+ | # dmesg |
||
+ | {{ic|usblp}} を使用している場合、以下のように出力されていればプリンターが認識されています: |
||
− | === hp-setup でプリンターが自動的に見つかったがテストページを印刷しようとするとすぐ "Unable to communicate with device" と表示する === |
||
+ | Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional |
||
+ | printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E |
||
+ | Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920 |
||
+ | Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver |
||
+ | {{ic|usblp}} をブラックリスト化している場合、以下のように表示されます: |
||
− | This at least happens to hplip 3.13.5-2 for HP Officejet 6500A through local network connection. To solve the problem, specify the IP address of the HP printer for hp-setup to locate the printer. |
||
+ | usb 3-2: new full speed USB device using uhci_hcd and address 3 |
||
+ | usb 3-2: configuration #1 chosen from 1 choice |
||
+ | === USB 自動サスペンド=== |
||
− | === hp-toolbox がエラーを送信する, "Unable to communicate with device" === |
||
+ | USB デバイスのドライバーが自動サスペンドをサポートしており、デバイスが使われていない場合、Linux カーネルは自動的にデバイスをサスペンド状態にします。自動サスペンドは電力を節約することができますが、一部の USB プリンターはカーネルが USB ポートをサスペンドしたときに切断されたと認識して、印刷を停止してしまいます。デバイスの自動サスペンドを無効化することで問題を回避できます。詳しくは[[電源管理#USB の自動サスペンド]]を参照。 |
||
− | hp-toolbox を通常のユーザーとして実行すると以下のようなメッセージが表示される場合: |
||
− | # hp-toolbox |
||
− | # error: Unable to communicate with device (code=12): hp:/usb/''printer id'' |
||
− | おそらく[[ユーザーとグループ#グループ管理|ユーザーを lp と sys グループに追加する]]必要があります。 |
||
+ | == HP の問題 == |
||
− | この問題は MS Windows のドライバーのために仮想 CD-ROM ドライブを持っている P1102 などのプリンターでも発生します。lp dev が現れたり消えたりします。そのようなときは、{{Pkg|usb_modeswitch}} パッケージを試して下さい。"Smart Drive" がオフになります (パッケージに udev ルールが含まれています)。 |
||
+ | [[CUPS/プリンター別の問題#HP]] も参照。 |
||
− | ネットワークプリンターで [[Avahi|avahi-daemon]] が動作していないときにもこのエラーが起こることがあります。また、プリンターの IP アドレスが DHCP によって変更されたために、''hp-setup'' で設定したプリンターの IP アドレスでプリンターが見つからないという可能性もあります。この場合、DHCP サーバーの設定で DHCP の予約をプリンターに追加してください。 |
||
+ | === CUPS: "/usr/lib/cups/backend/hp failed" === |
||
− | === HP プリンターで CUPS が '"foomatic-rip" not available/stopped with status 3' と返す === |
||
+ | D-Bus がインストール・起動されていることを確認してください。エラーが消えない場合、[[Avahi]] を起動してみてください。 |
||
− | If receiving any of the following error messages in {{ic|/var/log/cups/error_log}} while using a HP printer, with jobs appearing to be processed while they all end up not being completed with their status set to 'stopped': |
||
+ | |||
+ | http:// プロトコルを使用してネットワークプリンターとしてプリンターを追加してみてください。 |
||
+ | |||
+ | {{Note|パーミッションを正しく設定する必要があります。}} |
||
+ | |||
+ | === ジョブが完了したと言ってるのにプリンターが何もしない === |
||
+ | |||
+ | 古い hpijs ドライバーを選択している場合に HP のプリンターで発生する問題です (例: Deskjet D1600 シリーズ)。代わりに hpcups ドライバーを使ってください。 |
||
+ | |||
+ | 一部の HP 製のプリンターでは、プリンターを起動するたびにコンピュータからファームウェアをダウンロードさせる必要があります。udev に問題があってファームウェアのダウンロードが実行されないときも、この問題が発生します。手動でファームウェアをプリンターにダウンロードすることで解決します。プリンターが接続・起動されていることを確認してから次のコマンドを実行: |
||
+ | # hp-firmware -n |
||
+ | |||
+ | === CUPS: '"foomatic-rip" not available/stopped with status 3' === |
||
+ | |||
+ | HP プリンターを使っている場合に {{ic|/var/log/cups/error_log}} に以下のエラーメッセージが出力される場合、プリンターの状態が 'stopped' に設定されて完了されずに新しいジョブが処理されてしまっています: |
||
Filter "foomatic-rip" for printer ''printer_name'' not available: No such file or director |
Filter "foomatic-rip" for printer ''printer_name'' not available: No such file or director |
||
+ | または: |
||
− | or: |
||
− | PID |
+ | PID ''pid'' (/usr/lib/cups/filter/foomatic-rip) stopped with status 3! |
+ | {{pkg|hplip}} が[[インストール]]されていることを確認してください。 |
||
− | make sure {{pkg|hplip}} has been [[pacman|installed]], in addition to [[CUPS#プリンタードライバ|the packages mentioned above]]. See [https://bbs.archlinux.org/viewtopic.php?id=65615 this forum post] for more information. |
||
+ | |||
+ | === CUPS: "Filter failed" === |
||
+ | |||
+ | "filter failed" エラーが発生する原因は様々です。CUPS のエラーログ (デフォルトでは {{ic|/var/log/cups/error_log}}) にはどのフィルターがなぜ機能しなかったか記録されます。 |
||
+ | |||
+ | ==== Missing ghostscript ==== |
||
+ | {{pkg|ghostscript}} パッケージをインストールしてください ({{ic|/usr/lib/cups/filter/gstoraster}} を実行するのに ghostscript が必要です)。 |
||
− | === HPLIP 3.13: Plugin is installed, but HP Device Manager complains it is not === |
||
+ | ==== foomatic-db がインストールされていない ==== |
||
− | The issue might have to do with the file permission change that had been made to {{ic|/var/lib/hp/hplip.state}}. To correct the issue, a simple {{ic|chmod 644 /var/lib/hp/hplip.state}} and {{ic|chmod 755 /var/lib/hp}} should be sufficient. For further information, please read this [https://bugs.launchpad.net/hplip/+bug/1131596 link]. |
||
+ | {{pkg|foomatic-db}} と {{pkg|foomatic-db-ppds}} をインストールすることで解決する場合があります。 |
||
− | === プリンターが印刷をせず CUP ウェブインターフェイスには "Filter failed" メッセージが残る (HP プリンター) === |
||
==== パーミッションに問題がある ==== |
==== パーミッションに問題がある ==== |
||
160行目: | 199行目: | ||
}} |
}} |
||
− | システムによって変わるので、[[udev#デバイスの属性を一覧する]] のページを見て下さい。 |
+ | システムによって変わるので、[[udev#デバイスの属性を一覧表示する]] のページを見て下さい。 |
==== Avahi が有効になってない ==== |
==== Avahi が有効になってない ==== |
||
{{ic|avahi-daemon}} サービスを起動・有効化・再起動してください。 |
{{ic|avahi-daemon}} サービスを起動・有効化・再起動してください。 |
||
+ | |||
+ | ==== プラグインのバージョンが古い ==== |
||
+ | |||
+ | プラグインのバージョンが古い場合も同じエラーが発生します。ログに {{ic|Plugin error}} とメッセージが表示されることもあります。{{AUR|hplip-plugin}} をインストールしている場合、パッケージを更新してください。もしくは {{ic|hp-setup -i}} を実行してプラグインの最新版をインストールしてください。 |
||
+ | |||
+ | ==== プリンターの設定が古い ==== |
||
+ | |||
+ | {{AUR|hplip-plugin}} v3.17.11 現在 hpijs はもはや存在しません。hpijs を使用するプリンターの場合、印刷に失敗するようになります。新しい hpcups ドライバーが使われるように設定しなおしてください。 |
||
+ | |||
+ | cups の error_log をチェックすることで問題を確認できます: |
||
+ | |||
+ | {{hc| $ cat /var/log/cups/error_log {{!}} grep hpijs | |
||
+ | ... |
||
+ | D [09/Jan/2018:14:32:58 +0000] [Job 97] '''sh: hpijs: command not found''' |
||
+ | ...}} |
||
=== HP LaserJet で CUPS が空のページまたはエラーメッセージしか印刷しない === |
=== HP LaserJet で CUPS が空のページまたはエラーメッセージしか印刷しない === |
||
− | + | HP LaserJet (例: 3380) で画像を印刷しようとすると CUPS が機能しないバグが存在します。[https://bugs.launchpad.net/ubuntu/+source/cups-filters/+bug/998087 Ubuntu] によって報告され修正されています。最初のページは空で、2ページ目からは以下のエラーメッセージが印刷される場合: |
|
− | The first page is empty, the second page contains the following error message: |
||
ERROR: |
ERROR: |
||
invalidaccess |
invalidaccess |
||
179行目: | 232行目: | ||
... |
... |
||
− | この問題を修正するには |
+ | この問題を修正するには root で以下のコマンドを実行します: |
# lpadmin -p ''printer'' -o pdftops-renderer-default=pdftops |
# lpadmin -p ''printer'' -o pdftops-renderer-default=pdftops |
||
+ | === HPLIP 3.13: プラグインをインストールしたのに HP Device Manager から認識されない === |
||
− | == その他 == |
||
+ | {{ic|/var/lib/hp/hplip.state}} のパーミッションが変更されてしまっていることが原因です。問題を解決するには、{{ic|chmod 644 /var/lib/hp/hplip.state}} と {{ic|chmod 755 /var/lib/hp}} を実行してください。詳しくは [https://bugs.launchpad.net/hplip/+bug/1131596] を参照。 |
||
− | === プリンターが "Rendering completed" 状態で止まってしまう === |
||
+ | === hp-toolbox: "Unable to communicate with device" === |
||
− | インクの残量が少なくなると、"Rendering completed" 状態でプリンターが止まってしまうことがあります。また、ネットワークプリンターの場合、それによってネットワークに正しく接続されているのにもかかわらず、CUPS からプリンターが制御できなくなっているのかもしれません。この場合、インクカートリッジを交換することでプリンターは "Ready" 状態に戻り、ネットワークプリンターならば、プリンターが CUPS からまた使えるようになります。 |
||
+ | # hp-toolbox |
||
− | {{Note|サードパーティ製のインクカートリッジを使っている場合、プリンターによって示されるインク残量が正確ではないことがあります。サードパーティ製のインクを使っていてプリンターが問題なく動作していたのに、"Rendering completed" 状態で動かなくなった場合は、インクが残っていると表示されていたとしてもまずインクカートリッジを交換してみてください。}} |
||
+ | # error: Unable to communicate with device (code=12): hp:/usb/''printer id'' |
||
+ | ==== パーミッションの問題 ==== |
||
− | インクがなくなっているのが原因ではないときは {{ic|/etc/cups}} と {{ic|/var/log/cups}} の "Group ID" を確認してください。"root" 権限がある場合は、{{ic|/var/spool/cups}} も確認します。ファイルには GID {{ic|lp}} がなくてはなりません。ファイルに GID {{ic|nobody}} が書かれている場合は、{{ic|/etc/cups/cups-files.conf}} ファイルの "Group" と "SystemGroup" ディレクティブのグループを確認してください。通常は {{ic|Group lp}} と {{ic|SystemGroup lpadmin sys root}} になっています。"Group" に書かれているグループが "SystemGroup" の方には入ってないことになってないかチェックしてください。特に、{{ic|lp}} が "Group" ディレクティブにはあるのに、"SystemGroup" ディレクティブの方では載っていないか確認してください。これは昔に CUPS と KDE の wiki ページで推奨されていたのと逆です。"SystemGroup" ディレクティブに {{ic|lp}} を追加していたときは、"SystemGroup" から {{ic|lp}} を削除するか、次のコマンドを実行して "SystemGroup" ディレクティブの {{ic|lp}} を {{ic|lpadmin}} に変更してください: |
||
− | # groupadd -g107 lpadmin |
||
+ | ユーザーを {{ic|lp}} と {{ic|sys}} [[グループ]]に追加してください。 |
||
− | ==== GID 問題の説明 ==== |
||
− | For security reasons, {{ic|cupsd}} does not allow external CUPS helper programs, which are run with the GID selected with the "Group" directive, to run with any GID of the administrative groups, which are those GIDs listed in the "SystemGroup" directive. If the named group in the Group directive is also in the SystemGroup directive, then {{ic|cupsd}} will instead run the helper programs with GID {{ic|nobody}}, without warning. Note that the printer devices in {{ic|/dev/}}, for instance {{ic|/dev/parport0}}, are created with user {{ic|root}} and group {{ic|lp}}. When {{ic|cupsd}} then tries to print, it "pauses" or "stops" because it does not have permission to write the printer device file, and does not provide any useful error message. The printer device files can be made "world writable" to bypass the problem, but that is insecure and is not the proper solution. |
||
+ | ==== 仮想 CDROM プリンター ==== |
||
− | As of CUPS version 2.0.0-2, if the group in the Group directive is also in the SystemGroup directive, {{ic|cupsd}} will exit immediately after starting, and, at a log level of "notice" or higher, will log an error message to the default error log, but not to the system log. |
||
− | {{hc|/var/log/cups/error_log|Group and SystemGroup cannot use the same groups.}} |
||
− | This solves the problem of {{ic|cupsd}} running in a non-functional state and failing to print without explanation. |
||
+ | MS Windows ドライバー向けに仮想の CD-ROM ドライブを用意する P1102 などのプリンターなどでも発生します。lp dev が現れたり消えたりします。その場合、{{Pkg|usb_modeswitch}} パッケージをインストールして "Smart Drive" をオフにしてください (パッケージに udev ルールが含まれています)。 |
||
− | At the default log level of "warn", no group collision error message is logged. To see this error message, increase the log level to "notice", "info", "debug", or "debug2". |
||
− | {{hc|/etc/cups/cupsd.conf|LogLevel notice}} |
||
− | Error messages can be sent to the systemd-journald log instead of to the default {{ic|/var/log/cups/error_log}}, but not to both, by explicitly setting the ErrorLog directive. |
||
− | {{hc|/etc/cups/cups-files.conf|ErrorLog syslog}} |
||
− | Currently, even then, the command {{ic|systemctl status org.cups.cupsd.service}} will not properly display the final group collision error message, but the error message can still be seen in the journal, with for instance, {{ic|sudo journalctl -f}}. |
||
− | === |
+ | ==== ネットワークプリンター ==== |
+ | [[Avahi|avahi-daemon]] が動作していないときに動的ホストネームを使用するネットワークプリンターを使ったときも同じ問題が置きます。DHCP によってプリンターの IP アドレスが変更されて ''hp-setup'' がプリンターを見つけられない可能性もあります。その場合、DHCP サーバーの設定でプリンターの DHCP 予約を追加してください。 |
||
− | 以下のようなパスを使うことで 'NT_STATUS_ACCESS_DENIED' (Windows クライアント) エラーを回避できることがあります: |
||
− | smb://workgroup/username:password@hostname/printer_name |
||
− | === |
+ | === hp-setup が PPD ファイルの指定を要求する === |
+ | hp-setup のグラフィカルモードで PPD ファイルを選択したときに、フィールドが更新されずエラーメッセージが表示されないことがあります。 |
||
− | If the user has been added to the lp group, and allowed to print (set in {{ic|cupsd.conf}}), then the problem lies in {{ic|/etc/cups/printers.conf}}. This line could be the culprit: |
||
− | AuthInfoRequired negotiate |
||
+ | また、インタラクティブ (コンソール) モードの場合、ppd ファイルのパスを正しく指定しているのに以下のように表示されることがあります: |
||
− | Comment it out and restart CUPS. |
||
+ | Please enter the full filesystem path to the PPD file to use (q=quit) :/usr/share/ppd/HP/hp-deskjet_2050_j510_series.ppd.gz |
||
− | === Unknown supported format: application/postscript === |
||
+ | Traceback (most recent call last): |
||
+ | File "/usr/bin/hp-setup", line 536, in <module> |
||
+ | desc = nickname_pat.search(nickname).group(1) |
||
+ | TypeError: cannot use a string pattern on a bytes-like object |
||
+ | hp-setup を実行する前に CUPS をインストール・起動することで解決できます。 |
||
− | {{ic|/etc/cups/mime.convs}} にある次の行をコメントアウトしてください: |
||
− | application/octet-stream application/vnd.cups-raw 0 - |
||
− | そして {{ic|/etc/cups/mime.types}} に以下を追加してください: |
||
− | application/octet-stream |
||
+ | === hp-setup: "Qt/PyQt 4 initialization failed" === |
||
− | === Print-Job client-error-document-format-not-supported === |
||
− | + | {{Pkg|hplip}} の任意の依存パッケージである {{AUR|python-pyqt4}} を[[インストール]]してください。もしくは、{{ic|-i}} フラグを使ってコマンドラインインターフェースで hp-setup を起動してください。 |
|
+ | === hp-setup: 自動的にプリンターが検出されるがテストページを印刷しようとすると "Unable to communicate with device" === |
||
− | === Unable to get list of printer drivers === |
||
+ | ローカルネットワーク接続で HP Officejet 6500A と hplip 3.13.5-2 を使用すると発生します。問題を解決するには、HP プリンターの IP アドレスを hp-setup に指定してください。 |
||
− | * {{ic|/etc/cups/client.conf}} の {{ic|ServerName}} に http:// が付いていないか確認してください: |
||
− | ServerName localhost:631 |
||
− | * Foomatic ドライバーを削除するか、[[CUPS#HP プリンター]] に書かれている解決方法を見て下さい。 |
||
+ | == その他 == |
||
− | === lp: Error - Scheduler Not Responding === |
||
+ | === プリンターが "Rendering completed" 状態で止まってしまう === |
||
− | 次のコマンドを使って文章を印刷する際にこのエラーが表示される場合: |
||
+ | ==== インク残量 ==== |
||
− | $ lp document-to-print |
||
+ | インクの残量が少なくなると、"Rendering completed" 状態でプリンターが止まってしまうことがあります。また、ネットワークプリンターの場合、それによってネットワークに正しく接続されているのにもかかわらず、CUPS からプリンターが制御できなくなっているのかもしれません。この場合、インクカートリッジを交換することでプリンターは "Ready" 状態に戻り、ネットワークプリンターならば、プリンターが CUPS からまた使えるようになります。 |
||
− | {{ic|CUPS_SERVER}} 環境変数を設定してみてください: |
||
+ | {{Note|サードパーティ製のインクカートリッジを使っている場合、プリンターによって示されるインク残量が正確ではないことがあります。サードパーティ製のインクを使っていてプリンターが問題なく動作していたのに、"Rendering completed" 状態で動かなくなった場合は、インクが残っていると表示されていたとしてもまずインクカートリッジを交換してみてください。}} |
||
− | $ export CUPS_SERVER=localhost |
||
+ | ==== パーミッションの問題 ==== |
||
− | これで問題が解決するときは、{{ic|~/.bash_profile}} に上記の行を追加することで永続化できます。 |
||
+ | {{pkg|cups}} 2.0.0-2 以前では、{{ic|Group}} ディレクティブで設定されるグループが {{ic|/etc/cups/cups-files.conf}} の {{ic|SystemGroup}} ディレクティブにも記載されていた場合、{{ic|cupsd}} は {{ic|nobody}} グループでヘルパープログラムを起動します。しかしながら、ヘルパーはプリンターデバイスに書き込みを行う必要があり、プリンターを作成するユーザーは {{ic|root}} でグループは {{ic|lp}} であるため、{{ic|nobody}} グループだと書き込みが行えずに印刷キューが "Paused" または "Stopped" になってしまいます。 |
||
− | === "Using invalid Host" エラーメッセージ === |
||
+ | この問題を解決するには、{{ic|Group}} ディレクティブを {{ic|lp}} に設定して、{{ic|SystemGroup}} ディレクティブに {{ic|lp}} が含まれていないことを確認してください。 |
||
− | {{ic|/etc/cups/cupsd.conf}} に {{ic|ServerAlias *}} を追加してみてください。 |
||
+ | Arch では [https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/cups&id=c20b22f4f996cb08b1aa856d4c8991e869459eb2] で修正されました。 |
||
− | === プリンターが CUPS から認識されない === |
||
+ | === unauthorised エラーで印刷が失敗する === |
||
− | CUPS のウェブインターフェイスの "Add Printers" ページにプリンターが表示されなかったり、{{ic|lpinfo -v}} で確認できない場合、以下を試してみて下さい ([https://bbs.archlinux.org/viewtopic.php?pid=1037279#p1037279 このスレッド] を参照): |
||
+ | リモートプリンターが認証を要求した場合、CUPS は自動的に {{ic|/etc/cups/printers.conf}} のプリンターに {{ic|AuthInfoRequired}} ディレクティブを追加します。しかし、一部のグラフィカルアプリケーション (例えば [[LibreOffice]] [https://bugs.documentfoundation.org/show_bug.cgi?id=53029]) にはログイン情報を要求する方法がないため、印刷ができなくなります。この問題を修正するには URI にユーザー名とパスワードを記入してください。[https://bugs.launchpad.net/ubuntu/+source/cups/+bug/283811] や [https://bbs.archlinux.org/viewtopic.php?id=61826] を参照。 |
||
− | * ブラックリストから {{ic|usblp}} を削除 |
||
− | * {{ic|usblp}} モジュールをロード |
||
− | # modprobe usblp |
||
− | * CUPS を停止 |
||
− | * 以下の udev ルールを追加: |
||
− | {{hc|/etc/udev/rules.d/10-cups_device_link.rules|2= |
||
− | KERNEL=="lp[0-9]", SYMLINK+="%k", GROUP="lp" |
||
− | }} |
||
− | * udev ルールをリロード: |
||
− | # udevadm control --reload-rules |
||
− | * プリンターの接続を一度抜いてから再接続 |
||
− | * 数秒待ってから CUPS サービスを起動 |
||
+ | === Unknown supported format: application/postscript === |
||
− | ==== SANE と衝突する ==== |
||
+ | {{ic|/etc/cups/mime.convs}} にある次の行をコメントアウトしてください: |
||
− | [[Sane]] も使っている場合、CUPS と衝突している可能性があります。 |
||
+ | application/octet-stream application/vnd.cups-raw 0 - |
||
+ | そして {{ic|/etc/cups/mime.types}} に以下を追加してください: |
||
+ | application/octet-stream |
||
+ | === Print-Job client-error-document-format-not-supported === |
||
− | 修正するには以下のファイルを作成してください: |
||
− | {{hc|/etc/udev/rules.d/99-printer.rules|output=# idProduct and idVendor needs to match your printer |
||
− | ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="341b", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"}} |
||
+ | foomatic パッケージをインストールして foomatic ドライバーを使ってみて下さい。 |
||
− | === Can't load /etc/samba/smb.conf === |
||
+ | === Unable to get list of printer drivers === |
||
− | SMB 上のリモートプリンターに印刷しようとすると "Can't load /etc/samba/smb.conf - run testparm to debug it" というエラーメッセージが表示される場合、空の {{ic|/etc/samba/smb.conf}} ファイルを作成してください: |
||
+ | Foomatic ドライバーを削除するか、[[CUPS/プリンター別の問題#HPLIP ドライバー]]に書かれている解決方法を見て下さい。 |
||
− | # mkdir /etc/samba |
||
− | # touch /etc/samba/smb.conf |
||
+ | === lp: Error - Scheduler Not Responding === |
||
− | そして cupsd を再起動してください。 |
||
+ | このエラーが表示される場合、[[CUPS]] が起動していること、環境変数 {{ic|CUPS_SERVER}} が設定されていないこと、{{ic|/etc/cups/client.conf}} に問題がないことを確認してください。 |
||
− | === CUPS の systemd サービスが有効になっているのに起動しない === |
||
+ | === "Using invalid Host" エラーメッセージ === |
||
− | CUPS によって提供されている systemd の .service ファイルはソケットアクティベーションを使用しており、アプリケーションが CUPS のソケットに接続したときに初めてサービスが起動するようになっています。しかしながら、CUPS によって提供されている systemd の .socket ファイルはローカルの {{ic|/run/cups/cups.sock}} ソケットでしか動作しません。 |
||
+ | {{ic|/etc/cups/cupsd.conf}} に {{ic|ServerAlias *}} を追加してみてください。 |
||
− | ネットワーク上に印刷ジョブが開始されたときに CUPS が起動するようにするには、以下のファイルを作成します: |
||
+ | === LibreOffice から印刷できない === |
||
− | {{hc|1=/etc/systemd/system/org.cups.cupsd.socket|2= |
||
− | .include /usr/lib/systemd/system/org.cups.cupsd.socket |
||
+ | [[CUPS]] ウェブインターフェイスからテストページが印刷できるのに [[LibreOffice]] から印刷できない場合、{{Pkg|a2ps}} パッケージを[[インストール]]してみてください。 |
||
− | [Socket] |
||
− | ListenDatagram=0.0.0.0:631 |
||
− | }} |
||
+ | === プリンターの出力がずれる === |
||
− | そして systemd をリロードします: |
||
+ | [[CUPS]] で設定された用紙サイズが間違っていることが原因です。 |
||
− | # systemctl --system daemon-reload |
||
− | + | === 問題が発生してプリンターが動作しなくなる === |
|
+ | 印刷中に問題が発生すると、CUPS でプリンターが反応しなくなることがあります。{{ic|lpq}} はプリンターが {{ic|is not ready}} だと報告します。{{ic|cupsenable}} でプリンターを再度有効化できます。CUPS のウェブインターフェイスでは、プリンターが ''Paused'' の場合にプリンターを復帰することで再有効化することが可能です。 |
||
− | {{bc| |
||
− | # systemctl is-enabled org.cups.cupsd.service || systemctl enable org.cups.cupsd.service |
||
− | # systemctl status org.cups.cupsd.socket |
||
− | org.cups.cupsd.socket - CUPS Printing Service Sockets |
||
− | Loaded: loaded (/etc/systemd/system/org.cups.cupsd.socket; enabled) |
||
− | Active: inactive (dead) |
||
− | Listen: /run/cups/cups.sock (Stream) |
||
− | 0.0.0.0:631 (Stream) |
||
− | 0.0.0.0:631 (Datagram) |
||
− | }} |
||
+ | CUPS によるプリンターの有効化を自動化するには、[https://www.cups.org/doc/man-cupsd.conf.html?TOPIC=Man+Pages#ErrorPolicy ErrorPolicy] をデフォルトの {{ic|stop-printer}} から {{ic|retry-this-job}} に変更してください。 |
||
− | これでローカルでもネットワークごしでも印刷がされると CUPS が自動的に起動するはずです。 |
||
+ | === Samsung: URF ERROR - Incomplete Session by time out === |
||
− | === プリンターを追加するときに "Forbidden" エラーが発生する === |
||
+ | IPP を使ってネットワーク経由でファイルを Samsung プリンターで印刷しようとしたときに発生するエラーで、{{aur|samsung-unified-driver}} パッケージを使うことで解決します。 |
||
− | If adding a printer through the web interface returns an error: ''Forbidden'', the most likely reason is that the privileges are not set correctly. One way to fix it is to add the administering user to the group {{ic|sys}}. For example, |
||
− | # usermod -a -G sys ''username'' |
||
+ | {{Note|エラーコードの 11-1112 はプリンターの内部接続の問題に対応しているため、Samsung の技術サポートに連絡しても無駄です。}} |
||
− | === LibreOffice から印刷できない === |
||
+ | |||
+ | === Brother: プリンターがコピーを何枚も印刷する === |
||
+ | |||
+ | ときどきプリンターがドキュメントのコピーを複数枚印刷してしまうことがあります (例えば MFC-9330CDW は10枚コピーします)。[[CUPS/プリンター別の問題#ファームウェアのアップデート|プリンターのファームウェアを更新]]することで解決します。 |
||
+ | |||
+ | === 通常ユーザーでプリンターのプロパティを変更したり特定のジョブを削除できない === |
||
+ | 通常ユーザーでプリンターのプロパティを変更したりプリンターのキューを管理するには、ユーザーを {{ic|sys}} グループに追加する必要があります。 |
||
− | [[CUPS]] のウェブインターフェイスからテストページの印刷はできるが、[[LibreOffice]] から印刷できないという場合、{{Pkg|a2ps}} パッケージを[[インストール]]してみてください。 |
2024年3月19日 (火) 14:21時点における最新版
関連記事
この記事では一般的な CUPS の問題と印刷ドライバーに関するトラブルシューティングを提供しています (プリンターの共有については取り扱っていません)。問題の原因を調べる方法や特定の問題を解決する方法があります。
目次
- 1 イントロダクション
- 2 アップグレードによる問題
- 3 ネットワークの問題
- 4 USB プリンター
- 5 HP の問題
- 5.1 CUPS: "/usr/lib/cups/backend/hp failed"
- 5.2 ジョブが完了したと言ってるのにプリンターが何もしない
- 5.3 CUPS: '"foomatic-rip" not available/stopped with status 3'
- 5.4 CUPS: "Filter failed"
- 5.5 HP LaserJet で CUPS が空のページまたはエラーメッセージしか印刷しない
- 5.6 HPLIP 3.13: プラグインをインストールしたのに HP Device Manager から認識されない
- 5.7 hp-toolbox: "Unable to communicate with device"
- 5.8 hp-setup が PPD ファイルの指定を要求する
- 5.9 hp-setup: "Qt/PyQt 4 initialization failed"
- 5.10 hp-setup: 自動的にプリンターが検出されるがテストページを印刷しようとすると "Unable to communicate with device"
- 6 その他
- 6.1 プリンターが "Rendering completed" 状態で止まってしまう
- 6.2 unauthorised エラーで印刷が失敗する
- 6.3 Unknown supported format: application/postscript
- 6.4 Print-Job client-error-document-format-not-supported
- 6.5 Unable to get list of printer drivers
- 6.6 lp: Error - Scheduler Not Responding
- 6.7 "Using invalid Host" エラーメッセージ
- 6.8 LibreOffice から印刷できない
- 6.9 プリンターの出力がずれる
- 6.10 問題が発生してプリンターが動作しなくなる
- 6.11 Samsung: URF ERROR - Incomplete Session by time out
- 6.12 Brother: プリンターがコピーを何枚も印刷する
- 6.13 通常ユーザーでプリンターのプロパティを変更したり特定のジョブを削除できない
イントロダクション
印刷が機能しない時は /etc/cups/cupsd.conf
の 'LogLevel' を次のように設定して:
LogLevel debug
次のコマンドで /var/log/cups/error_log
からの出力を表示してください:
# tail -n 100 -f /var/log/cups/error_log
出力の左端の文字の意味は:
- D=デバッグ (Debug)
- E=エラー (Error)
- I=情報 (Information)
- など
以下のファイルも有用です:
/var/log/cups/page_log
- 印刷が成功する度に新しいエントリを表示します/var/log/cups/access_log
- cupsd http1.1 サーバー活動全てを表示します
勿論、問題を解決するには CUPS がどうやって動いているのか知るのが重要です:
- '印刷'が選択されると (ほとんどの) アプリケーションは .ps ファイル (PostScript、ページの見た目を記述するスクリプト言語) を CUPS に送信します。
- 次に CUPS はプリンターの PPD ファイル (プリンターの定義ファイル) を調べ、プリンターが理解する言語 (PJL, PCL など) に .ps ファイルを変換するにはどのフィルターが必要なのか目星をつけます (通常は GhostScript)。
- GhostScript が入力を受け取り、使用するフィルターを調べ、フィルターを適用して .ps ファイルをプリンターが理解するフォーマットに変換します。
- そして変換されたものはバックエンドに送信されます。例えば、プリンターが USB ポートに接続されている場合は、USB バックエンドが使われます。
文章を印刷して error_log
を見れば印刷プロセスのさらに詳しいイメージがわかります。
アップグレードによる問題
CUPS や関連プログラムのパッケージのバージョンが上がった後に起こる問題
CUPS が動作しなくなった
おそらく新しいバージョンを正しく動作させるために新しい設定ファイルが必要になっています。例えば、localhost:631 から CUPS を管理しようとすると "404 - page not found" のようなメッセージが表示されます。
新しい設定を使うには、/etc/cups/cupsd.conf.default
を /etc/cups/cupsd.conf
にコピーして (必要なら古い設定をバックアップしてください) から CUPS を再起動して新しい設定を適用してください。
全てのジョブが"停止"になる
プリンターに送ったジョブが全て"停止"になる場合は、プリンターを削除してからもう一度追加してください。 CUPS のウェブインターフェイス を使って、Printers > Delete Printer に行って下さい。
プリンターの設定を確認するには Printers から Modify Printer に行って下さい。表示された情報をコピーして、次のページに進むには 'Modify Printer' をクリックしてください。
全てのジョブが"プリンターが応答していません"になる
ネットワークプリンターを使っている場合、CUPS が CUPS が接続 URI に使っている名前が DNS によってプリンターの IP を解決しているか確認してください。例えばプリンターの接続が次のようになっている場合:
lpd://BRN_020554/BINARY_P1
ホスト名 'BRN_020554' が CUPS を動かしているサーバーからプリンターの IP に解決されるようにする必要があります。Avahi を使用している場合、Avahi のホストネーム解決が機能していることを確認してください。
もしくは、URI のホストネームをプリンターの実際の IP アドレスに置き換えてください。
PPD のバージョンが gutenprint と互換性がない
次を実行してください:
# /usr/bin/cups-genppdupdate
そして CUPS を再起動してください (このことは gutenprint のインストール後のメッセージでも指示されます)。
GTK3 アプリケーションの印刷ダイアログでプリンターが表示されない
GTK3 のバージョン 3.22.26 以前までは GTK3 の印刷ダイアログにプリンターを表示するには gtk3-print-backends
パッケージが必要でした。インストールしていない場合 gedit や Firefox などのアプリケーションで印刷ができず、CUPS のウェブインターフェイスや lpstat ではプリンターが認識されるため、コマンドラインや GIMP などの GTK2 アプリケーションからは印刷できる状態でした。
バージョン 3.22.26 から gtk3 パッケージにバックエンドが統合されたためパッケージのインストールは不要になりました。
ネットワークの問題
Unable to locate printer
CUPS でネットワークプリンターが探知されるのに、何か印刷しようとすると "Unable to locate printer" エラーが表示されることがあります。Avahi の .local ホストネーム解決を有効にすることで問題は解決します。詳しくは CUPS#ネットワークを見てください。
ファイアウォールを使っている場合に問題が発生することもあります。ファイアウォールを無効化したり適切なルールを設定する必要がある場合があります。system-config-printer によるネットワークプリンターの検出は自動的に行われます。
古い CUPS サーバー
CUPS バージョン 1.6 から、クライアントはデフォルトで IPP 2.0 を使用します。CUPS 1.5 / IPP 1.1 以下を使っている場合、クライアントのプロトコルは自動的にダウングレードされないため、サーバーと接続ができません。URL に version=1.1
オプションを追加することで解決します [1]。
CUPS によってプリンターが認識されるのに接続できない
デバッグログを有効にしてください。Executing backend "/usr/lib/cups/backend/dnssd"...
と何度も表示されるときはプリンター設定の dnssd を socket に変更してください。
例: socket://192.168.11.6:9100
。ポート番号は nmap や telnet your-printer-ip 9100
で確認できます。
ローカルでは共有プリンターが機能するのにリモートマシンから印刷できない
印刷ジョブがローカルマシンとリモートマシンの両方でフィルタを通して送信されているのが原因です。CUPS ページの警告を見てください。
ファイアウォールを使用しているとDNS-SDやmDNSでプリンタを見つけられない
コンピュータがネットワークプリンタから発信されるメッセージを受信できないことが原因です。 UDPポート5353を開いてください[2]。
USB プリンター
SANE と衝突する
SANE も実行している場合、CUPS に干渉する可能性があります。解決するには Udev ルールを作成して libsane でデバイスをマッチさせてください:
/etc/udev/rules.d/99-printer.rules
ATTRS{idVendor}=="vendor id", ATTRS{idProduct}=="product id", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"
usblp と衝突する
USB プリンターにアクセスする方法は2つあります: usblp カーネルモジュールと libusb です。前者は古い方法です。シンプルなシリアルデータストリームとしてデバイスファイルにデータを書き込むことでプリンターにデータを送信します。同一デバイスファイルを読み込むことで双方向アクセスが可能です。インク残量やプリンターの状態を読み込むことができます (PJL)。シンプルなプリンターでは上手く動作しますが、マルチプリンター (プリンター/スキャナ) では役不足で HP などのメーカーは独自のバックエンドを提供しています。ソース: [3]。
USB プリンターが動作しない場合、usblp
カーネルモジュールをブラックリスト化することで解決することがあります:
/etc/modprobe.d/blacklistusblp.conf
blacklist usblp
カスタムカーネルを使っている場合は手動で usbcore
カーネルモジュールをロードする必要があります。
モジュールをロードしたら、プリンターを接続して、以下のコマンドを実行してカーネルによってプリンターが認識されていることを確認してください:
# journalctl -e
または:
# dmesg
usblp
を使用している場合、以下のように出力されていればプリンターが認識されています:
Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920 Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver
usblp
をブラックリスト化している場合、以下のように表示されます:
usb 3-2: new full speed USB device using uhci_hcd and address 3 usb 3-2: configuration #1 chosen from 1 choice
USB 自動サスペンド
USB デバイスのドライバーが自動サスペンドをサポートしており、デバイスが使われていない場合、Linux カーネルは自動的にデバイスをサスペンド状態にします。自動サスペンドは電力を節約することができますが、一部の USB プリンターはカーネルが USB ポートをサスペンドしたときに切断されたと認識して、印刷を停止してしまいます。デバイスの自動サスペンドを無効化することで問題を回避できます。詳しくは電源管理#USB の自動サスペンドを参照。
HP の問題
CUPS/プリンター別の問題#HP も参照。
CUPS: "/usr/lib/cups/backend/hp failed"
D-Bus がインストール・起動されていることを確認してください。エラーが消えない場合、Avahi を起動してみてください。
http:// プロトコルを使用してネットワークプリンターとしてプリンターを追加してみてください。
ジョブが完了したと言ってるのにプリンターが何もしない
古い hpijs ドライバーを選択している場合に HP のプリンターで発生する問題です (例: Deskjet D1600 シリーズ)。代わりに hpcups ドライバーを使ってください。
一部の HP 製のプリンターでは、プリンターを起動するたびにコンピュータからファームウェアをダウンロードさせる必要があります。udev に問題があってファームウェアのダウンロードが実行されないときも、この問題が発生します。手動でファームウェアをプリンターにダウンロードすることで解決します。プリンターが接続・起動されていることを確認してから次のコマンドを実行:
# hp-firmware -n
CUPS: '"foomatic-rip" not available/stopped with status 3'
HP プリンターを使っている場合に /var/log/cups/error_log
に以下のエラーメッセージが出力される場合、プリンターの状態が 'stopped' に設定されて完了されずに新しいジョブが処理されてしまっています:
Filter "foomatic-rip" for printer printer_name not available: No such file or director
または:
PID pid (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!
hplip がインストールされていることを確認してください。
CUPS: "Filter failed"
"filter failed" エラーが発生する原因は様々です。CUPS のエラーログ (デフォルトでは /var/log/cups/error_log
) にはどのフィルターがなぜ機能しなかったか記録されます。
Missing ghostscript
ghostscript パッケージをインストールしてください (/usr/lib/cups/filter/gstoraster
を実行するのに ghostscript が必要です)。
foomatic-db がインストールされていない
foomatic-db と foomatic-db-ppds をインストールすることで解決する場合があります。
パーミッションに問題がある
プリンターの USB ポートのパーミッションを変更してください:
lsusb
コマンドでバスとデバイスの番号を取得:
$ lsusb
Bus <BUSID> Device <DEVID>: ID <PRINTERID>:<VENDOR> Hewlett-Packard DeskJet D1360
得られた情報を利用してパーミッションを設定:
# chmod 0666 /dev/bus/usb/<BUSID>/<DEVID>
パーミッションの変更を永続化するため、コンピューターが起動する度に自動的に変更されるようにするには、以下の行を追加してください。
/etc/udev/rules.d/10-local.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="<VENDOR>", ATTRS{idProduct}=="<PRINTERID>", GROUP="lp", MODE:="666"
システムによって変わるので、udev#デバイスの属性を一覧表示する のページを見て下さい。
Avahi が有効になってない
avahi-daemon
サービスを起動・有効化・再起動してください。
プラグインのバージョンが古い
プラグインのバージョンが古い場合も同じエラーが発生します。ログに Plugin error
とメッセージが表示されることもあります。hplip-pluginAUR をインストールしている場合、パッケージを更新してください。もしくは hp-setup -i
を実行してプラグインの最新版をインストールしてください。
プリンターの設定が古い
hplip-pluginAUR v3.17.11 現在 hpijs はもはや存在しません。hpijs を使用するプリンターの場合、印刷に失敗するようになります。新しい hpcups ドライバーが使われるように設定しなおしてください。
cups の error_log をチェックすることで問題を確認できます:
$ cat /var/log/cups/error_log | grep hpijs
... D [09/Jan/2018:14:32:58 +0000] [Job 97] sh: hpijs: command not found ...
HP LaserJet で CUPS が空のページまたはエラーメッセージしか印刷しない
HP LaserJet (例: 3380) で画像を印刷しようとすると CUPS が機能しないバグが存在します。Ubuntu によって報告され修正されています。最初のページは空で、2ページ目からは以下のエラーメッセージが印刷される場合:
ERROR: invalidaccess OFFENDING COMMAND: filter STACK: /SubFileDecode endstream ...
この問題を修正するには root で以下のコマンドを実行します:
# lpadmin -p printer -o pdftops-renderer-default=pdftops
HPLIP 3.13: プラグインをインストールしたのに HP Device Manager から認識されない
/var/lib/hp/hplip.state
のパーミッションが変更されてしまっていることが原因です。問題を解決するには、chmod 644 /var/lib/hp/hplip.state
と chmod 755 /var/lib/hp
を実行してください。詳しくは [5] を参照。
hp-toolbox: "Unable to communicate with device"
# hp-toolbox # error: Unable to communicate with device (code=12): hp:/usb/printer id
パーミッションの問題
ユーザーを lp
と sys
グループに追加してください。
仮想 CDROM プリンター
MS Windows ドライバー向けに仮想の CD-ROM ドライブを用意する P1102 などのプリンターなどでも発生します。lp dev が現れたり消えたりします。その場合、usb_modeswitch パッケージをインストールして "Smart Drive" をオフにしてください (パッケージに udev ルールが含まれています)。
ネットワークプリンター
avahi-daemon が動作していないときに動的ホストネームを使用するネットワークプリンターを使ったときも同じ問題が置きます。DHCP によってプリンターの IP アドレスが変更されて hp-setup がプリンターを見つけられない可能性もあります。その場合、DHCP サーバーの設定でプリンターの DHCP 予約を追加してください。
hp-setup が PPD ファイルの指定を要求する
hp-setup のグラフィカルモードで PPD ファイルを選択したときに、フィールドが更新されずエラーメッセージが表示されないことがあります。
また、インタラクティブ (コンソール) モードの場合、ppd ファイルのパスを正しく指定しているのに以下のように表示されることがあります:
Please enter the full filesystem path to the PPD file to use (q=quit) :/usr/share/ppd/HP/hp-deskjet_2050_j510_series.ppd.gz Traceback (most recent call last): File "/usr/bin/hp-setup", line 536, in <module> desc = nickname_pat.search(nickname).group(1) TypeError: cannot use a string pattern on a bytes-like object
hp-setup を実行する前に CUPS をインストール・起動することで解決できます。
hp-setup: "Qt/PyQt 4 initialization failed"
hplip の任意の依存パッケージである python-pyqt4AUR をインストールしてください。もしくは、-i
フラグを使ってコマンドラインインターフェースで hp-setup を起動してください。
hp-setup: 自動的にプリンターが検出されるがテストページを印刷しようとすると "Unable to communicate with device"
ローカルネットワーク接続で HP Officejet 6500A と hplip 3.13.5-2 を使用すると発生します。問題を解決するには、HP プリンターの IP アドレスを hp-setup に指定してください。
その他
プリンターが "Rendering completed" 状態で止まってしまう
インク残量
インクの残量が少なくなると、"Rendering completed" 状態でプリンターが止まってしまうことがあります。また、ネットワークプリンターの場合、それによってネットワークに正しく接続されているのにもかかわらず、CUPS からプリンターが制御できなくなっているのかもしれません。この場合、インクカートリッジを交換することでプリンターは "Ready" 状態に戻り、ネットワークプリンターならば、プリンターが CUPS からまた使えるようになります。
パーミッションの問題
cups 2.0.0-2 以前では、Group
ディレクティブで設定されるグループが /etc/cups/cups-files.conf
の SystemGroup
ディレクティブにも記載されていた場合、cupsd
は nobody
グループでヘルパープログラムを起動します。しかしながら、ヘルパーはプリンターデバイスに書き込みを行う必要があり、プリンターを作成するユーザーは root
でグループは lp
であるため、nobody
グループだと書き込みが行えずに印刷キューが "Paused" または "Stopped" になってしまいます。
この問題を解決するには、Group
ディレクティブを lp
に設定して、SystemGroup
ディレクティブに lp
が含まれていないことを確認してください。
Arch では [6] で修正されました。
unauthorised エラーで印刷が失敗する
リモートプリンターが認証を要求した場合、CUPS は自動的に /etc/cups/printers.conf
のプリンターに AuthInfoRequired
ディレクティブを追加します。しかし、一部のグラフィカルアプリケーション (例えば LibreOffice [7]) にはログイン情報を要求する方法がないため、印刷ができなくなります。この問題を修正するには URI にユーザー名とパスワードを記入してください。[8] や [9] を参照。
Unknown supported format: application/postscript
/etc/cups/mime.convs
にある次の行をコメントアウトしてください:
application/octet-stream application/vnd.cups-raw 0 -
そして /etc/cups/mime.types
に以下を追加してください:
application/octet-stream
Print-Job client-error-document-format-not-supported
foomatic パッケージをインストールして foomatic ドライバーを使ってみて下さい。
Unable to get list of printer drivers
Foomatic ドライバーを削除するか、CUPS/プリンター別の問題#HPLIP ドライバーに書かれている解決方法を見て下さい。
lp: Error - Scheduler Not Responding
このエラーが表示される場合、CUPS が起動していること、環境変数 CUPS_SERVER
が設定されていないこと、/etc/cups/client.conf
に問題がないことを確認してください。
"Using invalid Host" エラーメッセージ
/etc/cups/cupsd.conf
に ServerAlias *
を追加してみてください。
LibreOffice から印刷できない
CUPS ウェブインターフェイスからテストページが印刷できるのに LibreOffice から印刷できない場合、a2ps パッケージをインストールしてみてください。
プリンターの出力がずれる
CUPS で設定された用紙サイズが間違っていることが原因です。
問題が発生してプリンターが動作しなくなる
印刷中に問題が発生すると、CUPS でプリンターが反応しなくなることがあります。lpq
はプリンターが is not ready
だと報告します。cupsenable
でプリンターを再度有効化できます。CUPS のウェブインターフェイスでは、プリンターが Paused の場合にプリンターを復帰することで再有効化することが可能です。
CUPS によるプリンターの有効化を自動化するには、ErrorPolicy をデフォルトの stop-printer
から retry-this-job
に変更してください。
Samsung: URF ERROR - Incomplete Session by time out
IPP を使ってネットワーク経由でファイルを Samsung プリンターで印刷しようとしたときに発生するエラーで、samsung-unified-driverAUR パッケージを使うことで解決します。
Brother: プリンターがコピーを何枚も印刷する
ときどきプリンターがドキュメントのコピーを複数枚印刷してしまうことがあります (例えば MFC-9330CDW は10枚コピーします)。プリンターのファームウェアを更新することで解決します。
通常ユーザーでプリンターのプロパティを変更したり特定のジョブを削除できない
通常ユーザーでプリンターのプロパティを変更したりプリンターのキューを管理するには、ユーザーを sys
グループに追加する必要があります。