7月 222010
 

僕の自宅にはネットワーク上に FreeBSD 二台、Windows7 二台、MacOSX 一台がクライアント PC として存在してます。でもって自宅にはプリンタがあって ブラザー HL-2040 があるのですが、このプリンター、USB とパラレルポートで接続できるのであります。

HL-2040 のパラレルポートは Windows7 に、USB は MacOSX に接続されているので FreeBSD が動作している PC にはプリンタが接続されていないのであります。

そもそも、FreeBSD ではプリンタが動作するようにする設定はややこしいし、無理して FreeBSD から印刷しなくとも、cupsd が動作していて、ベンダがドライバを用意している MacOSX から印刷すれば綺麗に印刷できるのでそれで良いやー。とか思っていたわけですが・・。

しかし、よくよく調べてみるとブラザーは MacOSX と Linux 用に cups ドライバを用意しているので、それを FreeBSD に持ってきたら FreeBSD でも綺麗に印刷できるではないかい?

とか思い、FreeBSD で cupsd を onestart したわけです。で、その後に http://localhost:631 にアクセスするわけです。そしたら・・。

あぁれぇ? MacOSX に接続しているプリンタが FreeBSD から見えるではありませんかっ!! 以下は cupsd に接続した時の「プリンタの管理」の画面です。

cups_printer.png

cupsd で既に認識されているので、後はアプリから使えるのか確認するだけです。まずは GTK アプリの代表格 Firefox からですが、「印刷」を選択するとちゃーんと MacOSX に接続されたプリンターが見えていて、印刷もちゃんとできました。

次は僕がメインで利用しているデスクトップ環境の KDE4 の konqueror で印刷してみましたが、これまたプリンタがちゃんと見えていてちゃんと印刷ができたのでありました。日本語も文字化けせずに綺麗に印刷されております(@_o)。

す、すげーな。って感じなのてありました。

さてと。ここからはただの観測でしかなくて、全くウラは取ってないのですが、MacOSX と、後、KDE4 を利用した僕のデスクトップ環境では mDNS やら avahi やら hald などがガシガシ動いている環境です。なので、MacOSX 上の samba でファイル共有とプリンタ共有がオンになっていると Apple 謹製の cupsd はサクっとお互いを認識しあえるのかなぁ(サクっと認識されたのは多分 mDNS の影響だと、僕は思うのでありますが)。などと思った次第です。

MacOSX に接続され、ネットワーク共有されているプリンタはサクっと利用できると言うことなのでしょうなぁ。

それにしても上のほうに書いた通り HL-2040 のパラレルポートは Windows7 に接続しています。で、Windows7 に接続しているプリンタもネットワーク共有しているのですが、こいつは cupsd からは見ることが出なかったのでありました。

cupsd 同士、後、mDNS などの親和性がすごーく良い。と言うことなんでしょうかねぇ。

最後にですが FreeBSD 上で make した cups-base の make config のオプションを付けておきます。

# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for cups-base-1.4.3
_OPTIONS_READ=cups-base-1.4.3
WITH_GNUTLS=true
WITHOUT_PHP=true
WITHOUT_PYTHON=true
WITHOUT_LIBPAPER=true
WITH_DNSSD=true
WITHOUT_PAM=true
WITHOUT_LDAP=true
WITHOUT_DBUS=true
WITHOUT_LIBUSB=true
WITH_GHOSTSCRIPT=true
WITHOUT_XPDF=true
WITHOUT_XDG_OPEN=true

 
本当に良く分からないのですが WITH_DNSSD=true なのかなぁ。 FreeBSD で簡単にプリンタを使いたければ MacOSX に接続されているプリンタで。って感じでしょうか;-)。

  6 件のコメント to “CUPS で FreeBSD から簡単印刷。(MacOSX があればだよ)”

  1. そうですね、DNSSDが有効になっているのがFreeBSDからプリンタが見えた理由でしょうね。
    Macでプリンタを共有するには、システム環境設定->共有->プリンタ共有で設定できますよ。もちろんBonjour(か相当する機能)が走っているクライアントならWindowsでもFreeBSDでもOKです。

  2. tkono1さん。こんばんは。
    やはり、mDNS は偉大、と言うか、MacOSX では Bonjour でしたね。コロっと忘れていましたf(^^;;。
    後、Windows7 のプリンタが見えない件ですが、Windows7 は samba が IPv6 で通信しています(自宅 LAN の ネットワーク共有は IPv6 でアクセスしています)。
    するっていと cupsd (あ、ではなく mDNS のほうか) も IPv6 対応になっている必要があるのかな?と思った次第ですが、もしかすると、Windows7 に iTunes とか QuickTime をインストールして、併せて Bonjour もインストールすると Windows7 上のネットワーク共有のプリンタが見えるかもしれないですねぇ。

  3. こんばんはです。
    BonjourというかZeroconfはIPv6もOKな規格なんで、Bonjourもいけるんじゃないかと思います。AFPでのファイル共有もこっそりIPv6でしてたりしますしね。
    Apple謹製のBonjour for Windows(iTunesインストール時に入ってくる奴ですね)はDiscoveryだけだったと思うので、Windows7のプリンタを周りに見せたい場合は他実装を探してくるか設定ファイルを編集してサービスの内容を書き込んでしまう必要があると思います。思いますばかりですみません…

  4. iOS4.2・AirPrint で体験する CUPS。

    iOS4.2 の機能の目玉の一つ、AirPrint が HP の対応プリンタ以外…

  5. FreeBSD 9.1-Releaseをインストールしたデスクトップ(A端末)にnet/samba36をインストールして簡易ファイルサーバーを仕立てました。プリントサーバーとしても使いたかったので、googleで検索しまくったのですが、これという情報を見つけられず。

    いろいろ検索する語句を変えて検索した結果、「プリント・サーバーをノートPCで!(http://akipara2.sakura.ne.jp/new_page_653.htm)」と、「CUPSでプリンターの共有(http://honana.com/system/cups)」の記事を参考にしてprint/cupsをインストール後、A端末にUSB接続したCanon BJ F300を、同じ無線LANネットワークにつながっているWindows 7 Pro SP1のデスクトップ(B端末)からプリンターとして認識させ、印刷することができました。

    B端末のブラウザ経由でプリンターの管理をするため、opensslを使って証明書を作り、ブラウザが無効という証明書を有効な証明書と教え込ませることで、プリンターの追加ができました。

    簡単ですが、ご報告まで。

  6. 風さん。こんにちは。

    FreeBSD に接続したプリンタから、ベンダがドライバを提供している OS が印刷する分には比較的簡単ですね。ただ、ドライバが無い FreeBSD からローカルもしくは LAN 内のプリンタに印刷するのがナンギなんですよねぇ。
    しかし、Mac OSX 経由だと FreeBSD でも印刷できるという・・;-)。

 コメントを書いてください。

HTML タグが利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(必須項目)

(必須項目)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください