コンテンツコンテンツ
管理ガイド
  1. このガイドについて
  2. I サポートと共通タスク
    1. 1 YaSTオンラインアップデート
    2. 2 サポート用システム情報の収集
    3. 3 テキストモードのYaST
    4. 4 Snapperを使用したシステムの回復とスナップショット管理
    5. 5 VNCによるリモートアクセス
    6. 6 コマンドラインツールによるソフトウェアの管理
    7. 7 BashとBashスクリプト
  3. II システム
    1. 8 64ビットシステム環境での32ビットと64ビットのアプリケーション
    2. 9 Linuxシステムのブート
    3. 10 systemdデーモン
    4. 11 journalctl:systemdジャーナルのクエリ
    5. 12 ブートローダGRUB 2
    6. 13 UEFI (Unified Extensible Firmware Interface)
    7. 14 特別なシステム機能
    8. 15 プリンタの運用
    9. 16 udevによる動的カーネルデバイス管理
    10. 17 X Windowシステム
    11. 18 FUSEによるファイルシステムへのアクセス
  4. III サービス
    1. 19 ネットワークの基礎
    2. 20 SLP
    3. 21 NTPによる時刻の同期
    4. 22 ドメインネームシステム
    5. 23 DHCP
    6. 24 NetworkManagerの使用
    7. 25 Samba
    8. 26 NFS共有ファイルシステム
    9. 27 Autofsによるオンデマンドマウント
    10. 28 ファイルの同期
    11. 29 Apache HTTPサーバ
    12. 30 YaSTを使用したFTPサーバの設定
    13. 31 Squidプロキシサーバ
    14. 32 SFCBを使用したWebベースの企業管理
  5. IV モバイルコンピュータ
    1. 33 Linuxでのモバイルコンピューティング
    2. 34 電源管理
  6. V トラブルシューティング
    1. 35 ヘルプとドキュメント
    2. 36 最も頻繁に起こる問題およびその解決方法
  7. A マニュアルの更新
  8. B サンプルネットワーク
  9. C GNU Licenses
ナビゲーション
適用先 SUSE Linux Enterprise Server 12

15 プリンタの運用

SUSE® Linux Enterprise Serverは、リモートネットワークプリンタも含め、さまざまな種類のプリンタを使った印刷をサポートしています。プリンタは手動で設定することも、YaSTを使用して設定することもできます。設定の詳細については、項 「プリンタの設定」, 第8章 YaSTによるハードウェアコンポーネントの設定, 導入ガイドを参照してください。プリントジョブの開始、管理には、グラフィカルインタフェースまたはコマンドラインユーティリティの両方を利用できます。 プリンタが正常に動作しない場合は、15.8項 「トラブルシューティング」を参照してください。

CUPS (Common Unix Printing System)は、SUSE Linux Enterprise Serverの標準印刷システムです。

プリンタは、インタフェース(USB、ネットワークなど)と、プリンタ言語によって区別できます。プリンタを購入するときは、プリンタがサポートされているインタフェース(USB、Ethernet、またはWi-Fi)を備えていること、および適切なプリンタ言語が使用できることを確認してください。プリンタは、次の3つのプリンタ言語クラスに基づいて分類できます。

PostScriptプリンタ

PostScriptは、LinuxとUnix環境のほとんどの印刷ジョブを生成する際に使用されるプリンタ言語であり、内部の印刷システムもこの言語を使用して処理を行います。使用中のプリンタがPostScriptドキュメントを直接処理でき、印刷システム側で追加のステージを使用して変換を行う必要がない場合、潜在的なエラーの原因の数が減少します。

現在では、標準的な印刷ジョブフォーマットとしてPDFがPostScriptに取って代わりつつあります。PostScriptに加え、PDFも直接印刷できるPostScript+PDFプリンタは、すでに存在しています。従来のPostScriptプリンタでは、印刷ワークフローでPDFをPostScriptに変換する必要があります。

標準的なプリンタ(PCLおよびESC/Pなどの言語)

既知のプリンタ言語の場合、印刷システムはGhostscriptの支援により、PostScriptのジョブを該当のプリンタ言語へ変換できます。この処理ステージを「解釈」と呼びます。非常によく知られている言語としては、ほとんどのHPのプリンタおよび互換モデルが採用しているPCLと、Epsonのプリンタが採用しているESC/Pがあります。これらのプリンタ言語は、通常、Linuxによってサポートされており、十分な印刷結果が得られています。Linuxは、一部の特殊な印刷機能に対応できない場合があります。HPとEpson以外には、現時点で、Linuxドライバを開発してオープンソース条項に基づきそれらをLinuxのディストリビュータに提供しているプリンタメーカは存在しません。

独自規格のプリンタ(GDIプリンタ)

これらのプリンタは、共通のプリンタ言語をサポートしていません。これらのプリンタは独自のプリンタ言語を使用しており、新しいエディション/モデルがリリースされると、プリンタ言語も変更される可能性があります。一般的にこのようなプリンタでは、Windowsドライバしか利用できません。詳細については、15.8.1項 「標準的なプリンタ言語をサポートしないプリンタ」を参照してください。

新しいプリンタを購入する前に、次の各ソース(情報源)を参照し、購入を予定しているプリンタがどの程度までサポートされているかを確認してください。

http://www.linuxfoundation.org/OpenPrinting/

プリンタデータベースのあるOpenPrintingホームページです。このデータベースは、最新のLinuxサポートステータスを示します。しかし、Linuxのディストリビューションが統合できるのは、製造の時点で使用可能だったドライバだけです。したがって、現時点で「完全にサポート済み」と評価されているプリンタであっても、最新バージョンのSUSE Linux Enterprise Serverがリリースされた時点では、そのステータスに達していなかった可能性があります。そのため、これらのデータベースは必ずしも正しいステータスを表しているとは限らず、おおよその状況を提示するだけにとどまっています。

http://pages.cs.wisc.edu/~ghost/

GhostscriptのWebページ。

/usr/share/doc/packages/ghostscript/catalog.devices

組み込みのGhostscriptドライバのリスト。

15.1 CUPSのワークフロー

ユーザが印刷ジョブを作成します。印刷ジョブは、印刷するデータとスプーラの情報から構成されますが、その情報には、プリンタの名前またはプリントキューの名前だけでなく、必要に応じて、プリンタ固有のオプションなど、フィルタに関する情報も含まれます。

各プリンタには、1つ以上の専用印刷キューが存在しています。指定のプリンタがデータを受け取れるようになるまで、スプーラは印刷ジョブをキュー内に留めています。プリンタの準備が整うと、スプーラはフィルタおよびバックエンドを経由して、プリンタにデータを送信します。

このフィルタは、印刷中のアプリケーションが生成したデータ(通常的はPostScriptやPDFですが、ASCII、JPEGなどの場合もあります)を、プリンタ固有のデータ(PostScript、PCL、ESC/Pなど)に変換します。プリンタの機能については、PPDファイルに記述されています。PPDファイルには、プリンタ固有のオプションが記述されています。各オプションに対しては、プリンタでそのオプションを有効にするために必要なパラメータが指定されています。フィルタシステムは、ユーザが有効として選択したオプションを確認します。

PostScriptプリンタを選択すると、フィルタシステムがデータをプリンタ固有のPostScriptに変換します。この変換にプリンタドライバは必要ありません。PostScript非対応プリンタを使用すると、フィルタシステムがデータをプリンタ固有データに変換します。この変換には、使用しているプリンタに適応したプリンタドライバが必要です。バックエンドは、プリンタ固有データをフィルタから受信し、そのデータをプリンタに送信します。

15.2 プリンタに接続するための方法とプロトコル

プリンタをシステムに接続するには、さまざまな方法があります。CUPS印刷システムの設定は、ローカルプリンタと、ネットワーク経由でシステムに接続されているプリンタを区別しません。プリンタ接続の詳細については、http://en.opensuse.org/SDB:CUPS_in_a_Nutshellにアクセスして「CUPS in a Nutshell」という記事を参照してください。

System z IBM System zのメインフレームにローカルで接続するz/VMによって提供されるプリンタおよび類似デバイスは、CUPSでサポートされていません。これらのプラットフォーム上では、ネットワーク経由の印刷だけを利用できます。ネットワークプリンタのケーブリング(ケーブル接続)は、プリンタメーカの指示にしたがって設置する必要があります。

警告
警告: 稼働中システムのケーブル接続の変更

プリンタをコンピュータに接続する場合、コンピュータの動作中に接続と取り外しを行って良いのはUSBデバイスだけであることに注意してください。システムやプリンタの損傷を回避するために、USB以外の接続を変更する場合は、あらかじめシステムをシャットダウンしてください。

15.3 ソフトウェアのインストール

PPD (PostScript printer description、PostScriptプリンタ記述)は、PostScriptプリンタの特性(解像度など)やオプション(両面印刷ユニットなど)を記述するコンピュータ言語です。これらの記述は、CUPS側でさまざまなプリンタオプションを使用するために必須です。PPDファイルがない場合、印刷データはraw(ロー、未加工)状態でプリンタへ送信されますが、そのことは通常は望ましくありません。

PostScriptプリンタを設定する場合、最善のアプローチは、適切なPPDファイルを入手することです。パッケージmanufacturer-PPDsおよびOpenPrintingPPDs-postscriptで、多くのPPDファイルが提供されています。15.7.3項 「各種パッケージ内のPPDファイル」および15.8.2項 「特定のPostScriptプリンタに適したPPDファイルが入手できない」を参照してください。

新しいPPDファイルは、/usr/share/cups/model/ディレクトリ内に保存するか、YaSTで印刷システムに追加できます(項 「YaSTによるドライバの追加」, 第8章 YaSTによるハードウェアコンポーネントの設定, 導入ガイドを参照)。その後は、プリンタのセットアップ時にPPDファイルを選択できるようになります。

プリンタメーカーがソフトウェアパッケージ全体をインストールさせようとする場合には注意してください。第一に、このタイプのインストールを行うと、SUSE Linux Enterprise Serverによって提供されているサポートが失われる場合があります。第二に、印刷コマンドが異なる動作をする可能性があり、システムが他のメーカーのデバイスに対応できなくなる場合があります。この理由で、メーカのソフトウェアをインストールすることをお勧めしません。

15.4 ネットワークプリンタ

ネットワークプリンタは、さまざまなプロトコルをサポートでき、その複数を同時にサポートすることも可能です。サポートされているプロトコルのほとんどが標準化されているので、一部のメーカーは標準を変更します。そして、メーカーは、2、3のオペレーティングシステムにのみ対応するドライバを提供します。残念なことに、Linuxドライバはめったに提供されません。現在の状況では、あらゆるプロトコルがLinux環境で円滑に動作するという仮定に基づいて行動することはできません。したがって、機能する設定を実現するために、さまざまなオプションを実験する必要があります。

CUPSは、socketLPDIPP、およびsmbの各プロトコルをサポートしています。

socket

ソケットは、プレインプリントデータのTCPソケットへの直接送信に使用される接続です。一般的に使用されるsocketのポート番号のいくつかは、9100または35です。デバイスURI (Uniform Resource Identifier)の構文は、socket://IP.of.the.printer:portです(たとえば、socket://192.168.2.202:9100/)。

LPD (line printer daemon、ラインプリンタデーモン)

LPDプロトコルについては、RFC 1179で説明されています。このプロトコルの下では、印刷キューのIDなど、一部のジョブ関連データが送信されてから、実際の印刷データが送信されます。したがって、LPDプロトコルの設定時には印刷キューを指定する必要があります。さまざまなプリンタメーカによる実装は、プリントキューとして任意の名前を受け入れる柔軟性を備えています。必要に応じて、使用可能な名前がプリンタのマニュアルに提示されています。多くの場合、LPT、LPT1、LP1、または他の類似した名前が使用されています。LPDサービスが使用するポート番号は515です。デバイスURIの例は、lpd://192.168.2.202/LPT1です。

IPP (Internet Printing Protocol、インターネット印刷プロトコル)

IPPは、HTTPプロトコルに基づいた比較的新しい(1999年)プロトコルです。IPPを使用する場合、他のプロトコルより、ジョブとの関連性が高いデータが送信されます。CUPSは、IPPを使用して内部のデータ送信を行います。IPPを正しく設定するには、印刷キューの名前は必須です。IPPのポート番号は631です。デバイスURIの例は、ipp://192.168.2.202/psおよびipp://192.168.2.202/printers/psです。

SMB (Windows共有)

CUPSは、Windows共有に接続されたプリンタへの印刷もサポートしています。この目的で使用されるプロトコルは、SMBです。SMBは、ポート番号137138、および139を使用します。デバイスURIの例は、smb://user:password@workgroup/smb.example.com/printersmb://user:password@smb.example.com/printer、およびsmb://smb.example.com/printerです。

設定を行う前に、プリンタがサポートしているプロトコルを決定する必要があります。メーカーから必要な情報が提供されていない場合は、コマンドnmap(nmapパッケージに付属)を使用して、プロトコルを推定します。nmapはホストのオープンポートを確認します。例:

nmap -p 35,137-139,515,631,9100-10000 printerIP

15.5 コマンドラインツールによるCUPS設定

CUPSは、lpinfolpadminlpoptionsなどのコマンドラインツールで設定できます。バックエンド(USBなど)とパラメータで構成されるデバイスURIが必要です。システム上の有効なデバイスURIを判断するには、lpinfo -v | grep ":/"コマンドを使用します。

# lpinfo -v | grep ":/"
direct usb://ACME/FunPrinter%20XL
network socket://192.168.2.253

lpadminを使用すると、CUPSサーバ管理者は、印刷キューの追加、削除、または管理を実行できます。プリントキューを追加するには、次の構文を使用します。

lpadmin -p queue -v device-URI -P PPD-file -E

このデバイス(-v)は、指定したPPDファイル(-P)を使用して、queue (-p)として使用できます。プリンタを手動で設定する場合は、このPPDファイルとデバイスのURIを把握しておく必要があります。

-Eは、最初のオプションとして使用しないでください。どのCUPSコマンドでも、-Eを最初の引数として使用した場合、暗号化接続を使用することを暗示的に意味します。プリンタを使用可能にするには、次の例に示す方法で-Eを使用する必要があります。

lpadmin -p ps -v usb://ACME/FunPrinter%20XL -P \
/usr/share/cups/model/Postscript.ppd.gz -E

ネットワークプリンタの設定例:

lpadmin -p ps -v socket://192.168.2.202:9100/ -P \
/usr/share/cups/model/Postscript-level1.ppd.gz -E

lpadminのオプションの詳細は、lpadmin(8)のマニュアルページを参照してください。

プリンタのセットアップ時には、一部のオプションがデフォルトとして設定されています。これらのオプションは、各印刷ジョブ用に変更できます(使用される印刷ツールに依存)。YaSTを使用して、これらのデフォルトオプションを変更することもできます。コマンドラインツールを使用して、デフォルトオプションを次のように設定します。

  1. 最初に、すべてのオプションを列挙します。

    lpoptions -p queue -l

    例:

    Resolution/Output Resolution: 150dpi *300dpi 600dpi

    アクティブになったデフォルトオプションは、先頭にアスタリスク(*)が付いています。

  2. 次のようにlpadminを使用してオプションを変更します。

    lpadmin -p queue -o Resolution=600dpi
  3. 新しい設定値の確認:

    lpoptions -p queue -l
        
    Resolution/Output Resolution: 150dpi 300dpi *600dpi

標準ユーザがlpoptionsを実行すると、設定が~/.cups/lpoptionsに書き込まれます。ただし、root設定は/etc/cups/lpoptionsに書き込まれます。

15.6 コマンドラインからの印刷

コマンドラインから印刷するには、コマンド「lp -d queuenamefilename」を入力し、queuenameおよびfilenameを対応する名前で置き換えます。

一部のアプリケーションでは、印刷処理をlpコマンドに依存しています。この場合、アプリケーションの印刷ダイアログで正しいコマンドを入力します。ただし、通常はfilenameを指定しません。たとえば、「lp -d queuename」と入力します。

15.7 SUSE Linux Enterprise Serverの特別な機能

CUPSの複数の機能は、SUSE Linux Enterprise Serverで使用できるように調整されています。ここでは、最も重要な変更点について説明します。

15.7.1 CUPSとファイアウォール

デフォルトのSUSE Linux Enterprise Serverインストールを実行した後、SuSEfirewall2はアクティブになり、ネットワークインタフェースは着信トラフィックをブロックする外部ゾーンに設定されます。SuSEFirewall2の設定の詳細については、Section “SuSEFirewall2”, Chapter 15, Masquerading and Firewalls, Security Guideおよびhttp://en.opensuse.org/SDB:CUPS_and_SANE_Firewall_settingsを参照してください。

15.7.1.1 CUPSクライアント

通常、CUPSクライアントはファイアウォール内部の信頼されるネットワーク環境の通常のワークステージョンで実行されます。この場合、ネットワークインタフェースを内部ゾーンに設定し、ワークステーションにネットワーク内部から到達できるようにすることを推奨します。

15.7.1.2 CUPSサーバ

CUPSサーバがファイアウォールで保護された信頼済みネットワーク環境の一部の場合、ネットワークインタフェースはファイアウォールの内部ゾーンに設定します。CUPS設定で特別なファイアウォールルールおよびセキュア設定により保護する場合を除いて、信頼できないネットワーク環境でCUPSサーバを設定することはお勧めできません。

15.7.2 ネットワークプリンタの参照

CUPSサーバは、共有プリンタが利用可能かどうか、およびそのステータスをネットワーク上で定期的にアナウンスします。クライアントは、この情報にアクセスすることで、印刷ダイアログなどに利用可能なプリンタのリストを表示できます。これを参照と呼びます。

CUPSサーバでは、ネットワークを介して印刷キューをアナウンスする際に、従来のCUPS参照プロトコルまたはBonjour/DND-SDが使用されます。ネットワーク印刷キューを参照するには、cups-browsedサービスを、CUPSサーバを介して印刷するすべてのクライアントで実行する必要があります。cups-browsedは、デフォルトでは起動されません。アクティブなセッションでこのサービスを起動するには、sudo systemctl start cups-browsed.serviceを使用します。ブート後にこのサービスが自動的に起動されるようにするには、すべてのクライアントでsudo systemctl enable cups-browsed.serviceを実行してサービスを有効にします。

cups-browsedを起動しても参照できない場合は、CUPSサーバがBonjour/DND-SDを介してネットワーク印刷キューをアナウンスしている可能性があります。この場合、avahiパッケージを追加インストールし、すべてのクライアントに対してsudo systemctl start avahi-daemon.serviceを実行することで、関連するサービスを起動する必要があります。

15.7.3 各種パッケージ内のPPDファイル

YaSTのプリンタ環境設定では、/usr/share/cups/modelにインストールされたPPDファイルを使用して、CUPSのキューがセットアップされます。プリンタモデルに適合するPPDファイルを見つけるため、YaSTはハードウェア検出時に判別されたベンダおよびモデルを、すべてのPPDファイル内のベンダおよびモデルと比較します。このために、YaSTのプリンタ環境設定機能は、PPDファイルから抽出したベンダおよびモデルの情報に基づいて、データベースを生成します。

PPDファイルのみを使用し、他の情報ソースを使用しない設定には、/usr/share/cups/model/内のPPDファイルを自由に変更できるという利点があります。たとえば、PostScriptプリンタを使用している場合、そのPPDファイルを/usr/share/cups/modelへ直接コピーし(それらがまだmanufacturer-PPDsまたはOpenPrintingPPDs-postscriptパッケージ内に存在していない場合)、使用中のプリンタに合わせて最適な設定を行うこともできます。

追加のPPDファイルは次のパッケージで提供されています。

  • gutenprint: Gutenprintドライバとそれに一致するPPD

  • splix: SpliXドライバとそれに一致するPPD

  • OpenPrintingPPDs-ghostscript: Ghostscriptの組み込みドライバ用PPD

  • OpenPrintingPPDs-hpijs: HP以外のプリンタ向けのHPIJSドライバ用PPD

15.8 トラブルシューティング

ここでは、プリンタハードウェアおよびソフトウェアに最も一般的に発生する問題と、それを解決または回避する方法について説明します。GDIプリンタ、PPDファイル、およびポート設定などのトピックをカバーしています。一般的なネットワークプリンタに関する問題、印刷に問題がある場合、およびキュー処理についても対処しています。

15.8.1 標準的なプリンタ言語をサポートしないプリンタ

これらのプリンタは、共通のプリンタ言語をサポートしておらず、独自のコントロールシーケンスを使用しないと対処できません。そのため、これらのプリンタは、メーカがドライバを添付した特定のバージョンのオペレーティングシステムでのみ動作します。GDIは、Microsoft*がグラフィックデバイス用に開発したプログラミングインタフェースです。通常、メーカーはWindows用のドライバだけを提供しており、WindowsドライバはGDIインタフェースを使用しているため、これらのプリンタは「GDIプリンタ」と呼ばれることもあります。実質的な問題は、このプログラミングインタフェースではなく、これらのプリンタを制御できるのは、各プリンタモデルが採用している独自のプリンタ言語のみという事実にあります。

いくつかのGDIプリンタは、GDIモードと標準的なプリンタ言語のいずれかの間で操作を切り替えることができます。切り替えができるかどうかは、プリンタのマニュアルを参照してください。モデルによっては、切り替えを行うために特別なWindowsソフトウェアが必要なこともあります(Windowsから印刷する場合、Windowsプリンタドライバは常にプリンタをGDIモードに切り替える場合があることに注意してください)。他のGDIプリンタでは、標準のプリンタ言語を利用するための拡張モジュールが用意されています。

一部のメーカは、プリンタに独自規格のドライバを提供しています。独自規格のプリンタドライバの欠点は、インストール済みの印刷システムとそのドライバを組み合わせたときに動作するという保証も、さまざまなハードウェアプラットフォームに適しているという保証もないことです。一方、標準的なプリンタ言語をサポートするプリンタは、特殊なバージョンの印刷システムや特殊なハードウェアプラットフォームに依存しません。

専有のLinuxドライバを機能させようと時間を費やす代わりに、標準プリンタ言語(PostScript推奨)をサポートするプリンタを購入する方が費用効率が高い場合があります。この方法により、ドライバの問題を一度で完全に解決できます。特殊なドライバソフトウェアのインストールと設定を行う必要はなく、新しい印刷システムの開発に伴ってドライバのアップデートを入手する必要もありません。

15.8.2 特定のPostScriptプリンタに適したPPDファイルが入手できない

manufacturer-PPDsパッケージまたはOpenPrintingPPDs-postscriptパッケージに、PostScriptプリンタに適したPPDファイルが含まれていない場合は、プリンタメーカのドライバCDにあるPPDファイルを使用したり、プリンタメーカのWebページから適切なPPDファイルをダウンロードしたりすることができます。

PPDファイルがzipアーカイブ(.zip)または自己展開zipアーカイブ(.exe)の形で提供されている場合、unzipを使用してそのファイルを展開します。最初に、PPDファイルのライセンス(許諾契約)条項を読みます。次にcupstestppdユーティリティを使って、PPDファイルがAdobe PostScript Printer Description File Format Specification, version 4.3に準拠しているかどうかを確認します。FAILユーティリティから失敗が返された場合は、PPDファイル中のエラーは深刻なもので、問題を引き起こす可能性があります。cupstestppdによって報告された問題点は、取り除く必要があります。必要に応じて、適切なPPDファイルが入手できるかどうかをプリンタメーカに問い合わせることも考えられます。

15.8.3 ネットワークプリンタ接続

ネットワークの問題の識別

プリンタをコンピュータに直接接続します。テストの目的で、そのプリンタをローカルプリンタとして設定します。この方法で動作する場合、問題はネットワークに関連しています。

TCP/IPネットワークの確認

TCP/IPネットワークと名前解決が正しく機能していることが必要です。

リモートlpdの確認

次のコマンドを使用して、host上のlpd (ポート515)に対するTCP接続を確立できるかどうかをテストします。

netcat -z host 515 && echo ok || echo failed

lpdへの接続を確立できない場合、lpdがアクティブになっていないか、ネットワークの基本的な問題があります。

rootユーザで次のコマンドを使用し、リモートhost上のqueueに関するステータスレポート(おそらく、非常に長い)を照会することもできます。これは、該当のlpdがアクティブで、そのホストが照会を受け付けることを前提にしています。

echo -e "\004queue" \
| netcat -w 2 -p 722 host 515

lpdが応答しない場合、それがアクティブになっていないか、ネットワークの基本的な問題が発生している可能性があります。lpdが応答する場合、その応答は、host上にあるqueueを介して印刷ができない理由を示すはずです。例15.1「lpdからのエラーメッセージ」で示すような応答を受け取った場合、問題はリモートのlpdにあります。

例 15.1 lpdからのエラーメッセージ
lpd: your host does not have line printer access
lpd: queue does not exist
printer: spooling disabled
printer: printing disabled
リモートcupsdの確認

CUPSネットワークサーバは、デフォルトで、UDPポート631から30秒ごとにキューをブロードキャストできます。したがって、次のコマンドを使用すると、ブロードキャストするCUPSネットワークサーバがネットワーク内に存在しているかどうかテストすることができます。コマンドを実行する前に、ローカルCUPSデーモンが終了していることを確認します。

netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID

ブロードキャストを行っているCUPSネットワークサーバが存在している場合、出力は例15.2「CUPSネットワークサーバからのブロードキャスト」に示すようになります。

例 15.2 CUPSネットワークサーバからのブロードキャスト
ipp://192.168.2.202:631/printers/queue

System z IBM System zのEthernetデバイスは、デフォルトではブロードキャストを受信しないことを考慮してください。

次のコマンドを使用して、host上のcupsd (ポート631)に対するTCP接続を確立できるかどうかをテストすることができます。

netcat -z host 631 && echo ok || echo failed

cupsdへの接続を確立できない場合は、cupsdが有効になっていないか、基本的なネットワークの問題が発生している可能性があります。lpstat -h host -l -tは、host上のすべてのキューに関するステータスレポート(非常に長い場合がある)を返しますが、それぞれのcupsdが有効になっていて、ホストがクエリを受け入れることが前提になります。

次のコマンドを使用して、host上のqueueが、1つのキャリッジリターン(CR、改行)文字からなる印刷ジョブを受け付けるかどうかをテストできます。何も印刷されないのが妥当です。おそらく、空白のページが排出されるはずです。

echo -en "\r" \
| lp -d queue -h host
ネットワークプリンタまたは印刷サーバボックスのトラブルシューティング

印刷サーバボックス上のスプーラは時々、複数の印刷ジョブを処理する必要が生じた場合、問題を引き起こすことがあります。これはプリントサーバボックスのスプーラで発生するため、この問題を解決する方法はありません。回避策として、TCPソケットを使用して、プリントサーバボックスに接続されているプリンタに直接送信することで、プリントサーバボックス内のスプーラを使用しないようにします。詳細については、15.4項 「ネットワークプリンタ」を参照してください。

この方法により、印刷サーバボックスは異なる形式のデータ転送(TCP/IPネットワークとローカルプリンタ接続)間の単純なコンバータになります。この方法を使用するには、印刷サーバボックス内にある、該当するTCPポートについて把握する必要があります。プリンタがプリントサーバボックスに接続されていて、電源がオンになっている場合、プリントサーバボックスの電源をオンにした後、しばらく経過した時点で、nmapパッケージのnmapユーティリティを使用することにより、このTCPポートを特定できます。たとえば、nmap IP-address は、印刷サーバボックスに関して次のような出力をすることがあります。

Port       State       Service
23/tcp     open        telnet
80/tcp     open        http
515/tcp    open        printer
631/tcp    open        cups
9100/tcp   open        jetdirect

この出力は、印刷サーバボックスに接続されているプリンタが、ポート9100上のTCPソケットを介して使用できることを示します。nmapはデフォルトでは、/usr/share/nmap/nmap-services内に記述されている複数の一般的な既知のポートだけを確認します。可能性のあるすべてのポートをチェックするには、nmap -p from_port-to_portIP-addressコマンドを使用します。これは、ある程度の時間を要することがあります。詳細な情報については、nmapのマニュアルページを参照してください。

次のようなコマンドを入力します。

echo -en "\rHello\r\f" | netcat -w 1 IP-address port
cat file | netcat -w 1 IP-address port

これは、このポートを通してプリンタを使用できるかどうかをテストするために、該当のポートへ文字列またはファイルを直接送信します。

15.8.4 エラーメッセージを生成しない異常なプリントアウト

印刷システムの観点では、CUPSバックエンドが受信側(プリンタ)へのデータ転送を完了した段階で、印刷ジョブは完了します。受信側でそれ以降の処理が失敗した場合(たとえば、プリンタがそのプリンタ固有のデータを印刷できない)、印刷システムはこれを検出しません。プリンタがそのプリンタ固有のデータを印刷できない場合、そのプリンタにより適していると考えられるPPDファイルを選択します。

15.8.5 無効にされたキュー

受信側へのデータ転送が数回の試行後に完全に失敗した場合、usbsocketなどのCUPSバックエンドは印刷システム(より正確にはcupsd)にエラーを報告します。データ転送が不可能と報告される前に、バックエンドは何回の試行の失敗が妥当であるかを判断します。それ以上の試行は無駄に終わる可能性があるので、cupsdはそれぞれのキューの印刷を無効にします。問題の原因を取り除いた後、システム管理者はcupsenableコマンドを使用して、印刷を再度有効にする必要があります。

15.8.6 CUPS参照:印刷ジョブの削除

CUPSネットワークサーバが参照機能を使用して自らのキューをクライアントホストへブロードキャストし、クライアントホスト側で適切なローカルcupsdがアクティブになっている場合、クライアント側のcupsdはアプリケーションから印刷ジョブを受け付け、サーバ側のcupsdへそれらを転送します。サーバ上でcupsdが印刷ジョブを受け付けると、そのジョブには新しいジョブ番号が割り当てられます。したがって、クライアントホスト上のジョブ番号は、サーバ上のジョブ番号とは異なっています。印刷ジョブは通常、即座に転送されるので、クライアントホスト上でジョブ番号でそのジョブを削除することはできません。クライアント側のcupsdは、サーバ側のcupsdへの転送が完了した時点で、その印刷ジョブは完了したと考えるからです。

サーバ上にあるプリントジョブを削除したい場合、lpstat -h cups.example.com -oなどのコマンドを使用してサーバ上のジョブ番号を判断します。サーバがまだそのプリントジョブを完了していない(つまり、プリンタへ完全に送信していない)ことが前提条件です。このジョブ番号を使用して、サーバ上にある印刷ジョブを削除できます。

cancel -h cups.example.com queue-jobnumber

15.8.7 異常な印刷ジョブとデータ転送エラー

印刷プロセス中にプリンタの電源を切ったり、コンピュータをシャットダウンすると、印刷ジョブはキュー内に残ります。コンピュータ(またはプリンタ)の電源を再度投入すると、印刷が再開されます。異常な印刷ジョブは、cancelを使用してキューから削除する必要があります。

印刷ジョブが異常な場合、またはホストとプリンタの間で通信エラーが発生した場合、プリンタはデータを正しく処理できなくなるので、文字化けのような大量のページが印刷されることがあります。この状況を修正するには、次の手順に従います。

  1. プリンタの動作を停止するために、インクジェットプリンタの場合、すべての用紙を取り除きます。レーザープリンタの場合、用紙トレイを開けます。上位機種のプリンタでは、現在のプリントアウトをキャンセルするボタンを用意していることもあります。

  2. この時点で、印刷ジョブはキューに残っている可能性があります。ジョブがキューから削除されるのは、ジョブ全体をプリンタへ送信した後に限られるからです。lpstat -oまたはlpstat -h cups.example.com -oを使用して、どのキューが現在印刷に使用されているかを確認します。cancel queue-jobnumber またはcancel -h cups.example.com queue-jobnumberを使用して、該当のプリントジョブを削除します。

  3. 印刷ジョブがすでにキューから削除されているにもかかわらず、一部のデータが依然としてプリンタへ送信され続けることもあります。CUPSバックエンドプロセスが、引き続き該当のキューを対象として動作しているかどうかをチェックし、その処理を終了します。

  4. ある程度の時間にわたって電源をオフにして、プリンタを完全にリセットします。その後、紙を元に戻し、プリンタの電源をオンにします。

15.8.8 CUPSのデバッグ

CUPSの問題を特定するために、次の一般的な手順を実行します。

  1. /etc/cups/cupsd.conf内に、LogLevel debugを設定します。

  2. cupsdコマンドを停止します。

  3. /var/log/cups/error_log*を削除して、大規模なログファイルから検索を行うことを避けます。

  4. cupsdを起動します。

  5. 問題の原因となったアクションをもう一度実行します。

  6. /var/log/cups/error_log*内のメッセージを確認し、問題の原因を識別します。

15.8.9 詳細情報

SUSE Linuxでの印刷の詳細については、openSUSE Support Database (http://en.opensuse.org/Portal:Printing)にアクセスしてください。SUSE Knowledgebase (http://www.suse.com/support/)では、さまざまな個別の問題のソリューションが紹介されています。CUPSのテキスト検索機能により関連する記事を見つけてください。

このページを印刷