PC周辺機器の1つにプリンタがあります。
プリンタとは、言うまでもなく、デジタルデータを紙などに印字する印刷機であり、ドット(ドットインパクト)プリンタ、インクジェットプリンタ、レーザープリンタ、FAXやコピー、スキャナなどと一体となった複合機などもあります。
近年、プリンタ含む周辺機器においては、USB/Universal Serial Busによって簡単に接続できるようになっています。
WindowsやPowerPC時代のMac OS、さらにMac OS Xでは、プリンタに付属のCDなどに収録された、または、プリンタベンダのサイトからダウンロードしたプリンタドライバを使って比較的容易にプリンタを利用することができます。
もちろん、*BSD/PC-UNIX/Linuxでもプリンタを利用できますし、近年、CUPS/Common Unix Printing Systemの登場でこれらOSにおけるプリンタ事情は、大きく様変わりし、ブラウザやGUIツール、コマンドラインからの操作が可能となっていたり、ウィンドウマネージャ単体をデスクトップとしようと思うと後述のように印刷プレビューや印刷をするのに結構手間がかかりますが、GNOMEやKDE、Xfce、LXDEなどの統合デスクトップ環境を使えるマシンスペックがあるならば、プリンタも自動認識してくれるので印刷ボタンを押せばすぐに印刷できたりしますし、Windows並、または、それ以上に簡単にプリンタ設定、印刷ができるようになっています。
それ以前は、UNIX System V系のlp/lpd、各種BSD*に限らず、Linuxも含め、BSD系のlpr/lpd、その後、Linux/BSDにおいては、LPRngという印刷システムであった頃は、Windows環境ほど簡単ではありませんでしたが、WindowsやMac、BSDやUNIX、Linux混在環境においてプリンタを共有する場合には、WindowsやMacに接続されたプリンタよりもSambaなどを介してBSDやUNIX、Linuxをプリンタサーバとするのが一般的でしたし、ネットワーク対応プリンタでも内蔵OSにおいては事情は同じでしょうし、過去も現在もこれらOSが特に印刷まわりが弱いというわけではありません。
ただ、プリンタベンダ各社は、WindowsやMac OS用のプリンタドライバは用意していてもBSDやUNIX、Linux用のドライバを用意することは、あってもごくごく限られていたことから、これに対応する必要があった点で実質、遅れをとっていました。
そこに1999年に開発され、2000年代初頭に普及したCUPSのメリットの1つとしてプリンタドライバ(代替)が、それまでに比べてかなり容易に作成できるようになったため、瞬く間に多くのプリンタに対応できるようになったという経緯があります。
そんな背景を踏まえつつ、今回は、何気なく、NetBSDでやってみようと思い立った年代物3点セットの内、スキャナ(EPSON GT-7600U)、デジカメ(Konica Digital Revio KD-310Z)に続くプリンタ(HP DeskJet 970Cxi)編です。
ここでは、NetBSDでHP DeskJet 970Cxiを使用する例を挙げます。
HP DeskJet 970Cxiは、これが新製品でUSBが普及し始めた頃のものでSCSIとUSB接続何れも可能、確か10数年前に購入した相当古いものですが、Windows 98 SE(、Windows XPも持ってましたがプリンタをつなげるほど使わずじまい)、Windows Vistaでは、USB接続で自動認識、自動マウントされ、ちゃんと動いている代物です。
もちろん、Linuxでは、GNOME、KDE、Xfce、LXDEなどの統合デスクトップ環境を用いれば、HP DeskJet 970Cxiだろうが、なんだろうが、たいていのプリンタは、PCに接続さえすれば、印刷プレビューも印刷もボタン1つでできてしまいます。
ただ、Linux/*BSD/PC-UNIX何れにしても、これが統合デスクトップ環境では重すぎて入れられず、ウィンドウマネージャならいけるといった場合には、往々にして昔ながらの設定が必要となるのです。
また、最小構成のシステム構築ができるNetBSDでは、Linuxのように要不要に関わらず、あらゆるものが詰め込まれているわけではないので統合デスクトップ環境を使うにしてもCUPS/Common UNIX Printing Systemなどをインストールする必要があります。
前述のようにプリンタ接続環境はいろいろ考えられますが、今回は、シンプルにNetBSDマシンにプリンタを接続してローカルプリンタとして印刷するケースについて記します。
検証、動作確認は、Windows Vistaマシン上で仮想化ソフトウェアであるVMware Player 3.1.6で作成したNetBSD 6.1.4を[Full Install]し、JWM/Joe' Window Managerをデスクトップとして採用した仮想マシンにプリンタを接続するものとします。