NetBSDから Brother DCP-J963N で印刷する

家で使用している Brother DCP-J963N はドライバのソースが非公開で gimp-printのようなオープンなドライバも無かったので、印刷する時は毎回Windowsを起動させていたのだが、どうやらAirPrintに対応しているのでCUPSから動かせるらしいと聞いて試してみたらうまくいったのでメモ。

参考文献

qiita.com

Debian + CUPS + avahi で Brother DCP-J973N を動作させている例。最初はこちらの通りに進めてみたけど印刷時に「見つかりません」になってしまったのであきらめた。

blog.onodera.asia

NetBSD + CUPS + mdnsd で EPSON EW-M752T。実はこっちを見て mdnsd(8) の存在を知ったりする。

CUPSの起動

いつものpkgsrcからインストール。

  1. cd pkgsrc/print/cups して make package-install
  2. cp /usr/pkg/share/examples/rc.d/cups /etc/rc.d
  3. /etc/rc.conf に "cupsd=YES" を追加
  4. service cupsd start (/etc/rc.d/cupsd start と一緒だけど service(8) なるものがいつの間にか増えてたので使ってみた)

手元の環境だと cups-browsed は最終的に無くても認識できたけど、キャッシュが残っていた可能性もあるので本当に必要ないかどうかは不明。

mdnsdのインストール

  1. /etc/nsswitch.conf の "hosts:" の末尾に "mdnsd" を追加
  2. /etc/rc.conf に "mdnsd=YES" を追加
  3. service mdnsd start
  4. プリンタの電源を入れた状態で ippfind と入力して何か出たらOK(今回は ”ipp://BRW40B89A423C96.local:631/ipp/print” と出た)

この1.の nssswitch.conf の追加をしないとCUPSで名前の取得まではできるけども、印刷してみると「見つかりません」で印刷できないという状態になった。 それから net/avahi は無くても良いらしい。

CUPSの設定

  1. Firefoxで "http://localhost:631" にアクセス
  2. 「管理」 → 「新しいプリンターの検索」
  3. しばらく待つと「Brother DCP-J963N (Brother DCP-J963N)」という全く同じ項目が2つ出る
    • プロトコルが異なるようで、上が「dnssd://Brother%20DCP-J963N.ipp.tcp.local./?uuid=(略)」、下が「lpd://BRW40B89A423C96/BINARY_P1」だった
  4. どっちが良いのかわからなかったのでとりあえず上(dnssd)を選択して進める
  5. 名前とかもそのまま
  6. メーカーは「Generic → Generic IPP Everywhere Printer (en)」
  7. デフォルトオプションの設定は無変更で「デフォルトオプションの設定」ボタンを押して完了

テスト印刷

CUPSから「テストページの印刷」をやったら印刷はできたものの左右両端の線が出なかった(印刷可能範囲を越えたかな?)が、その辺は次に印刷が必要になったときに考えよう(ぉぃ