LinuxからカラーレーザプリンタHL-3040CNで印刷する


 我が家には、複合機としてBrother MFC-930CDN(今は後継機のMFC-J950DN)がある。電話・FAX・スキャナ・プリンタ・コピー機としてそれなりに使え、かつMac/Linuxからもプリントアウトできるというすばらしい複合機なのだが、問題はインクジェットで

  • 目詰まりしやすい。
  • 印刷が遅い。

といった、インクジェットの宿命も背負っている。

 実は学生時代に使っていたモノクロレーザプリンタEPSON LP-1900Nもあるのだが、何故かネットワーク経由でCUPSから出力するとプリンタがハングアップしてしまう。つまり、MacでもLinuxでもプリントアウトできない問題を抱えている。それがあるので入籍したときにMFC-930CDNを買ったのだが、やはりレーザプリンタの魅力は捨てがたいものがあった。

 そこで目にしたのがHL-3040CN。カラーレーザプリンタなのに実売価格3.4万程度、しかも2010/7/31まで1万円キャッシュバック、NIC完備、Linuxドライバありと、我が家のニーズを全て満たすカラーレーザプリンタだった。

 WindowsやMacからの印刷についてはマニュアルにも書いてあるのだが、Linux、特にGentoo Linuxからの印刷については全く書かれていなかった。試した結果、当然ながらamd64なGentoo Linuxからもネットワークプリンタとして印刷できたので手順を書いておく。正直、このプリンタはネットワークプリンタとして使用してこそ価値があると思う。

 まず、パッケージはrpmまたはdebで配布されているので、rpmをインストールする必要がある。

emerge rpm

 次に、印刷はCUPS経由で行われるので、CUPSをインストールする。CUPSがインストールされていなければUSEフラグにcupsを追加してからemerge -uDN worldする。

 ここまで来たら、BrotherのサイトからLinux用ドライバをダウンロードする。割と見にくいが、ダウンロードするのはLPR ドライバCUPS Wrapperドライバ。BRScript対応ではないので、CUPS Wrapperのほうをダウンロードとなる。64bit環境でも問題なくi386版が動作するので2ファイルをダウンロードすればよい。

 ダウンロードしたら、依存性を全く無視してインストールする。

rpm -ivh --nodeps hl3040cnlpr-1.1.1-4.i386.rpm
rpm -ivh --nodeps hl3040cncupswrapper-1.1.1-4.i386.rpm

 インストールが終わったら、

/etc/init.d/cupsd start

この時点でCUPSを起動する。

 最後に、プリンタの設定をする。USB接続の場合はrpmでインストールした時点でプリンタの設定がされているが、ネットワーク接続している場合はCUPSでプリンタを追加する必要がある。ブラウザで http://localhost:631/ にアクセスすればCUPSの管理画面にアクセスできるので、まずは[管理]→[プリンタの管理]で既に設定されているプリンタを選択し、[プリンタの削除]をする。

 次に、[プリンタの追加]からプリンタを追加するが、もしここでHL-3040CNが認識されていたとしても正しく動かないので、まずプリンタ側でIPアドレスを固定してからCUPSで[Socket接続]→場所は「socket://[プリンタのIPアドレス]」を指定する。次の画面でプリンタのモデルを指定できるが、ここではインストール済みのHL-3040CNが表示されているはずなので、それを選択する。

 設定が終われば、あとはCUPSからテストページを印刷して正しく印刷できるかを確認すればok。

 ただ、Linux版の場合、Firefox/Thunderbird、というよりxulrunnerとの組み合わせで印刷しようとした瞬間にSegmentation Faultで落ちる場合がある。具体的には、CUPS 1.4.4とFirefox 3.6.6の組み合わせで発生し、うちの場合でも再現した。

とりあえず暫定対応としてCUPSのバージョンを下げれば問題なく印刷できる模様。ただし、CUPS 1.4.4未満にはセキュリティホールも見つかっているので注意する必要がある。