この章では、印刷サービスの設定または管理の際に発生する可能性のある印刷上の問題を解決する方法について説明します。
この章の内容は次のとおりです。
印刷の概要については、第 1 章Oracle Solaris オペレーティングシステムでの印刷の概要を参照してください。
プリンタを設定するときは、場合によってはデバイス識別情報の検索が必要になることがあります。詳細は、「パラレルおよび USB 接続の印刷デバイスに関する情報の検索」を参照してください。
パラレルおよび USB 接続のプリンタに関する情報は、/dev/printers ディレクトリにあります。
プリンタの IEEE1284 デバイス識別情報について照会するには、次のように入力します。
# /usr/lib/lp/bin/printer-info -a /dev/printers/* |
次に例を示します。
# /usr/lib/lp/bin/printer-info -a /dev/printers/* /dev/printers/0: Manufacturer: Hewlett-Packard Model: hp color LaserJet 4650 Description: Hewlett-Packard color LaserJet 4650 Class: PRINTER Command set: cmd[0]: PJL cmd[1]: MLC cmd[2]: BIDI-ECP cmd[3]: PCLXL cmd[4]: PCL cmd[5]: PDF cmd[6]: PJL cmd[7]: MIME cmd[8]: POSTSCRIPT |
Solaris 印刷マネージャーでデバイスを追加するときは、同じプログラムの「新しいローカルプリンタを設定」ダイアログボックスで、プリンタメーカーとモデルに関する情報を検出し、入力します。詳細は、printmgr(1M) を参照してください。
プリンタを設定し終わったあとに、何も印刷されないことがあります。また、若干は処理されるものの、 何か印刷しても正しく出力されない、読みづらいなど、期待どおりの結果が得られないことがあります。
このような問題が発生すると、他にも次のような問題が発生することがあります。
lp コマンドがハングする
プリンタがアイドル状態になる
ユーザーが矛盾したメッセージを受け取る
この章の推奨事項の多くはパラレルプリンタに関連しますが、より一般的なシリアルプリンタにも当てはまります。
何も印刷されないときは、次の部分をチェックします。
プリンタハードウェア
ネットワーク
LP 印刷サービス
バナーページは印刷されるのに他には何も印刷されない場合は、不正な出力の特殊ケースです。「出力が正しくない場合の対処」を参照してください。
ハードウェアは、最初にチェックすべきポイントです。プリンタが電源に接続され、電源がオンになっているかどうかを確認してください。また、ハードウェア付属のマニュアルを参照して、ハードウェアの設定値を調べてください。コンピュータによっては、プリンタポートの特性を変更するハードウェアスイッチが付いているものがあります。
プリンタハードウェアには、プリンタ、コンピュータへの接続ケーブル、ケーブルの先端を接続するポートが含まれます。一般的なアプローチとしては、プリンタからコンピュータへと順番に調べてください。まず、プリンタをチェックします。次に、ケーブルがプリンタに接続される箇所をチェックします。次に、ケーブルをチェックします。最後に、ケーブルがコンピュータに接続されている箇所をチェックします。
よく問題が発生するのは、印刷クライアントから印刷サーバーに送られるリモート印刷要求です。印刷サーバーと印刷クライアント間でネットワークアクセスが使用可能になっているかどうかを確認してください。
ネットワークがネットワーク情報サービスプラス (NIS+) を実行している場合は、システム間のアクセスを有効にする手順について、『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』を参照してください。ネットワークが NIS または NIS+ を実行していない場合は、印刷サーバーと印刷クライアントを設定する前に、印刷サーバー上の /etc/hosts ファイルに各クライアントシステムのインターネットアドレスとシステム名を組み込んでください。また、印刷サーバーの IP アドレスとシステム名を、各印刷クライアントシステムの /etc/hosts ファイルに含める必要があります。
正常に印刷するには、印刷サーバーで LP スケジューラが動作していなければなりません。動作していない場合は、次のコマンドを使用して起動する必要があります。
# svcadm enable application/print/server |
スケジューラが動作している他に、出力する前にプリンタが使用可能になっていて、印刷要求を受け付けられる状態になっていなければなりません。LP 印刷サービスがプリンタへの要求を受け付けなければ、依頼した印刷要求は拒否されます。その場合、一般にユーザーは印刷要求を依頼すると警告メッセージを受け取ります。LP 印刷サービスがプリンタで使用可能になっていないと、印刷要求はプリンタが使用可能になるまでシステム上の待ち行列に残ります。
通常は、次の手順で印刷時の問題を分析してください。
手順ごとに印刷要求の経路を追跡します。
手順ごとに LP 印刷サービスの状態を調べます。
構成は正しいか
プリンタは要求を受け付けるか
プリンタは要求を処理できるか
要求が転送時にハングしている場合は、syslog.conf 内の lpr.debug を設定し、転送状況を表示します。「印刷の問題のデバッグ」を参照してください。
要求がローカルでハングしている場合は、プリンタデバイスエラー (障害) の通知を送らせ、プリンタを再度使用可能にします。
「印刷時のさまざまな問題の解決」に掲載されている手順では、この方法を使用して LP 印刷サービスに関する各種の問題に対処する方法を説明します。
/etc/syslog.conf ファイル内の lpr.debug を有効にすると、さまざまな役立つ情報が提供されます。大量の情報が提供されるため、この機能は、印刷時の問題をデバッグしている場合にのみ有効にすることをお勧めします。
詳細は、「印刷に関する問題をデバッグする方法」を参照してください。
プリンタと印刷サービスソフトウェアが正しく構成されていない場合は、プリンタで印刷されても、期待どおりに出力されないことがあります。
LP 印刷サービスでプリンタを設定するときに間違ったプリンタタイプを使用すると、不適切なプリンタ制御文字がプリンタに送られる可能性があります。その結果は予測できません。 何も印刷されない、出力が読みづらい、正しい文字セットやフォントで印刷されないなどの結果となります。
間違ったファイル内容形式を指定した場合、バナーページは印刷できますが、他には何も印刷されません。プリンタに指定されたファイル内容形式は、プリンタがフィルタなしで直接印刷できるファイル形式を示します。ユーザーがプリンタにファイルを送信すると、ファイルはフィルタなしでプリンタに直接送信されます。プリンタがその形式を処理できないときは、問題が発生します。
印刷クライアントの設定時には、ファイル内容形式が印刷サーバーと印刷クライアントの両方で正しくなければならないので、間違いをおかす機会が多くなります。推奨する方法は、印刷クライアントのファイル内容形式を any に設定することです。こうすると、ファイルは印刷サーバーに直接送信され、フィルタが必要かどうかはサーバー側で決定されます。したがってファイル内容形式は、サーバー側だけで正しく指定すればよいことになります。
印刷クライアント側でファイル内容を指定し、フィルタリングの負荷をサーバーからクライアントに移すことができますが、内容の形式は印刷サーバー側でサポートしなければなりません。
デフォルトの stty (標準端末) 設定値がプリンタから要求される設定値と一致しないと、多数のフォーマット上の問題が生じる可能性があります。この後の節では、設定値の一部が間違っているときに発生する問題について説明します。
コンピュータのボーレート設定値がプリンタのボーレート設定値と一致しないときは、通常何か出力されますが、希望する出力は得られません。特殊文字や不要なスペースが異常に混じったランダムな出力が表示されます。LP 印刷サービスのデフォルトは 9600 ボーレートです。
プリンタがパラレルポートで接続されている場合、ボーレートの設定値は無関係です。
プリンタによっては、パリティービットを使用して、印刷用に受け取ったデータが誤って変更されていないことを確認するものがあります。コンピュータとプリンタのパリティービットの設定値は一致しなければなりません。一致しない場合、文字によってはまったく印刷されないか、他の文字で置き換えられることもあります。その出力は文字間隔が正しく、ほとんどの文字が正しい位置にあるので、一見正しいように見えます。 LP 印刷サービスの場合、デフォルトではパリティービットは設定されません。
ファイルにタブが含まれていても、プリンタがタブを予期していなければ、ファイルの内容が完全に印刷されたとしても、テキストが右マージンに対して正確に配置されないことがあります。また、プリンタのタブ設定が間違っていると、テキストに左マージンがない、テキストがつながってしまう、テキストがページの一部分に集中する、間違ってダブルスペースになってしまうなどの問題が発生します。デフォルトでは、タブは 8 スペースごとに設定されます。
出力がシングルスペースのはずなのにダブルスペースになる場合は、プリンタのタブ設定値が間違っているか、プリンタが Return の後に 1 行追加されています。LP 印刷サービスは、改行の前に 1 つ Return を追加するので、その組み合わせによって 2 行の改行が発生します。
ジグザグに印刷される場合は、改行の前に Return を送る stty オプションの onlcr が設定されていません。stty=onlcr オプションはデフォルトで設定されますが、他の印刷問題を解決しようとしたときに、それを消去した可能性があります。
lp コマンド (lpsystem、lpadmin、lpstat など) を入力しても何も発生しない (エラーメッセージ、状態情報、またはプロンプトが表示されない) 場合は、LP スケジューラに問題が発生した可能性があります。このような問題は、通常は LP スケジューラを停止して再起動すれば解決できます。操作手順については、「印刷スケジューラを停止する方法」を参照してください。
プリンタが印刷要求を待ち行列に入れているのに、アイドル状態になっていることがあります。
プリンタがアイドル状態になっている場合は、次の原因が考えられます。
現在の印刷要求にフィルタがかけられている
プリンタに障害がある
ネットワーク上の問題が原因で、印刷処理が中断されている
低速印刷フィルタは、プリンタを拘束しないようにバックグラウンドで実行されます。フィルタリングが必要な印刷要求は、フィルタリングが終わるまで印刷されません。
LP 印刷サービスが障害を検出すると、印刷はすぐにではありませんが自動的に再開されます。LP 印刷サービスは約 5 分間待機し、要求が正常に印刷されるまで試行し続けます。プリンタを使用可能にすると、すぐに再試行できます。
ネットワーク経由でファイルを印刷するときには、次の問題が発生することがあります。
印刷サーバーに送られた要求が、クライアントシステム (ローカル) の待ち行列で停止する
印刷サーバーに送られた要求が、印刷サーバー (リモート) の待ち行列で停止する
印刷サーバーに依頼された印刷要求は、次の原因でクライアントシステムの待ち行列で停止することがあります。
印刷サーバーがダウンしている
プリンタが印刷サーバー側で使用不可にされている
印刷クライアントと印刷サーバー間のネットワークがダウンしている
ベースになる互換バージョンのネットワークソフトウェアが適切に設定されていない
問題の原因を突き止めるときには、新しい要求を待ち行列に追加しないでください。詳しくは、「プリンタへの印刷要求を受け付けるまたは拒否する方法」を参照してください。
印刷要求が印刷サーバーの待ち行列で停止する場合は、プリンタが使用不可になっている可能性があります。プリンタが要求を受け付けても処理しないとき、その要求は印刷するために待ち行列に入れられます。プリンタを使用可能にすると、それ以外に問題がなければ、待ち行列内の印刷要求は印刷されます。
ユーザーが印刷要求を入力すると、クライアントシステムからは受け付けられたことが通知され、印刷サーバーからは印刷要求が拒否されたことを示すメールを受け取ることがあります。
これらの矛盾したメッセージは、次の原因で発生することがあります。
印刷クライアントは要求を受け付けることができても、印刷サーバーは要求を拒否している場合
印刷クライアント側のプリンタの定義が、印刷サーバー側のプリンタの定義と一致しない場合。特に、フィルタ、文字セット、印字ホイール、フォームなど、印刷ジョブコンポーネントの定義が、クライアントとサーバーシステムの間で一致していない場合
ローカルユーザーが印刷サーバー上でプリンタにアクセスできるように、これらのジョブコンポーネントの定義が印刷クライアントと印刷サーバーの両方で登録されているかどうかを確認してください。
この節では、次の手順について説明します。
出力されない問題を解決する方法
出力が正しくない問題を解決する方法
lp コマンドのハングを解除する方法
アイドル状態になった (ハングした) プリンタの問題を解決する方法
矛盾した状態メッセージを解決する方法
この作業には、次の問題解決の手順が含まれています。印刷要求をプリンタに出したのに何も印刷されない場合は、これらの手順を試してください。
ハードウェアをチェックします (「プリンタハードウェアをチェックする方法」)。
ネットワークをチェックします (「プリンタのネットワーク接続をチェックする方法」)。
LP 印刷サービスの基本機能をチェックします (「LP 印刷サービスの基本機能をチェックする方法」)。
印刷クライアントから印刷サーバーへの印刷をチェックします (「印刷クライアントから印刷サーバーへの印刷をチェックする方法」)。
印刷クライアント/印刷サーバーの節に進む前に、上記のうち最初の 3 つの手順をリストの順に試してください。ただし、バナーページは印刷されてほかに何も印刷されない場合は、「出力が正しくない場合の問題を解決する方法」の説明に進んでください。
プリンタがコンセントに接続され、電源がオンになっているか確認します。
ケーブルがプリンタのポートと、システムまたはサーバーのポートに接続されているか確認します。
そのケーブルが正しいケーブルであり、欠陥がないことを確認します。
製造業者のマニュアルを参照してください。プリンタがシリアルポートに接続されている場合は、そのケーブルでハードウェアフロー制御がサポートされることを確認してください。ヌルモデムアダプタでは、この機能がサポートされます。次の表は、ヌルモデムケーブル用のピン構成を示しています。
ホスト |
プリンタ |
|
---|---|---|
Mini-Din-8 |
25-Pin D-sub |
25-Pin D-sub |
- |
1(FG) |
1(FG) |
3(TD) |
2(TD) |
3(RD) |
5(RD) |
3(RD) |
2(TD) |
6(RTS) |
4(RTS) |
5(CTS) |
2(CTS) |
5(CTS) |
4(RTS) |
4(SG) |
7(SG) |
7(SG) |
7(DCD) |
6(DSR)、8(DCD) |
20(DTR) |
1(DTR) |
20(DTR) |
6(DSR)、8(DCD) |
ポート用のハードウェアスイッチが正しく設定されていることを確認します。
正しい設定については、プリンタのマニュアルを参照してください。
プリンタが動作するか確認します。
プリンタにセルフテスト機能が付いている場合は、その機能を使用します。プリンタのセルフテストの詳細は、プリンタのマニュアルを参照してください。
コンピュータとプリンタのボーレートの設定値が正しいか確認します。
コンピュータとプリンタのボーレートの設定値が一致しなければ、何も印刷されないことがあり、さらに正しく出力されない場合もあります。詳しくは、「出力が正しくない場合の問題を解決する方法」を参照してください。
ping コマンドを使用すると、印刷サーバーと印刷クライアント間のネットワークが正しく設定されているか確認できます。
print-client# ping print-server print-server is alive print-server# ping print-client print-client not available |
システムが動作していることを示すメッセージが表示されれば、そのシステムにアクセスできることがわかるので、そのネットワークは正常です。また、このメッセージは、入力したホスト(システム) 名が、ネームサービスまたはローカルの /etc/hosts ファイルによって IP アドレスに変換されたことを示します。変換されていない場合は、IP アドレスを入力する必要があります。
「not available」というメッセージが表示された場合は、次の 3 点を確認してください。 まず、NIS または NIS+ はサイトでどのように設定されているか。次に、印刷サーバーと印刷クライアントが相互に通信できるように付加的な作業が必要か。最後に、サイトが NIS を実行していない場合、各印刷クライアントの /etc/hosts ファイルに印刷サーバーの IP アドレスを入力し、印刷サーバーの /etc/hosts ファイルにすべての印刷クライアントの IP アドレスを入力したか確認します。
リモート印刷に関する問題をデバッグするシステムで、スーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次のコマンドを入力します。
# echo "lpr.debug /var/tmp/lpr.debug" >>/etc/syslog.conf |
lpr.debug と /var/tmp/lpr.debug の間の空白は、タブでなければなりません。
lpr.debug ファイルを作成します。
# touch /var/tmp/lpr.debug |
syslog サービスを再起動します。
# svcadm restart system.log |
この手順では、基本 LP 印刷サービス機能をチェックする例として、プリンタ luna を使用しています。
印刷サーバー上で、LP 印刷サービスが動作していることを確認します。
次のいずれかの方法で、LP スケジューラが動作しているかどうかを確認します。
lpstat コマンドを使用します。
% lpstat -r scheduler is running |
LP スケジューラが動作しているかどうかを示すメッセージが表示されます。
svcs コマンドを使用します。
% svcs application/print/server |
スケジューラが動作している場合は、次の出力が表示されます。
STATE STIME FMRI online Oct_24 svc:/application/print/server:default |
スケジューラが動作していない場合は、次の出力が表示されます。
STATE STIME FMRI disabled 14:27:48 svc:/application/print/server:default |
|
スケジューラが動作していない場合は、スーパーユーザーまたは lp になるか、同等の役割になります。次のいずれかの方法で、スケジューラを起動します。
lpsched コマンドを使用します。
# /usr/lib/lpsched Print services started. |
印刷サービスが起動されたことを示すメッセージが表示されます。
svcadm コマンドを使用します。
# svcadm enable application/print/server |
svcadm コマンドを使用する場合は、印刷サービスが起動されたかどうかを示すメッセージは表示されません。印刷サービスがオンラインになっているかどうかを確認するには、svcs application/print/server コマンドを再び実行します。
スケジューラを起動できない場合は、「LP 印刷サービスのハングを解除する方法」を参照してください。
印刷サーバー上と印刷クライアント上で、プリンタが要求を受け付けていることを確認します。
プリンタが要求を受け付けていることを確認します。
# lpstat -a mars accepting requests since Jan 12 14:23 2004 luna not accepting requests since Jan 12 14:23 2004 unknown reason |
このコマンドは、LP システムがシステム用に構成された各プリンタの要求を受け付けているか確認します。
プリンタが要求を受け付けていない場合は、スーパーユーザーまたは lp になるか、同等の役割になり、プリンタが印刷要求を受け付けるようにします。
# accept luna |
これで、指定したプリンタは要求を受け付けます。
印刷サーバー上と印刷クライアント上で、プリンタが依頼された印刷要求の印刷で使用可能になっているか確認します。
プリンタが使用可能になっていることを確認します。
# lpstat -p luna printer luna disabled since Jan 12 14:25 2004. available. unknown reason |
このコマンドは、プリンタの状態に関する情報を表示します。プリンタ名を省略すると、システム用に設定されたすべてのプリンタに関する情報を表示できます。次の例は、使用不可になっているプリンタを示しています。
プリンタが使用不可になっている場合は、スーパーユーザーまたは lp になるか、同等の役割になり、プリンタを使用可能にします。
# enable luna printer "luna" now enabled. |
指定したプリンタが、印刷要求の処理に使用可能になります。
印刷サーバー上で、プリンタが正しいシリアルポートに接続されていることを確認します。
プリンタが正しいシリアルポートに接続されていることを確認します。
# lpstat -t scheduler is running system default destination: luna device for luna: /dev/term/a |
「device for printer-name」というメッセージは、ポートアドレスを示します。LP 印刷サービスの接続先のポートにケーブルが接続されているか確認します。ポートが正しければ、手順 5 に進みます。
スーパーユーザーになるか、同等の役割を引き受けます。
ポートを表すデバイスファイルのファイル所有権を変更します。
# chown lp device-filename |
このコマンドは、特殊なユーザー lp をデバイスファイルの所有者として割り当てます。このコマンドで、device-filename はデバイスファイル名です。
プリンタポートのデバイスファイルのアクセス権を変更します。
# chmod 600 device-filename |
このコマンドにより、スーパーユーザー、lp、または同等の役割のみがプリンタポートデバイスファイルにアクセスできるようになります。
印刷サーバー上と印刷クライアント上で、プリンタが正しく構成されていることを確認します。
プリンタが適切に設定されていることを確認します。
# lpstat -p luna -l printer luna is idle. enabled since Jan 12 14:24 2004. available Content types: postscript Printer types: PS |
上の例は、正しく設定された PostScript プリンタと、そのプリンタを印刷要求の処理に利用できることを示しています。プリンタタイプとファイル内容形式が正しい場合は、手順 6 に進みます。
プリンタタイプまたはファイル内容形式が正しくない場合は、印刷クライアント上で、プリンタタイプを unknown に設定し、内容形式を any に設定してください。
# lpadmin -p printer-name -T printer-type -I file-content-type |
印刷サーバー上で、プリンタがプリンタ障害のために待機していないことを確認します。
プリンタ障害のためにプリンタが待機していないことを確認します。
# lpadmin -p printer-name -F continue |
このコマンドは LP 印刷サービスに対して、障害のために待機していない場合は続行するように指示します。
プリンタを再び使用可能にすることによって、すぐに再試行させます。
# enable printer-name |
(省略可能) プリンタ障害をすぐに通知するように、LP 印刷サービスに指示します。
# lpadmin -p printer-name -A 'write root' |
このコマンドは LP 印刷サービスに対して、プリンタが障害を起こした場合に、root に書き込むというデフォルトポリシーを設定し、root がログインした端末にプリンタ障害メッセージを送るように指示します。これにより、問題を修正するときに障害通知をすぐに受け取れます。
プリンタがログイン端末として間違った設定になっていないか確認します。
ログイン端末としてプリンタを設定する作業では誤りをおかしやすいので、当てはまらないと思われる場合にも、必ず設定値を確認してください。
ps -ef コマンドの出力で、プリンタポートのエントリを探します。
# ps -ef root 169 167 0 Apr 04 ? 0:08 /usr/lib/saf/listen tcp root 939 1 0 19:30:47 ? 0:02 /usr/lib/lpsched root 859 858 0 19:18:54 term/a 0:01 /bin/sh -c \ /etc/lp /interfaces/luna luna-294 rocket!smith “passwd\n## # |
このコマンドの出力で、プリンタポートのエントリを探します。上の例で、ポート /dev/term/a はログイン端末として間違って設定されています。この行の最後に "passwd\n## 情報が付いているのでわかります。ポートが正しく設定されている場合は、この手順の最後を飛ばしてください。
印刷要求を取り消します。
# cancel request-id |
このコマンドで、request-id は取り消したい印刷要求の要求 ID 番号です。
プリンタポートをログインデバイス以外のものとして設定します。
# lpadmin -p printer-name -h |
ps -ef コマンドからの出力をチェックして、プリンタポートがログインデバイスではなくなったことを確認します。
基本的な LP 印刷サービス機能に印刷時の問題の原因が見つからない場合は、次の中から該当するクライアント/サーバーの手順に進んでください。
まだチェックしていなければ、印刷サーバー上で LP 印刷サービスの基本機能をチェックします。
基本機能をチェックする手順については、「LP 印刷サービスの基本機能をチェックする方法」を参照してください。印刷クライアントから要求が出されたときに何も印刷されない原因を調べる前に、プリンタがローカルで動作していることを確認してください。
まだチェックしていなければ、印刷クライアント上で LP 印刷サービスの基本機能をチェックします。
印刷クライアントから印刷を要求する前に、そのプリンタを有効にして、その要求を受け付けるようにする必要があります。
以降のほとんどの手順において、root または lp としてログインしている必要があります。
印刷サーバーが正常に動作しているか確認します。
# lpstat -t luna scheduler is running system default destination: luna device for luna: /dev/term/a luna accepting requests since Jan 12 14:26 2004 printer luna now printing luna-314. enabled since Jan 12 14:26 2004. available. luna-129 root 488 Jan 12 14:32 # |
上記の例は、印刷サーバーが動作していることを示します。
印刷サーバーが正常に動作していない場合は、手順 1 に戻ります。
スーパーユーザーまたは lp としてログインするか、同等の役割になります。
プリンタタイプが正しいことを確認します。
プリンタタイプが正しくないと、正しく出力されないことがあります。たとえば、プリンタタイプ PS を指定してもページが意図した順序の逆に印刷される場合は、プリンタタイプ PSR を試してください(この 2 つのタイプ名は大文字で指定しなければなりません)。また、プリンタタイプが正しくないと、テキストの欠落、読みづらいテキスト、または間違ったフォントのテキストが出力されることがあります。プリンタタイプを判別するには、terminfo データベース内のエントリを調べます。terminfo データベースの構造については、「プリンタタイプ」を参照してください。
印刷サーバー上で、プリンタの特性を表示します。
$ lpstat -p luna -l printer luna is idle. enabled since Thu Jul 12 15:02:32 ... Form mounted: Content types: postscript Printer types: PS Description: Connection: direct Interface: /usr/lib/lp/model/standard After fault: continue Users allowed: (all) Forms allowed: (none) Banner not required Character sets: Default pitch: Default page size: 80 wide 66 long Default port settings: $ |
プリンタのマニュアルを参照して、プリンタのモデルを調べます。
プリンタタイプが正しくない場合は、Solaris 印刷マネージャーの「プリンタのプロパティを変更」ウィンドウを使用して変更するか、次の lpadmin コマンドを使用します。
# lpstat -p printer-name -T printer-type |
印刷クライアント上では、プリンタタイプを unknown にしてください。印刷サーバー上では、プリンタタイプは使用するプリンタのモデルをサポートするように定義された terminfo エントリと一致しなければなりません。使用するプリンタのタイプ用の terminfo エントリがない場合は、「サポートされていないプリンタの terminfo エントリを追加する方法」を参照してください。
バナーページは印刷されるが文書の本文が印刷されない場合は、ファイル内容形式を確認します。
プリンタに指定したファイル内容形式は、プリンタがフィルタなしで直接印刷できるファイル形式を示します。ファイル内容形式が正しくなければ、必要なときにフィルタリングがバイパスされることがあります。
前の手順の lpstat コマンドで表示されたファイル内容形式に関する情報をメモします。
印刷クライアント上では、1 つ以上の明示的な内容形式を指定する理由がない限り、ファイル内容形式を any にしてください。クライアント上で内容を指定すると、印刷サーバー上ではなく印刷クライアント上でフィルタリングが実行されます。また、クライアント上の内容形式は、印刷サーバー上で指定した内容形式と一致しなければならず、印刷サーバー上の内容形式はプリンタの機能を反映していなければなりません。
プリンタのマニュアルを参照し、プリンタで直接印刷できるファイルのタイプを判別します。
これらのファイル形式を参照するために使用する名前は、プリンタメーカーが使用している名前と一致しなくてもかまいません。ただし、使用する名前は LP 印刷サービスに認識されるフィルタで使用する名前と一致しなければなりません。
ファイル内容形式が正しくない場合は、Solaris 印刷マネージャーの「プリンタのプロパティを変更」ウィンドウを使用して変更するか、次の lpadmin コマンドを使用します。
# lpadmin -p printer-name -I file-content-type(s) |
必要に応じて、このコマンドを印刷クライアント上、印刷サーバー上、またはその両方で実行します。印刷クライアント上で -I any を試し、印刷サーバー上で -I "" を試してください。-I "" は、NULL のファイル内容形式リストを指定します。これは、プリンタはそのプリンタタイプと正確に一致するファイルしか直接印刷できないので、すべてのファイルをフィルタにかけることを意味します。
ファイルが印刷されないときは、まずこの組み合わせを選択してみるとよいでしょう。それで成功したら、印刷サーバー上で明示的な内容形式を指定し、不要なフィルタリングを減らすことができます。ローカルの PostScript プリンタでは、プリンタでサポートされている場合は、postscript または postscript,simple を使用することをお勧めします。PS と PSR はファイル内容形式ではなく、プリンタタイプなので注意してください。
-I を省略すると、ファイル内容のリストはデフォルトの simple になります。-I オプションを使用し、simple 以外にもファイル内容形式を指定する場合は、リストに simple を含める必要があります。
複数のファイル内容形式を指定するときは、名前をコンマで区切ります。また、名前をスペースで区切り、リストを引用符で囲むこともできます。ファイル内容形式として any を指定すると、フィルタリングは行われないので、プリンタで直接印刷できるファイルタイプのみを送信する必要があります。
フォントのダウンロードに必要なフィルタリングを、印刷要求がバイパスしていないかどうかをチェックします。
ユーザーが lp -T PS コマンドを使用して印刷要求を PostScript プリンタに送ると、フィルタリングは実行されません。フィルタリングを強制するために lp -T postscript を使用して要求を送ってみます。この際、文書に必要な非常駐フォントがダウンロードされることがあります。
プリンタポートの stty 設定値が正しいことを確認します。
プリンタのマニュアルを参照して、プリンタポートに合った stty 設定値を判別します。
プリンタがパラレルポートまたは USB ポートで接続されている場合、ボーレートの設定値は無関係です。
現在の設定値を調べるには、stty コマンドを使用します。
# stty -a < /dev/term/a speed 9600 baud; rows = 0; columns = 0; ypixels = 0; xpixels = 0; eucw 1:0:0:0, scrw 1:0:0:0 intr = ^c; quit = ^|; erase = ^?; kill = ^u; eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^q; stop = ^s; susp = ^z; dsusp = ^y; rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v; parenb -parodd cs7 -cstopb -hupcl cread -clocal -loblk -parext -ignbrk brkint -ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc ixon -ixany -ixoff imaxbel isig icanon -xcase echo echoe echok -echonl -noflsh -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3 # |
このコマンドでは、プリンタポートの現在の stty 設定値が表示されます。
LP 印刷サービスの標準プリンタインタフェースプログラムで使用されるデフォルトの stty オプションを次の表に示します。
オプション |
意味 |
---|---|
-9600 |
ボーレートを 9600 に設定 |
-cs8 |
8 ビットバイトを設定 |
-cstopb |
1 バイト当たり 1 ストップビットを送信 |
-parity |
パリティーを生成しない |
-ixon |
XON/XOFF (START/STOP または DC1/DC3 ともいう) を使用可能にする |
-opost |
以下にリストされた設定値をすべて使用して「処理後出力」を実行する |
-olcuc |
小文字を大文字に割り当てない |
-onlcr |
改行をキャリッジリターン/改行に変更する |
-ocrnl |
キャリッジリターンを改行に変更しない |
-onocr |
カラム 0 でもキャリッジリターンを出力する |
-n10 |
改行後の遅延なし |
-cr0 |
キャリッジターン後の遅延なし |
-tab0 |
タブ後の遅延なし |
-bs0 |
バックスペース後の遅延なし |
-vt0 |
垂直タブ後の遅延なし |
-ff0 |
用紙送り後の遅延なし |
stty 設定値を変更します。
# lpadmin -p printer-name -o "stty= options" |
次の表を使用して、印刷出力に影響するさまざまな問題を解決する stty オプションを選択します。
stty 値 |
結果 |
間違った設定から起こり得る問題 |
---|---|---|
110, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400 |
ボーレートを指定した値に設定する (ボーレートを 1 つだけ入力する) |
ランダム文字と特殊文字が印刷され、間隔がバラバラになることがある |
oddp evenp -parity |
奇数パリティーを設定する 偶数パリティーを設定する パリティーを設定しない |
文字が欠落または間違った文字がランダムに表示される |
-tabs |
タブを設定しない |
テキストが右マージンにくっついてしまう |
tabs |
8 スペースごとにタブを設定する |
テキストに左マージンがなく、つながってしまうか、くっついてしまう |
-onlcr |
行頭でキャリッジリターンを設定しない |
間違ったダブルスペース |
onlcr |
行頭でキャリッジリターンを設定する |
ジグザグに印刷される |
オプションをスペースで区切り、オプションリストを単一引用符で囲むと、複数のオプションの設定を変更できます。たとえば、奇数パリティーを使用可能にし、7 ビットの文字サイズを設定する必要のあるプリンタを仮定します。そのためには、次の例のようなコマンドを入力します。
# lpadmin -p neptune -o "stty='parenb parodd cs7'" |
stty オプション parenb でパリティーチェックまたはパリティー生成を使用可能にし、parodd で奇数パリティーの生成を設定し、cs7 で文字サイズを 7 ビットに設定します。
文書が正しく印刷されることを確認します。
# lp -d printer-name filename |
スーパーユーザーまたは lp としてログインするか、同等の役割になります。
LP 印刷サービスを停止します。
# svcadm disable /application/print/server |
LP 印刷サービスを再起動します。
# svcadm enable /application/print/server |
LP 印刷サービスが再起動されます。スケジューラが再起動されない場合は、「印刷スケジューラを再起動する方法」を参照してください。
この作業には、プリンタがアイドル状態であってはならないのにアイドル状態になるときに使用する多数の手順が含まれています。通常は各手順を順番に試しますが、順番どおりでなくてもかまいません。
プリンタ状態情報を表示します。
# lpstat -p printer-name |
表示される情報は、プリンタがアイドル状態かアクティブ状態か、使用可能か使用不可か、または印刷要求を利用できるか受け付けていないかを示します。すべて正常と思われる場合は、この節の他の手順に進んでください。lpstat コマンドを実行できない場合は、「LP 印刷サービスのハングを解除する方法」を参照してください。
プリンタが利用できない (要求を受け付けていない) 場合は、プリンタが要求を受け付けるようにします
# accept printer-name |
プリンタは、その印刷待ち行列に要求を受け付け始めます。
プリンタが使用不可になっている場合は、再び使用可能にします。
# enable printer-name |
このコマンドでは、待ち行列にある要求を処理するように、プリンタを再び使用可能にします。
lpstat -o コマンドを使用して、印刷のフィルタリングをチェックします。
$ lpstat -o luna luna-10 fred 1261 Mar 12 17:34 being filtered luna-11 iggy 1261 Mar 12 17:36 on terra luna-12 jack 1261 Mar 12 17:39 on terra $ |
待機している最初の要求がフィルタリングされているかどうかを調べます。上の例のような出力になる場合は、ファイルがフィルタリングされています。プリンタはハングせず、要求の処理に少し時間がかかっているだけです。
プリンタ障害に関するメッセージがある場合は、その障害を解決してください。
プリンタ障害の警告がどのように指定されているかに応じて、メッセージを電子メールで root に送らせるか、root がログインした端末に書き出すことができます。
プリンタを再び使用可能にします。
# enable printer-name |
プリンタ障害によって要求がブロックされた場合は、このコマンドで強制的に再試行します。このコマンドが動作しない場合は、この節の他の手順を続行します。
印刷クライアント上で、印刷サーバーへの印刷要求を、それ以上待ち行列に入れないようにします。
# reject printer-name |
印刷クライアント上で、応答を求める要求を印刷サーバーに送信します。
print-client# ping print-server print-server is alive |
「print-server not available」というメッセージが表示される場合は、ネットワークに問題があります。
問題を解決したら、新しい印刷要求を待ち行列に入れられるようにします。
# accept printer-name |
必要であれば、印刷サーバー上で再びプリンタを使用可能にします。
# enable printer-name |
印刷サーバー上で、印刷クライアントから印刷サーバーへの印刷要求を、それ以上待ち行列に入れないようにします。
# reject printer-name |
lpsched ログファイルを表示します。
# more /var/lp/logs/lpsched |
表示される情報を参考にして、印刷クライアントから印刷サーバーへの印刷要求が印刷されない原因を正確に把握できます。
問題を解決したら、新しい印刷要求を待ち行列に入れられるようにします。
# accept printer-name |
必要であれば、印刷サーバー上で再びプリンタを使用可能にします。
# enable printer-name |
印刷サーバー上でプリンタが使用可能になっており、要求を受け付けているかどうかを確認します。
# lpstat -p printer-name |
印刷クライアントが要求を受け付けているのに、印刷サーバーが要求を拒否しているときは、矛盾した状態メッセージが表示されます。
印刷サーバー上で、印刷クライアント上のプリンタの定義が、印刷サーバー上のプリンタの定義と一致するかどうかを確認します。
# lpstat -p -l printer-name |
印刷フィルタ、文字セット、印字ホイール、フォームなど、印刷ジョブコンポーネントの定義を調べて、印刷クライアントとサーバー上で一致し、ローカルユーザーが印刷サーバーシステムのプリンタにアクセスできることを確認します。