CUPS-.1.6以上でのプリンタ共有
cupsのバージョンが1.6以上になってから、プリンタ共有の方法が変更になり、ノートPC→デスクトップに接続したUSBプリンタへのプリントができなくなっていた。
[Note PC] —wifi—(router)—ethernet—[Desktop PC]===[Printer]
という構成。PCのOSはどちらも Gentoo Linux。結論を先に書くと、Note PC (client)側の /etc/cups/cups-browsed.conf に
BrowsePoll [Desktop PC (server)のアドレス]
を書き加えて、(client側の)cupsd, cups-browsedを再起動すれば良い。client側のcupsが、server側のcupsのプリンタを探してきてくれる。
何にはまっていたかというと、Desktopl PC(この場合はプリンタサーバ)側のcupsのweb管理画面でプリンタの共有設定をしているにも関わらず、プリンタについてはが「非共有(Not Shared)」となっていること。そのために、まず「共有(Shared)」という表示にならんことにはどうにもならんと思い込み、色々設定しては失敗していたのだった。(これがバグなのか仕様なのか分からない。)
[Desktop PC (server側)の設定]
普通に共有の設定をする。先述のweb管理画面でのプリンターの「非共有(Not Shared)」表示は無視。結果、
# cupsctl
_debug_logging=1
_remote_admin=0
_remote_any=1
_share_printers=1
_user_cancel_any=1
BrowseLocalProtocols=
DefaultAuthType=Basic
JobPrivateAccess=default
JobPrivateValues=default
MaxClients=10
SubscriptionPrivateAccess=default
SubscriptionPrivateValues=default
WebInterface=Yes
で、共有したいプリンタ(Desktop PCのprinter)について、
# lpadmin -p [Desktop PCのprinter] -o printer_is_shared=true
これで、/etc/cups/printers.conf に、
<DefaultPrinter [Desktop PCのprinter]>
…
Shared Yes
…
</Printer>
という設定になる。もちろん cupsdも再起動。
[Note PC (client)の設定]
1. 常に Desktop PC (server)のプリンタしか使わない場合
これは簡単で、client側の /etc/cups/client.conf に
ServerName [Desktop PC (server)のアドレス]
を加えてcups-browsedを再起動すれば、常にに Desktop PC側にぶら下がっているプリンタを参照してくれる。
ただ、僕の場合は新聞記事の保存のために、ローカルでCUPS-PDFを使うことが良くある。(これは WindowsのpdfwriterみたいなPDFを吐き出す仮想プリンタ。)これだと上記の方法ではローカルのCUPS-PDFが使えないようだ。
2. Desktop PC (server)のプリンタと共に、ローカルのプリンタも使いたい場合
/etc/cups/cups-browsed.confを以下のように編集する。
BrowsePoll [Desktop PC (server)のアドレス]
これで、
# lpstat -a
[Desktop PCのprinter] accepting requests since Thu 27 Feb 2014 12:29:27 AM JST
Cups_PDF accepting requests since Thu 12 Sep 2013 11:07:10 PM JST
みたいになる。印刷ダイアログも、
という具合になる。