Solaris のシステム管理 (第 2 巻)

ネットワークプリンタの追加

「ネットワークプリンタ」とは、ネットワークに直接接続されているハードウェアデバイスです。これは、ネットワークプリンタがプリンタサーバーにケーブルで実際に接続されていなくても、プリンタサーバーからアクセスできることを意味します。ネットワークプリンタは専用のシステム名と IP アドレスを持っています。ネットワークプリンタがプリンタサーバーに接続されていない場合でも、専用のプリンタサーバーを設定しておく必要があります。プリンタサーバーは、ネットワークプリンタの待ち行列化機能と印刷管理機能を提供します。

ネットワークプリンタは、ベンダー提供の印刷プログラムを必要とする特別なプロトコルを 1 つ以上使用することがあります。ベンダーから提供される印刷プログラムの設定手順は、それぞれ異なることがあります。プリンタにベンダー提供サポートが付いていない場合、ほとんどのデバイスについて Solaris のネットワークプリンタサポートを使用できます。ただし、可能な限りプリンタベンダー提供のソフトウェアを利用することを強く推奨します。

ベンダーは、SVR4 プリンタインタフェーススクリプトを提供して標準プリンタインタフェーススクリプトを置き換えている場合があります。その場合、SVR4 インタフェーススクリプトはベンダー提供の印刷プログラムを呼び出して、ジョブをプリンタに送ります。このスクリプトが提供されない場合は、標準インタフェーススクリプトを変更してベンダー提供の印刷プログラムを呼び出す必要があります。この作業は、標準インタフェーススクリプトのプリンタごとのコピーをベンダー提供の印刷プログラムを呼び出すように編集することで実行できます。

ネットワークプリンタ構成で使用する用語を説明します。

ネットワークプリンタ用のプリンタベンダー提供のソフトウェア

多くの場合、ネットワークプリンタには、プリンタベンダー提供のソフトウェアサポートが提供されます。プリンタにプリンタベンダー提供のソフトウェアがある場合は、プリンタベンダー提供のソフトウェアを利用することを強く推奨します。プリンタベンダー提供のソフトウェアは、そのプリンタの特性をサポートするように設計されていて、プリンタの能力をフルに活用します。プリンタのマニュアルをよく読んで、プリンタを LP 印刷システムにインストールおよび構成してください。

Sun のネットワークプリンタのサポート

ネットワークプリンタベンダーがソフトウェアサポートを提供していない場合、Sun が提供するソフトウェアを利用できます。このソフトウェアは、ネットワークプリンタの汎用サポートを提供するもののため、必ずしもプリンタで利用できるすべての機能を使用できません。

ネットワークプリンタを追加するための一般的な説明については、第 4 章「プリンタの設定手順」を参照してください。次は、Sun 提供のソフトウェアを使用したプリンタの管理を説明します。

ネットワークプリンタサポートの呼び出し

ネットワークプリンタ用のソフトウェアサポートは、インタフェーススクリプト経由で呼び出されます。ネットワークインタフェーススクリプト netstandard でネットワークプリンタを構成すると、ネットワークプリンタサポートモジュールが呼び出されます。次に、ネットワークサポートでプリンタを構成するコマンドを示します。


lpadmin -p printer_name -m netstandard 

プロトコルの選択

印刷サブシステムは、BSD 印刷プロトコルと raw TCP を使用してプリンタと通信します。プリンタのマニュアルには、使用するプロトコルについての情報が提供されています。一般に、プリンタに使用するのは TCP プロトコルです。

プロトコルを選択するコマンドは次のいずれかです。

lpadmin -p printer_name -o protocol=bsd

または

lpadmin -p printer_name -o protocol=tcp

選択したプロトコルが BSD 印刷プロトコルの場合、さらにコントロールファイルをプリンタに送信する順番を選択できます。一部のプリンタは、コントロールファイルの後にデータファイルという順番を仮定しますが、その逆を仮定するプリンタもあります。この情報については、プリンタベンダーのマニュアルを参照してください。デフォルトでは、コントロールファイルを先に送信します。

順番を選択するコマンドは次のいずれかです。

lpadmin -p printer_name -o bsdctrl=first

または

lpadmin -p printer_name -o bsdctrl=last

プリンタノード名の選択

システム管理者はプリンタノード名を選択します。ネットワーク上のノードと同様に、この名前は一意でなければなりません。プリンタノード名は、プリンタの IP アドレスと関連付けられます。

宛先 (またはネットワークプリンタアクセス) 名の選択

印刷サブシステムはプリンタのアクセス情報を必要とします。これは、プリンタへのネットワーク接続を行うときにサブシステムが使用する名前です。この名前は、システム管理者が lpadmin コマンドで印刷サブシステムに提供します。これは、プリンタ構成データベースの一部になります。プリンタアクセス名はプリンタノード名であり、ポート名で修飾される場合もあります。ポート指定はプリンタベンダー間で異なります。ポート指定については、プリンタのマニュアルを参照してください。次に、プリンタアクセス名の書式を示します。

printer_node-name[:port_designation]

例 1 - ポート指定 (番号) 付き宛先名 (またはネットワークプリンタアクセス名)

TCP の共通ポート指定は 9100 です。プリンタノード名が pn1 で、プリンタベンダーがそのポートを 9100 と定義していた場合、プリンタアクセス名は pn1:9100 になります。この場合にプリンタを構成するには、次のコマンドを使用します。

lpadmin -p printer_name -o dest=pn1:9100

例 2 - ポート指定 (名前) 付き宛先名 (またはネットワークプリンタアクセス名)

BSD プロトコルを使用するとき、ポート指定は番号でなく、プリンタベンダーが定義した名前です (例: xxx_parallel_1)。プリンタノード名が cardboard の場合、プリンタアクセス名は cardboard:xxx_parallel_1 になります。この場合プリンタを構成するには、次のコマンドを使用します。


lpadmin -p printer_name -o dest=cardboard:xxx_parallel_1

例 3 - ポート指定なしの宛先名 (またはネットワークプリンタアクセス名)

ポート指定がなく、プリンタノード名が newspaper の場合、プリンタアクセス名はプリンタノード名 newspaper になります。この場合にプリンタを構成するには、次のコマンドを使用します。


lpadmin -p printer_name -o dest=newspaper

タイムアウト値の設定

タイムアウトオプションは、プリンタに接続しようとする試行間で待機する時間 (秒数) を個別に選択するためのものです。ウォームアップ時間が長いプリンタの場合は、タイムアウト値を大きくします。デフォルトは 10 秒です。

タイムアウト値は、印刷プロセスが成功するか失敗するかには影響を与えません。これは、ソフトウェアが初期タイムアウトカウントとして使用するシード値です。失敗が続くと、このカウントは増えます。プリンタへの接続の試行が連続して失敗すると、メッセージがスプーラに送信されます。これによって、ユーザーの介入が必要であることをユーザーに警告します。プリンタの電源が入っていなかったり、用紙がなくなっていたりするときにも、このメッセージが生成される可能性があります。たとえば、プリンタがウォームアップしているときに、このようなメッセージが頻繁に生成されるようであれば、タイムアウト値を増やすことで間違ったメッセージを減らすことができます。

システム管理者は最適なタイムアウト値を探してください。次に、タイムアウト値を設定するコマンドを示します。


lpadmin -p printer_name -o timeout=n

ネットワークプリンタアクセスの管理

各ネットワークプリンタは、そのプリンタへのアクセスを提供するサーバーを 1 つだけ持っています。これによって、サーバーはそのプリンタへのアクセスを管理して、ジョブの一貫性を保つことができます。

ネットワークプリンタのデフォルトデバイスは /dev/null です。プリンタに待ち行列が 1 つしかない場合はこれで十分です。複数の待ち行列が必要であれば、そのデバイスをファイルに設定します。これによって、印刷システムはプリンタへのアクセスを待ち行列間で制限できます。次のコマンドは、デバイスファイルを作成して、ネットワークプリンタデバイスとして構成しています。


touch /path/filename
chmod 600 /path/filename
lpadmin -p printer_name -v /path/filename

次の例では、devtreedown というデバイスファイルを作成しています。


# touch /var/tmp/devtreedown
# chmod 600 /var/tmp/devtreedown
# lpadmin -p treedown -v /var/tmp/devtreedown

プリンタベンダー提供のツールを使用してネットワークプリンタを追加する方法

  1. プリンタをネットワークに接続し、電源を入れます。

    ハードウェアのスイッチとケーブルの要件については、プリンタのインストールマニュアルを参照してください。IP アドレスを取得して、プリンタノード名を選択します。これは、ネットワークにノードを追加することと同じです。

  2. プリンタのマニュアルに従って、SVR4 LP 印刷スプーラのある SunOS 5.8 システムにネットワークプリンタを追加します。

    プリンタのマニュアルを使用して、ネットワークプリンタを構成してください。手順は、ベンダーやプリンタに固有です。

  3. 新しいプリンタへのアクセスをクライアントに追加します。

    これでプリンタは追加されました。プリンタへのアクセスをクライアントに作成します。詳細は、「印刷クライアントの設定」を参照してください。

  4. オプションの作業を完了します。

    ネットワークプリンタを設定するときは、オプションの作業がいくつかあります。残りの作業の参照先については、「印刷の設定の作業マップ」を参照してください。

LP コマンドを使用してネットワークプリンタを追加する方法


注 -

ここでは、ネットワークプリンタサポートソフトウェアを使用して、ネットワークプリンタを設定するのに必要な手順を説明しています。このソフトウェアを使用するのは、プリンタにベンダー提供のソフトウェアが付いていない場合だけです。


  1. プリンタをネットワークに接続して、プリンタの電源を入れます。

    ハードウェアのスイッチとケーブル接続の要件については、プリンタのインストールマニュアルを参照してください。IP アドレスを取得して、プリンタノード名を選択します。これは、ネットワークにノードを追加することと同じです。

  2. ネットワークプリンタを構成するのに必要な情報を収集します。

    • プリンタ名

    • プリンタサーバー

    • ネットワークプリンタアクセス名

    • プロトコル

    • タイムアウト

    詳細は、「ネットワークプリンタの追加」に説明されている用語を参照してください。

  3. lpadmin(1M) コマンドを使用して、プリンタ名、デバイス、プリンタタイプ、および内容形式を定義します。

    1. プリンタ名とプリンタが使用するポートデバイスを定義します。


      # lpadmin -p printer-name -v /dev/null
      

      使用するデバイスは /dev/null です。

    2. プリンタが使用するインタフェースを指定します。


      # lpadmin -p printer-name -m /netstandard 
      

      ネットワークプリンタサポートソフトウェアで提供されるインタフェーススクリプトは /usr/lib/lp/model/netstandard です。

    3. プリンタ宛先、プロトコル、およびタイムアウト値を設定します。


      # lpadmin -p printer-name -o dest=access-name:port -o protocol=protocol -o timeout=value
      
      -p printer-name
      

      ネットワークプリンタ名を指定する 

      -o dest=access-name:port
      

      ネットワークプリンタアクセス名と、プリンタのマニュアルに定義されていれば指定されたプリンタベンダーポートに、プリンタ宛先を設定する。詳細は、「ネットワークプリンタの追加」を参照

      -o protocol:protocol
      

      プリンタとケーブル経由で通信するために使用するプロトコルを設定する。BSD と raw TCP の両方をサポートしている 

      -o timeout:value
      

      プリンタへの接続の試行間で待機する秒数を表す再試行タイムアウト値を設定する。詳細は、「ネットワークプリンタの追加」を参照

    4. プリンタのファイル内容形式とプリンタタイプを指定します。


      # lpadmin -p printer-name -I content-type -T printer-type
      
      
      
      
  4. lpfilter(1M) コマンドを使用して、プリンタサーバーにフィルタを追加します。


    #	cd /etc/lp/fd
    # for filter in *.fd;do
        > name=`basename $filter .fd`
        > lpfilter -f $name -F $filter
        > done
    
  5. プリンタがプリンタ要求を受け入れて、その要求を印刷できるようにします。


    # accept printer-name
    #	enable printer-name
    
  6. lpstat(1M) コマンドを使用して、プリンタが正しく構成されていることを確認します。


    #	lpstat -p printer-name
    
  7. 新しいプリンタへのアクセスをクライアントに追加します。

    これでプリンタは追加されました。プリンタへのアクセスをクライアントに作成します。詳細は、「印刷クライアントの設定」を参照してください。

  8. オプションの作業を完了します。

    プリンタを設定するときは、オプションの作業がいくつかあります。残りの作業の参照先については、「印刷の設定の作業マップ」を参照してください。

この例のコマンドは、プリンタサーバーで実行しなければなりません。この例では次の情報を使用していますが、これらの情報は状況によって異なります。


# lpadmin -p luna1 -v /dev/null 1
# lpadmin -p luna1 -m netstandard 2
# lpadmin -p luna1 -o dest=nimquat:9100 -o protocol=tcp -o timeout=5 3
# lpadmin -p luna1 -I postscript -T PS 4
# cd /etc/lp/fd
# for filter in *.fd;do	
	  > name=`basename $filter .fd`	
	  > lpfilter -f $name -F $filter	
	  > done 5
# accept luna1
	destination "luna1" now accepting requests
# enable luna1	6
printer "luna1" now enabled 
# lpadmin -p luna1 -D "Room 1954 ps" 7
# lpstat -p luna1 8
		printer luna1 is idle. enabled since Jul 12 11:17 1999.  available.
  1. プリンタ名を定義する。デバイスを /dev/null に設定する。

  2. ネットワークプリンタ用のインタフェーススクリプトを定義する。

  3. 宛先、プロトコル、およびタイムアウトを設定する。

  4. プリンタが直接印刷できるファイル内容形式とプリンタタイプを指定する。

  5. 印刷フィルタをプリンタサーバーに追加する。

  6. プリンタが印刷要求を受け入れて、印刷できるようにする。

  7. プリンタの説明を追加する。

  8. プリンタが用意できていることを確認する。