12月 142010
 

iOS4.2 の機能の目玉の一つ、AirPrint が HP の対応プリンタ以外のハードウェアでも利用できて、印刷できるらしい。と言うのが最近あちこちで騒がれています。例えばこれ。

ascii.jp の「OS XのプリンターをAirPrint経由で使う」
マイコミの「既存のプリンタで iOS AirPrint 印刷に対応する方法」

僕的には ascii.jp の記事のほうがラクだったのでそっちで試してみました。本文にあるとおりですが、/usr/share/cups/mime/airprint.types と言うファイルを作成して、その中に以下の行を書いたら MacOSX をリブート。

image/urf urf (0,UNIRAST<00>)

 
後は、システム環境設定の「共有」でプリンタ共有にチェックを付けて「全員 プリント可能」を選択するだけでで iPhone4 から AirPrint が利用できます。

AirPrint_2.jpg

ちなみに元記事では「認証ダイアログ」が出てきてしまう。と書かれていましたが「プリンタとファクス」の設定の所で [ネットワークでこのプリンタを共有] のチェックを2,3回付けたり外したりしてシステム環境設定を閉じれば、iPhone4 側では特に認証を聞かれることもなく印刷が可能になります;-)。

AirPrint_3.jpg

このブログで何回か書いていますが、僕はブラザーの HL-2040 を利用しています。iPhone4 のキャプチャでちゃんと認識できます。HP のプリンタでなくともこうして iOS4.2 の AirPrint が利用できるのですね。ぱちぱちぱち。
#ちなみに iPhone3G では AirPrint はまぁるで利用できません。メニュー自体がありません。あしからず・・。orz。

さて。これで終わったら、ただの記事のパクリですね。もうちょっと足を突っ込んでみましょうか。

そもそも、MacOSX では CUPS と言うプリントシステムを提供しています。Apple 謹製で、僕が普段利用している FreeBSD も CUPS が動作します。

以前のエントリで「CUPS で FreeBSD から簡単印刷。(MacOSX があればだよ)」というのを書いていますが、詳しくはそっちに譲ります。

MacOSX のシステム環境設定の「共有」で「プリンタ共有」の制御を行うのは、実は CUPS の設定を変更しているんですな。試しに http://localhost:631 にアクセスして「管理」タブの右側の「このシステムに接続されているプリンターを共有」のチェックのところを見ていると解ります。「共有」の「プリンタ共有」のチェックを外して http://localhost:631 の「管理」タブのページをリロードすると、チェックが外れたりします。

AirPrint_1.jpg

ブラウザとシステム環境設定の画面をキャプチャしたモノですがちゃんと見えるかな?

その時、/etc/cups/cupsd.conf にも実はこっそりと設定が入って、更にバックグラウンドで cupsd がリサスタートされるわけですね。ふむー。立派な GUI なこと。FreeBSD にもこーいう統合的な GUI が欲しいなぁ。KDE4 には無いんだけど、gnome にはあるのかなぁ?

ちなみに共有するかしないかチェックによって /etc/cups/cupsd.conf が書き換わるんですが、以下はその差分ですねー。

--- cupsd.conf.O        2010-12-14 02:17:05.000000000 +0900
+++ cupsd.conf  2010-12-14 02:17:24.000000000 +0900
@@ -1,19 +1,21 @@
LogLevel warn
SystemGroup admin
SystemGroupAuthKey system.print.admin
-# Only listen for connections from the local machine.
-Listen localhost:631
+# Allow remote access
+Port 631
Listen /private/var/run/cupsd
-# Show shared printers on the local network.
+# Enable printer sharing and shared printers.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseRemoteProtocols
-BrowseLocalProtocols
+BrowseAddress @LOCAL
+BrowseLocalProtocols CUPS dnssd
DefaultAuthType Basic

-  # Restrict access to the server...
+  # Allow shared printing...
Order allow,deny
+  Allow @LOCAL
</Location>
<Location /admin>
</Location>

 
と、言うことで MacOSX っちゅーのは UNIX 知っている人でもむやみやたらに手で設定ファイル変更したらアカンよ。って感じなのでしょうかね。

それにしてもその昔、「プリンタ共有」ってのは samba で行い、smb.conf の中にプリンタ共有の設定を記述することにより行っていたのですが、MacOSX がベースになると CUPS 側でプリンタのドライバから共有まで一手に面倒見てくれるので、随分と変わったモノだ。などとなるのでありました。

Windows を利用している人でも、UNIX 系 OS や MacOSX がネットワークにある人は是非とも Bonjour をインストールしておきたいものです。って、 Windows7 版ではもうないんだっけか;-)。

さてさて。話がここで終わってしまうとこれまたどーも尻切れとんぼちっくなので FreeBSD での動作についてもちっくと書いておきましょうかね。

結論から言うと FreeBSD 上で動作する CUPS では AirPrint ができませんでした。

僕の知識が多分足りないのだと思います。思いますが・・。

簡単に行った手順を書いておきます。

1. まず、FreeBSD の CUPS に対応しているプリンタが無いので cups-pdf と言うプリンタを ports からインストールします。 CUPS 経由で印刷したものを PDF 化する “プリンタ” です。 firefox3 や KDE4 では「印刷」で「PDF に出力」ってのがあるので本当は必要無いのですけどね。 print/cups-pdf という ports です。

2. 続いて http://localhost:631 にアクセスして cups-pdf を「プリンタの追加」に登録します。「ロカールプリンタ」を選択し、ベンダは「Generic」を選択すればプリンタの準備は完了です。後は実際にアプリケーションから印刷してみます。印刷した時にできる PDF は /var/spool/cups/cups-pdf/ユーザ名/ に出力されます。

3. さて。プリンタの準備も整ったので、早速 AirPrint 対応してみましょう。一番上に書いた airprint.types というファイルを /usr/local/share/cups/mime/ に設置します。後、一応、/usr/local/etc/cups/ にも symlink しましょうかね。

4. cupsd・avahi-daemon・mdnsd を再起動 (restart) します。プリンタ共有しようとする場合、この三つのデーモンはセットですね。どれか一個が起動していない(hoge_enable=”YES” になっていない)と MacOSX のプリンタも共有できないです。その割りには MacOSX 側では avahi-daemon が動いている気配無いのにプリンタ共有できるんですよね。不思議だ・・。

で、自分が思っている設定が終わったので、早速 iPhone4 からアクセスするのですが、「プリタンーが見つかりません。」と悲しい状態になるのでありました・・。orz。

多分、 cupsd・avahi-daemon・mdnsd のうち、どれかの設定が悪いのだと思います。ログを見ていると認証というか、アクセス系のエラーが出ていたのでそっち方面の設定をしたら良いかもしれません。そもそも、僕の iPhone4 は自宅の無線 LAN に接続すると IPv6 でアクセスしているので、更に何か設定が必要なのかもしれません。

ちなみに、MacOSX も FreeBSD も cupsd・avahi-daemon・mdnsd は全て IPv4/IPv6 のデアルスタクで動作しています。

とまぁ、大体こんな感じで試したのですが、 FreeBSD で AirPrint をやるにはもう少し情報収集してから再度トライする必要がありそうです。せっかく MacOSX と同じ環境持っているんですしね。けどもまぁ、裏を返すと MacOSX で AirPrint できるんだからもういいんじゃね? ともなるんですが・・f(^^;;。

続編書きました。-> 「iOS4.2・AirPrint で体験する avahi。

  3 件のコメント to “iOS4.2・AirPrint で体験する CUPS。”

  1. iOS4.2・AirPrint で体験する avahi。

    さてさて。 前回のエントリで「iOS4.2・AirPrint で体験する CUP…

  2. もしかして:誤字ではありませんか?
    :ロカールプリンタ
    :「プリタンーが見つかりません。」と悲しい状態になるのでありました
    :デアルスタクで動作しています。
    :ともなるんでが

  3. 五時ですねぇ;-)。
    他のエントリーにもたくさんあるかと思われますので、ジャンジャン上げて頂ければと思います。
    雑誌・ムックと違って後から更新可能ですのでー。
    宜しくお願いしますm(_ _)m。

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

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

(必須項目)

(必須項目)

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

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