Osamu Sayama's Weblog
Printing with BrandZ and Canon Linux narve driver
Canon や Epson といったプリンタメーカーのプリンタドライバも最近は Linux 用がだいぶ増えてきましたが、インクジェットの場合はたいていインクの配合にかかわる部分はバイナリのみの提供になっています。cups + foomatic や Solaris RIP + foomatic の構成で印刷することもできますが、汎用のドライバであるため精度が悪かったり遅かったりします。CentOS の cups/ghostscript ともに問題なさそうなので、家で Canon の iP4100R というネットワーク接続の Inkjet プリンタを使っているし BrandZ と CentOS に Canon サイトの Linux driver をインストールして CentOS をプリンタサーバとして試してみました。
# rpm -q cups
cups-1.1.17-13.3.37
# rpm -q ghostscript
ghostscript-7.05-32.1.10
# gs -h|grep ppmraw
pbm pbmraw pgm pgmraw pgnm pgnmraw pnm pnmraw ppm ppmraw pkm pkmraw pksm
1. BrandZ Install
まずは BrandZ のインストール。これは BrandZ Install に従ってインストールするとすんなりいきます。要約すると
zonepath=/export/zone/brandz, ipaddress=192.168.180.121, physical=iprb0 の場合は、
create -t SUNWlx
set zonepath=/export/zone/brandz
set autoboot=true
add net
set address=192.168.180.121
set physical=iprb0
end
という中身のファイル (ex, brandZ) を作成し、zone 名が brandz なら
# zonecfg -z brandz -f brandZ
# zoneadm -z brandz install -d <where>/centos_fs_image.tar.bz2
で作成できます。centos_fs_image.tar.bz2 はここからもってこれます。あとは zlogin brandz で login して、 /etc/sysconfig/network に
NETWORKING="yes"
HOSTNAME="brandz"
を書いておきます (この例では host 名 brandz)。あとは global zone で使っているのと同じアカウントを作ります。 さらに home の automount などを設定して、global zone と共有してたり、ssh の設定もしておくと便利になります。
2. プリンタの設定
Canon のサイト からパッケージをもってきます。共通パッケージの bjfilter-common-2.50-2.i386.rpm、 PIXUS iP4100用の bjfilter-pixusip4100-2.50-2.i386.rpm ならびにドキュメントをダウンロードします。さらに libxml-1.8.17-*.i386.rpm も必要なのでこれも準備しておきます。次にこれらをインストールし、cupsd を起動します。
brandz# rpm -Uvh libxml-1.8.17-9.2.i386.rpm bjfilter-common-2.50-2.i386.rpm bjfilter-pixusip4100-2.50-2.i386.rpm
brandz# /etc/init.d/cups start
brandz# chkconfig cups-lpd on <- global zone から lpd でアクセスできるように
さらに /etc/rc2.d, rc3.d の lx_S55cups を S55cups に rename しておきます。あとは global zone から ssh の X fowarding などを使って mozilla を起動し cups で Canon プリンタを構成します。
% ssh -X brandz /usr/bin/mozilla http://localhost:631/
Printer name: canon
URI: socket://<printer IP>:9100
この例では printer name canon で登録しました。最後に Solaris の global zone 側でリモートプリンタを設定します。
# lpadmin -p canon -s brandz\!canon
# lpadmin -d canon
以上で Solaris から普通に lp コマンドから印刷できるようになります。
% lp t.ps
% ssh -X brandz env LC_ALL=C /usr/local/bin/bjcups -P canon t.ps
bjcups も ssh 経由などで起動できます。今回はネットワークプリンタで問題ないのですが、USB プリンタとなると brandZ 側で見えないようなので spool 結果をさらに Solaris 側に戻すか、Solaris 側で直接フィルタを叩いて Solaris 側のみで処理するかのどちらかが必要になります。

Posted at 07:43午後 12 20, 2006 by sayama in Printing | 投稿されたコメント[0]