document

構成図

図のようにLinuxやFreeBSDまたlpdのみを使う旧式のシステムにも対応できるようにする。

  +-------+   +-------+
  |docupri|   |EPSON  |
  +-------+   +-------+
     |            |
     +------------+
            |
     +--------------+
     |printer       |
     |server(CUPS)  |
     +--------------+
              |
    +---------+----------+
    |         |          |
+-------+  +-------+  +-------+
|client |  |client |  |client |
|Linux  |  |FreeBSD|  |FreeBSD|
|(CUPS) |  |(CUPS) |  |(lpd)  |
+-------+  +-------+  +-------+

cupsインストール(サーバー)

fedora core 6の場合

インストール

http://vinelinux.org/manuals/vine-cups.html
http://www2.starcat.ne.jp/~kanocl/colinux/colinuxcups.htm などを参考に

yum install cups

yumでインストール(リモートの場合はまずブラウザアクセスを設定しないといけないので先にアクセス制御をしないといけない)

http://localhost:631/

インストールしたマシンからブラウザでアクセスする

1.トップページの管理タブをクリック
2.プリンタ(ネットワークプリンタでも)が自動で認識されてるので追加をクリック
3.モデル/ドライバ選択画面:EPSONなどは自動的に認識してくれた
4.プリンタオプション画面:特に変更しない→設定完了
5.プリンタタブの画面でテスト印刷を押して出力されればOK

注意1.「2.プリンタ(ネットワークプリンタでも)が自動で認識されてるので追加をクリック」のはずがセキュリティなどでポートを閉じられてて自動的に認識されない場合は自分でWEBから情報を入力する必要がある。その場合設定したあとにテストプリントをするのだが、「プリンタオプションの設定」で用紙が「Page Size:US Letter」となっているので印刷エラーになることがある。「Page Size:A4」としたらうまく印刷された。
注意2.EPSONはsocket://xxx.xxx.xxx.xxxとアドレスを指定するので、自動認識しないときはセキュリティの問題などの影響で印刷できなかった。これについては検討中。WEBの画面だとテストプリントしたあとに「lp952 "Ready to print."」という感じに表示されてしまう。

注意3.DocuPrint401の場合はドライバがないがpostscript Printerに対応しているので 汎用ドライバの「Generic PostScript? printer」を選んだらちゃんと使えた。
ない場合はhttp://openprinting.org/printer_list.cgiなどでPPDファイルを探して入れる。(ドライバ画面のソースを見ると)それもプルダウンもppdなのですべてPPDファイルに帰着する。

ドライバの選択(重要)

  • DocuPrint? 401
    メーカpostscript
    モデルGeneric PostScript? printer
    注意!!DocuPrint401にcupsが自動的に認識するドライバ
    Generic PostScript Printer Foomatic/Postscript (recommended)
    を使うとエラーになる
  • EPSON LP 9500C
    メーカpostscript
    モデルGeneric PostScript? Printer

アクセス制御

管理タブ画面で

「このシステムに接続されている公開済みプリンタを共有」
「リモート管理を許可」
「どのジョブであってもキャンセルすることを (たとえ所有者でなくても) ユーザに許可」
「トラブルシューティングのためにデバッグ情報を保存」

の四つにチェックした→再起動
これで他のマシンからアクセスできる。

細かなアクセス制御

http://kajuhome.com/cups.shtml
http://www.hayagui.com/cupsinst.html を参考に

# vi /etc/cups/cupsd.conf

で変更

	Port631を有効にする。(localhostのみ限定にしない)
	Listen localhost:631
	↓↓↓↓↓↓↓↓↓下記に変更
	Port 631
	プリンタを利用するクライアントのネットワークを追加
	<Location />
	  Order allow,deny
	  Allow localhost
	  ↓↓↓↓↓↓↓↓↓これを追加
	  Allow 192.168.1.0/24
	</Location>
	管理者ページを利用できるクライアントのネットワークを追加。(できれば、利用できるIPを限定する事が望ましい)
	<Location /admin>
	  Encryption Required
	  Order allow,deny
	  Allow localhost
	  ↓↓↓↓↓↓↓↓↓これを追加
	  Allow 192.168.1.0/24
	</Location>
	管理者ページ(設定ファイルへのアクセス許可)を利用できるクライアントのネットワークを追加。(こちらも、利用できるIPを限定する事が望ましい)
	<Location /admin/conf>
	  AuthType Basic
	  Require user @SYSTEM
	  Order allow,deny
	  Allow localhost
	  ↓↓↓↓↓↓↓↓↓これを追加
	  Allow 192.168.1.0/24
	</Location>

再起動

/etc/init.d/cups restart

OSの再起動を行なった時にcupsを自動的に起動するように設定する

起動時にcupsを起動する

# chkconfig cups on

設定内容を確認

# chkconfig --list cups
cups            0:オフ  1:オフ  2:オン  3:オン  4:オン  5:オン  6:オフ

旧システムからのLPR印刷を受け付ける設定

既存のFreeBSDクライアントなどで/etc/pritcapを追加するだけで印刷できるようにする。
http://www.hayagui.com/m_cups.html
http://www.hayagui.com/cupslpd.html
http://www.linuxprinting.org/kpfeifle/LinuxKongress2002/Tutorial/VI.CUPS-Connections/VI.tutorial-handout-cups-connections.html
を参考に設定

cups-lpdインストール

cups-lpdはxinetdを通して起動される

yum install cups-lpd

こうするとxinetdがインストールされていない場合xinetdもインストールされる。

cups-lpdを起動させる

/etc/xinetd.d/cups-lpdを変更する

# pwd
/etc/xinetd.d
# vi cups-lpd

中身は

service printer
{
       disable = yes
       socket_type = stream
       protocol = tcp
       wait = no
       user = lp
       server = /usr/lib/cups/daemon/cups-lpd
}

こんな感じ。これを

disable = yes → disable = no

と変更する。
xinetd再起動

 /etc/rc.d/init.d/xinetd restart

cups-lpdの起動チェック

#chkconfig --list
xxxxx           0:off   1:off   2:off   3:on    4:on    5:on    6:off
yyyyy           0:off   1:off   2:off   3:on    4:on    5:on    6:off
............
...........
yum-updatesd    0:off   1:off   2:off   3:on    4:on    5:on    6:off
xinetd based services:
       chargen-dgram:  off
       chargen-stream: off
       cups-lpd:       on

cups-lpd: onとなっていればOK

ポートのlistenチェック

旧システムのクライアントから印刷できない場合ポート(515番)がlistenしていない可能性がある。セキュリティで閉じてる場合が多い。 他のマシンでprinter-serverに向かってnmapする。

nmap -p 515 printer-server

クライアント インストール (FreeBSD)

FreeBSD6.2の場合

cupsインストール

http://www.alife.human.nagoya-u.ac.jp/~nakamiti/freebsd/cups.htmlを参考に

# cd /usr/ports/print/cups
# make install

その後選択画面に変わる

         lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
         x                   Options for cups-base 1.2.2                      x
         x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
         x x           [X] GNUTLS    Build with GNUTLS library              x x
         x x           [X] PHP       Build PHP support                      x x
         x x           [ ] PYTHON    Build PYTHON support                   x x
         x x           [X] LIBPAPER  Build with libpaper support            x x
         tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
         x                       [  OK  ]       Cancel                        x
         mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

PYTHONは使わないだろうということで外した。

設定ファイル(cupsd.conf)

/usr/local/etc/cups/cupsd.conf

の中にLinuxのcups.conf見たいなファイルがある。
これを書き換えれば他のマシンからアクセスできるようになる。

起動させる

http://www.hayagui.com/cupsinst.html
を参考にすると

# cd /usr/local/etc/rc.d/
# cp cups.sh.sample cups.sh
その後
#./cups.sh start

とすれば動くようだが、cups.sh.sampleがなくて代わりにcupsdがあって上記のコマンドでも動かなかった。
これがうまく行かない場合はcupsdコマンド?が登録されていた場合もあるので

#cupsd
これだけで起動した

停止させる

# /usr/local/etc/rc.d/cupsd.sh stop

のようだが、止まらないのでpsで調べてkillした。

lprを使えるようにする

http://www.hayagui.com/cupslpd.html

を参考に

cups-lpdの設定

/usr/local/libexec/cups/daemon
の中にある
cups-lpdを起動させるように/etc/inetd.confを変更する。

っていうか、なんでデフォルトで起動してないの??

クライアント インストール(Linux)

クライアント インストール(旧式のLPDを設定する:cupsインストしない場合)

http://yang.amp.i.kyoto-u.ac.jp/~yyama/FreeBSD-3.4/printer/client-j.html
http://yang.amp.i.kyoto-u.ac.jp/~yyama/FreeBSD/printer/server-j.html
などを参考

#vi /etc/printcap

を設定する

dp1|DocuPrint 401:\
       :lp=:mx#0:rm=print-q:\
       :rp=dp1:\
       :sd=/var/spool/lpd/dp1:\
       :lf=/var/log/lpd-errs:\
       :sh:
  • その後spool用のディレクトリを作る
    #mkdir /var/spool/lpd/dp1
    #chmod 770 /var/spool/lpd/dp1
    lpdを再起動して完了

lpr/lpd

lpr/lpdを使用して印刷できるようにする。
lpr/lpdを使用するには、lpd側で許可するホストを記述しなくてはならない。

#vi /etc/hosts.lpd

印刷を許可するホストを追加する。

lprコマンド

コマンドは以下のリンクにあります。
./Unix_Linuxからのプリント方法

リンク

cupsと古いシステムの解説 http://bazaar.turbolinux.co.jp/~yama/Printing/CUPS/cups-flow.html

その他

freeBSDの旧システムは/etc/printcap
で設定してるようです。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-06-03 (木) 09:43:46 (3243d)