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の組み合わせで発生し、うちの場合でも再現した。
- Bug 573039 – Segfault with CUPS 1.4.4
- STR #3606: Firefox/Thunderbird segfault on print/print preview
- Gentoo Bug 325469 cups-1.4.4 causes Firefox 3.6.4 to Crash in print dialog
とりあえず暫定対応としてCUPSのバージョンを下げれば問題なく印刷できる模様。ただし、CUPS 1.4.4未満にはセキュリティホールも見つかっているので注意する必要がある。