Debian/GNU Linux で AirPrint サーバを建てる

Posted by
ぴろり
Posted at
2012/05/21 23:52
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
電算室 カテゴリ
カバーイメージ

 iPad や iPhone から設定不要、ワイヤレスで一発印刷できる AirPrint を使いたい! そこで、Debian/GNU Linux 上に AirPrint サーバを建て、LAN 接続のファクシミリ複合機 MF-UX60CL/CW に印刷できるようにしてみた覚書。

このエントリーをはてなブックマークに追加  

Step 1. Debian から LAN 接続の MF-UX60CL に印刷する

 AirPrint で印刷できるようにする以前に、Debian 単体で印刷できるように設定しなければなりません。MF-UX60CL のドライバ ソフトウェアは、公式には Windows OS 用のものしか配布されていませんが、Mac OS X のそれと同じように Linux ベースの HP プリンタ用ドライバが利用できます。

$ su
# apt-get update
# apt-get install foomatic-db-hpijs
# apt-get install cupsys
# apt-get install cupsys-bsd

 cups というのがプリンタの共通管理システムで、便利なことにブラウザから設定できる...んですけど、そのままでは他マシンから接続できないので cups の設定ファイルを修正します。

# 標準ではローカルマシンからしか接続できないので
#Listen localhost:631
# とりあえず何も考えずに全部許可
Listen *:631

# Restrict access to the server...
<Location />
  Order allow,deny
  # サーバにアクセスできるよう LAN について許可を追加
  Allow from 192.168.1.
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  # サーバにアクセスできるよう LAN について許可を追加
  Allow from 192.168.1.
</Location>

 設定ファイルを保存した後、サービスを再起動します。

$ sudo /etc/init.d/cupsd restart

 Web ブラウザから http://server.example.com:631/ を開くと管理画面が表示されます。バージョンは 1.3.8 でした。ここでプリンタを登録します。

  • 名前 ... 必須。プリンタを識別するための名前。コンピュータが識別するモノなので、半角英数字が無難。
  • 説明 ... 空欄でもよい。プリンタの説明。"SHARP UX-MF60CL" など、人間のための説明文を入力できます。
  • 場所 ... 空欄でもよい。プリンタが設置されている場所の説明。"自宅/居間" など、人間のための説明文を入力できます。
  • デバイス ... "LPD/LPR Host or Printer" を選択
  • デバイス URI ... socket://UXMF60.home.magicvox.net
  • メーカー ... "HP" を選択
  • モデル ... "HP Deskjet 5700 Foomatic/hpijs (en)" を選択

 以上です。その後、プリンタの一覧からテストページの印刷が行えるので試してみましょう。

参考リンク

Step 2. AirPrint から印刷する

 AirPrint は Bonjour を利用してプリンタを見つけます。でもって、Linux における Bonjour の Zeroconf 仕様の実装が avahi らしいので、avahi-daemon のサービスを登録してやればよいとのこと。/etc/avahi/services 以下に printer.UX-MF60CL.service を作成します。ファイル名は末尾が .service で終わるようにします。

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>UX-MF60CL</name>
<service>
       <type>_ipp._tcp</type>
       <subtype>_universal._sub._ipp._tcp</subtype>
       <host-name>server.example.com</host-name>
       <port>631</port>
       <txt-record>txtvers=1</txt-record>
       <txt-record>qtotal=1</txt-record>
       <txt-record>rp=printers/UX-MF60CL</txt-record>
       <txt-record>ty=UX-MF60CL</txt-record>
       <txt-record>note=Home MagicVox.net</txt-record>
       <txt-record>product=(GPL Ghostscript)</txt-record>
       <txt-record>printer-state=3</txt-record>
       <txt-record>printer-type=0x3056</txt-record>
       <txt-record>Transparent=T</txt-record>
       <txt-record>Binary=T</txt-record>
       <txt-record>Duplex=T</txt-record>
       <txt-record>Copies=T</txt-record>
       <txt-record>pdl=application/pdf,application/postscript,application/vnd.cups-raster,application/octet-stream,image/png</txt-record>
       <txt-record>URF=W8,SRGB24,CP1,RS600</txt-record>
</service>
</service-group>

 次に、/etc/cups/cuspd.conf に以下の行を追加。

ServerAlias *

 最後にサービスを再起動して完了です。

# /etc/init.d/avahi-daemon restart
# /etc/init.d/cups restart

 とりあえずこれで AirPrint で印刷できるようになりましたが、printer.UX-MF60CL.service をそのまま他所からパクってきたために設定が甘いのか、常にカラー印刷になってしまいます。あと、ネットワークのセグメントが異なると AirPrint がプリンタを発見できません。この辺りは仕様なので仕方ないかも。

参考リンク

このエントリーをはてなブックマークに追加  


この記事のアーカイブ

全ての記事 »
2012年
全てのカテゴリ »
電算室
全てのタグ »
, , , ,

関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。