1. 前書き
諸事情により(インクジェットプリンタよりもマザーボードの方が寿命が短いらしい)、家マシンのプリンタ再設定をおこなった。ここに記録として残しておく。注) マザーボード:AMD Duron 900MHzの載ったK7S5A(サムライの誘惑、2001年発売)で、2007年に全ての電解コンデンサを換装済み。それなのに、煙を出して死んでしまった。
2. 環境
マシン:FreeBSD 8.2-stable(amd64), portupgrade -N emulators/linux_base-f10/ 済み。プリンタ:Canon BJ S500 バブルジェットプリンタ。2001年発売。2008年頃ヘッドを交換した。
3. マシンの設定
3.1 プリンタフィルタの配置、リンカの設定
http://cweb.canon.jp/drv-upd/ij-sfp/bjlinux201-s500.html から、bjfilterbjs500-2.0-1.i386.rpmをダウンロードする。rpmファイルの配布場所は変わるかもしれないが、canonのtopページから、ダウンロード→インクジェットプリンター→バブルジェットプリンター→BJ S500→Linuxでたどれたことも記しておく。うっかりソースファイルをダウンロードしてしまわないように注意。手元の資料(参考文献)には、bjfilter-common-2.50-2.i386.rpmが必要との情報があるが、なくてもlprは問題なく動くので、見つからなくても大丈夫。
ダウンロードした、rpmを適当なところにおいて、sudo -sして
# tar xvf bjfilterbfs500-2.0-1.i386.rpm -C /compat/linux # /compat/linux/sbin/ldconfig -r /compat/linux |
rpm(1)コマンドを使えば、ldconfig を手動でしなくても済むのだけれど、オプションが複雑なので、今回はこちらの方法で。
このままでは、/compat/linux/bin/bjfilterが、ライブラリが足りないよ、というので
# portupgrade -N graphics/linux-f10-png10 |
これで、/compat/linux/bin/bjfilterが実行可能になった。
3.2 /etc/printcapの編集
以下を/etc/printcapに追記する。lp|Canon BJ S500:\ :sh:\ :lp=/dev/ulpt0:\ :sd=/var/spool/output/lpd/:\ :if=/usr/local/libexec/canon:\ :lf=/var/log/lpd-errs:\ :mx#0:\ :sh: |
3.3 /usr/local/libexec/canonの編集
以下の内容の/usr/local/libexec/canonを用意する。#!/bin/sh /usr/local/bin/gs \ -q -r600 -dNOPROMPT -dSAFER -sPAPERSIZE=a4 -sDEVICE=ppmraw \ -sOutputFile=- - quit.ps | \ /compat/linux/usr/local/bin/bjfilterbjs500 --full --imageres 600 --lgmon exit 0 |
4. 印刷
あとは普通にlprで印刷すればできる。linux-emulatorはまだ32bitなので、こういうときは便利だ。