Osamu Sayama's Weblog

水曜日 12 20, 2006

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 側のみで処理するかのどちらかが必要になります。


投稿されたコメント:

コメント
  • HTML文法 不許可

Calendar

Feeds

Search

Links

Navigation

Referrers