$name;

Sola's daily diary, commit logs, and all

LinuxからMultiWriter 5750Cで印刷するために格闘したはなし

どのプリンターも、WindowsおよびmacOS用のドライバーは発売後長期間にわたって公開されている傾向にありますが、Linux用のドライバーについてはそうではありません。メーカーがLinuxでの印刷をサポートしていないことが多いほか、一度は公開されたドライバーの公開が取りやめられることもあります。

前回の記事で取り上げた、私が愛用するMultiWriter 5750Cは、Linuxでの印刷がサポートされていないプリンターです。

手持ちのプリンターにLinux向けドライバーが存在しなくても、仕様が似ている別の海外機種のプリンタードライバーを当てると印刷できることがあります。

このプリンターは、Xeroxがプリントエンジンを作って部品を供給しています。ひとしきり、Xerox富士ゼロックスのプリンタードライバーを当てて試したのですが、うんともすんとも言いません。星の数ほどもあるドライバーリストの中から、MultiWriter 5750Cとそっくりの見た目の「Phaser 6130」のドライバーを探し出してみたのですが、やっぱりダメです。

プリンターの仕様を調査する

プリンターが受け付けられるプリント言語(PDL: ページ記述言語)の種類によっては、汎用のプリンタードライバーが使える場合があります。中でも、PCLは多くの業務用プリンターがサポートするプリント言語です。PCL対応プリンターの場合、メーカーがLinux対応を公称していたり、純正ドライバーを配布していることも多いです。

このプリンターの仕様について、メーカーの資料をあさったりWireSharkでパケットキャプチャして確認したのですが、残念ながら、PCLなどの、仕様が広く知られているプリント言語になにひとつ対応していません。唯一、HBPLという謎のプリント言語にのみ対応しているようです。

調べてみると「ホストベース方式」というもので、プリンター上のプリントプロセッサが行う仕事の一部を、印刷ジョブを投げるPC上で処理します。具体的には、印刷したいデータをラスターイメージに変換するなどして、独自のデータフォーマットでプリンターに印刷ジョブを送信します。

ホストベース方式の利点は、プリンター上のハードウェアの性能を削減出来たり、ソフトウェアの実装を簡略化できることにあります。その反面、プリント言語が機種依存になりがちなようです。

こういったプリンタードライバーは開発が大変なのか、有志によりOSS版のプリンタードライバーが作られることも稀なようです。

さて、Xerox製のHBPLプリンターとしては、Phaser 6000/6010という機種がLinux向けのドライバーを配布しているらしいと知って、ダメ元でドライバーを当ててみたのですが、やっぱりダメでした。

メーカーがドライバーを配布していた?

さて、このプリンターはメーカーがLinuxでの印刷をサポートしていない、ということを先に述べました。よく調べてみると、発売元のNECにより、一時期Linux向けのドライバーが公開されていた時期があったようです。

そういえば、Ubuntuを使っていた2018年ごろの時期に、MultiWriter 5750Cでテストページを印刷することに成功しています。当時のことはもう覚えていませんが、このプリンターに非プロプライエタリ版のドライバーは存在しないはずなので、メーカー公式のドライバーを当てたことがあるはずです。

2018年頃、Ubuntuから本機でテスト印刷をした写真

どういうわけか、今ではドライバーの配布ページも消されてしまっているようです。もともと無保証で公開されていたものですが、継続サポートもされず、deprecatedになって消えていったのでしょうか。

ドライバーを入手する

本プリンターのLinux版ドライバーですが、ドライバーの配布ページはすでに削除されており、アクセスしても404が返ってくる状況です。

ですが、ドライバーファイルのURIを直接叩けば、2023年8月30日現在ではまだダウンロードできる模様。

以下に紹介する、有志の方のブログ記事に、debパッケージ形式のドライバーファイルへのリンクが掲載されています。

inux.blog.jp

私はopenSUSEを現在使っているので、RPMパッケージを探しました。

NECによるLinux用プリンタードライバーのマニュアルを頼りに、RPMパッケージのURIを探り当てました。

ダウンロードしたドライバーはamd64には対応していないので、32bit版のlibcupsを導入する必要があります。あとは通常の手順でCUPSにプリンターを追加すれば印刷に成功しました。

ドライバーのURI

ドライバーファイルは以下のURIからダウンロードできました。

⚠️リンク先のドライバーの利用を推奨するものではありません。メーカーにより予告なくドライバーの公開が停止されることがあります。

http://jpn.nec.com/printer/laser/support/os/linux/download/data/xrc-driver/mw5750c/nec-multiwriter-5750c_1.0-2_i386.debdeb形式)

https://jpn.nec.com/printer/laser/support/os/linux/download/data/xrc-driver/mw5750c/NEC-MultiWriter_5750C-1.0-1.i386.rpmRPM形式)

所感

私のように、Linuxデスクトップを使用し、印刷までする、というユーザーは少数派かもしれませんが、そのようなユーザーはプリンター選びに注意したほうが良いかもしれないと感じました。昨今は、Linux向けのハードウェアドライバーが有志の開発者やメーカーによって豊富に提供されていますが、プリンターについてはそうではありません。OSSのプリンタードライバーを開発するプロジェクトはありますが、提供されているプリンタードライバーはごく限られています。

少なくとも、PCLのような、仕様が広く知られているプリント言語に対応したプリンターを使用すると、余計な沼にハマらずに済む可能性が高そうです。