プリンターサーバ

プリンターをパラレル回線でジカつなぎしている場合の、 ローカルプリンターとしての設定方法です。


パラレル回線でつなぐ

ホスト本体と、プリンターをパラレル回線(やや大きい口)で つなぎます。

lpd デーモンの確認

プリントに関するデーモン lpd が起ち上がっているか確認します。
% ps aux | grep lpd

起ち上がってなければ、root になって起ち上げます。
# /usr/sbin/lpd

ブート時に自動的に起ち上げるには、/etc/rc.conf に 次の1行を書き足します。
/etc/rc.conf
lpd_enable="YES"

/etc/printcap

プリンターの設定を /etc/printcap に書きます。 とすると、次のようになります。 ただし、プリンターが PS プリンターか否かでちょっと変わります。

PSプリンターの場合

/etc/printcap
    lp|lp_PS_printer:\
           :sh:mx#0:\
  	   :lp=/dev/lpt0:\
           :sd=/var/spool/lpd/lp:\
	   :lf=/var/log/lpd-errs:
最終行を除き、各行の最後にはバックスラッシュを入れます。
各項目の意味は、
    あだな|正式名称:\
           :表紙を印刷しない:印刷可能最大枚数(#0は無制限):\
 	   :lp=デバイス名:\
           :sd=スプールディレクトリ:\
	   :lf=エラーファイル: 
となっています。

非PSプリンターの場合

非ポストの場合、PS ファイルをプリンターにわかる言語に変換するため、 フィルターを通してあげないといけません。 フィルターは GhostScript と付属コマンド gs を使いますので、 インストールされてなければ、まずこれをインストールしてください。
/etc/printcap
    lp|lp_PS_printer:\
           :sh:mx#0:\
  	   :lp=/dev/lpt0:\
           :if=/etc/filter.sh:\
           :sd=/var/spool/lpd/lp:\
	   :lf=/var/log/lpd-errs:
最終行を除き、各行の最後にはバックスラッシュを入れます。
各項目の意味は、
    あだな|正式名称:\
           :表紙を印刷しない:印刷可能最大枚数(#0は無制限):\
 	   :lp=デバイス名:\
           :if=PSファイルをプリンターにわかる言語に変換するフィルター:\
           :sd=スプールディレクトリ:\
	   :lf=エラーファイル: 
となっています。

/etc/filter.sh の中身は、Canon LBP-320 プリンターの場合は 次のようなものです。
#!/bin/sh
/usr/local/bin/gs -q -dSAFER -sDEVICE=lips3 -dNOPAUSE -sPAPERSIZE=a4 -sOutputFile=- - 2>/dev/null (1行で書く)

作成したら、chmod +x /etc/filter.sh
# chmod +x /etc/filter.sh
で実行権を与えるのを忘れないでください。

オプション -sDEVICE= の右辺は、 プリンターの種類によって変わって来ます。 -sDEVICE=lips3 は、Canon LBP-320 の言語である lips3 への 変換を指定しています。他では例えば Epson プリンターでは -sDEVICE=epson でOKです。 Epson の LP-2200 に対しては、-sDEVICE=lp2200 の方がきれいに出ました。 Epson の LP-XXXX には lpXXXX というデバイスがあるようです。 gs で使える DEVICE 名は、gs -h で調べられます。

GhostScript が対応しているプリンタリスト

スプールディレクトリの作成

# mkdir /var/spool/lpd/lp

/etc/hosts.lpd

印刷を許可するクライアントのIPアドレスを、 /etc/hosts.lpd に1行ずつ並べます。
/etc/hosts.lpd
123.45.67.1
123.45.67.2
123.45.67.3

トラブルシューティング

上の様にやってなおプリンターがんともすんとも 言ってくれないことがあ ります。 これは lpd daemon さんはいるんだけど、 おねむしちゃっている 可能性があります。
% lpq -Plp
Warning: lp is not enable
Warning: lp is turned off

こんなときは、lpc コマンドで lpd daemon を叩き起こします。
# lpc enable lp
# lpc up lp

トラブルシューティング

lpq で調べてみると、(off line ?) というワーニングが出て プリントアウトできない場合があります。 プリンタケーブルが切れてるなどの原因もあるでしょうが、 とりあえずプリンタの電源を一度切って、入れ直して見て下さい。 何事もなかったかのように復活することもあります。

FreeBSD の部屋


Apr. 1, 2000