プロローグ
【2021年11月追記】 この記事を書いてしばらくしてからBrotherのドライバページからドライバをダウンロードしてインストールしてみたら、普通にインストールできて利用できるようになりました。。。トホホ
これまたMacbookネタになってしまうのだが、最近Windows機はよっぽどの事がない限り起動しなくなった。
最近悩んでいる事、それはMacから自宅の複合機に印刷ができない事。
家にあるのはBrotherのDCP-J715N、今調べてみると2010年発売だから10年前。。。
最近のプリンタは標準でAirprintが使えると思いますが、10年前のプリンタは化石です。
そりゃ新しいドライバリリースも見送られるわ。。。幸いブラザーのアプリからの印刷は出来るため、なんとか使えている印象。でもMacからはどう頑張っても印刷できない。
という事でどうにかMacで印刷できるように出来ないか試行錯誤した備忘録となります。
CUPSで実現する
Mac側でドライバ対応していないので、さあどうするかと色々悩んだ。
色々調べてみると、LinuxでCUPSをインストールするとプリントサーバになってMacやiPhoneからAirPrintで印刷できるよう。
Brotherのドライバページをみると、ちゃんとLinux版も出ているのでこれは行けそうとよく調べずにインストールを始めた。
FreeNASのJailで利用する
手っ取り早くLinuxの環境が準備できるとすると、FreeNASのJailがいいかなとFreeNASのJailで専用環境を準備した。
WEBで適用に「CUPS インストール 設定」などで調べて設定をすすめ、なんとかWEB管理画面まで辿り着いた。
特に何もせずともプリンタは検索に表示されていたので、早速BrotherからCUPSドライバをDLしインストールしてみる。
debパッケージなので、ふつうにインストールするもアーキテクチャ違いと怒られる。
色々したけどうまくいかず一旦断念。
ラズパイで利用する
丁度VPNサーバとして利用しているRapberry Pi Zero Wが稼働していたのでここにCUPSを入れてみる。
ちなみに同時期にNode-REDをインストールして簡易的な地震速報をAlexaに喋らせて遊んでいたら、SDカードがお逝きになりおじゃん。
変数の使い方をよく理解していなかったため、2日間くらい5秒に1回SDカードにテキストを出力したり読み込ませたりしたら案の定壊れました。
結局RaspbianをクリーンインストールしてVPNとCUPSを入れてFreeNASのJail側にCUPSを入れることにしました。
ここでも同じくdebパッケージを入れるもアーキテクチャ違いで怒られる。
どうやらBrotherから出しているドライバはi386向けでARMプロセッサは非対応なようでした。
完全詰み状態で、ほぼ諦め状態で色々なサイトを覗いては試しを繰り返していました。
ただどれも古い情報だったりレーザプリンタ依存だったりでパッとした情報が出てこず。
新めの情報が欲しいので、Googleで期間を1ヶ月以内で調べたところあるRedditのスレッドが見つかりました。
INSTALL ALL THE NECESSARY STUFF
[TUTORIAL] Install Brother old drivers in Raspberry PI with QUEMU (pretty easy)
$ sudo apt install qemu binfmt-support qemu-user-static cups a2ps
ADD ARCHITECTURE
$ sudo dpkg –add-architecture i386
DOWNLOAD LIBC6 FOR i386 (I found it here)
https://packages.debian.org/buster/i386/libc6/download
OR
$ wget old.kali.org/kali-security/pool/main/e/eglibc/libc6_2.13-38+deb7u8_i386.deb (this one is old so download updated one from above link)
IF YOU TRY TO INSTALL THIS, YOU WILL MESS AROUND WITH APT, SO WE WILL EXTRACT THE DEB AND COPY THESE FILES
$ dpkg -x libc6_2.13-38+deb7u8_i386.deb data
$ sudo cp -r data/lib/* /lib
$ sudo cp -r data/usr/* /usr
$ sudo cp -r data/etc/* /etc
RUN THIS AND ADD IT TO BASHRC TO RUN IN EVERY REBOOT
$ EXTRA_OPTS=”-L /lib/i386-linux-gnu”
DOWNLOAD AND INSTALL YOUR DRIVERS – FOR ME:
$ wget https://download.brother.com/welcome/dlf005405/dcp197ccupswrapper-1.1.3-1.i386.deb
$ wget https://download.brother.com/welcome/dlf005403/dcp197clpr-1.1.3-1.i386.deb
$ sudo dpkg -i dcp197ccupswrapper-1.1.3-1.i386.deb
$ sudo dpkg -i dcp197clpr-1.1.3-1.i386.deb
(一応Web魚拓も置いておきます)
どうやらマルチアーキテクチャ?にしてi386のライブラリを入れることによって実質的にi386のドライバが動くらしい。細かいことはサッパリ。
早速この通りやってみると、ある程度はこの通りに進んだ。もちろんapt-get updateとupgradeした状態で。
ひとつ付け加えるのであれば、最後のdpkgは依存関係を無視する「–force-depends」オプションを付けないとインストール出来なかった。
また、個別にドライバをインストールするとどうしても印刷がズレてしまった。
なんとなく後から簡易インストーラをインストールしたら印刷ズレは解決された。
なおダウンロードURLは「ダウンロードが自動的に始まらない場合は〜」のアドレスをコピーするのが一番楽だと思います。
公式のインストール方法にも記載がある通り、gunzipで回答した後特権でbash実行。
bash linux-brjprinter-installer-x.x.x-x DCP-J715N
問いは適当に進め、インストールが完了するとCUPS側にプリンタが追加されており、それでテスト印刷すると印刷ズレは解消されました。
用紙サイズがデフォルトのままとなっていますが、これで特に印刷ズレなどおきていないのでこのままとしています。
逆にA4とかで設定するとズレるのかな?
ただし…
この状態でiPhoneやMacからAirprint出来るようになりましたが、いかんせん印刷が遅いです。
具体的にはプロトコル次第でCUPSプリントサーバから印刷が完了するまでのスピードが違ってくる印象です。
特にSocketなどで指定するとキューがプリンタに飛ぶのも遅く、印刷自体もめちゃくちゃ遅い。
反面LPDなどにするとキューがプリンタに飛ぶのが遅く、印刷はWindowsと同じくらいのスピード。
これら指定の違いのメリットデメリットもよく理解しておらず、ベストプラクティスもわかっていないため今後運用していく中でわかれば追記していく次第です。
エピローグ
結局ラズパイで進めることになってしまいましたが、今思うとJail環境でも出来たのかもしれません。
次環境を弄る際はJail環境にCUPSを立ててみようと思います。まあ何かのタイミングがないとやりませんが。。。
備忘録となりますが、同じ困りごとしている方がいれば役に立つことを願います。なにかQAが必要であればコメントください。
記事は以上