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

client側のcups web管理画面

client側のcups web管理画面

みたいになる。印刷ダイアログも、

印刷ダイアログ

印刷ダイアログ

という具合になる。