押し入れから出てきた古いUSBハブを介して接続ちゅう |
今回は、A3ノビ対応のEPSON PM-G4500をAirPrint対応化させてみる。
必要な物のインストール
yum -y install tar yum -y install gcc-c++ libtool rpm-build yum -y install openssl yum -y install make automake yum -y install avahi avahi-autoipd yum -y install cups ghostscript cups-develここで
依存性の欠落: krb5-libs = 1.7-8.fc12 はパッケージ krb5-devel-1.7-8.fc12.armv5tel (fedora) が必要としていますとでるので
# wget http://ftp.linux.org.uk/pub/linux/arm/fedora/pub/fedora/linux/releases/12/Everything/arm/os/Packages/krb5-devel-1.7-8.fc12.armv5tel.rpm # rpm -ivh --nodeps krb5-devel-1.7-8.fc12.armv5tel.rpmで強制的にインストール。これでcups-develがインストール可能。
# yum -y install cups-devel
cups設定ファイルを編集する
# vi /etc/cups/cupsd.conf以下、viで作業。
#Listen localhost:631//コメントアウト #Listen /var/run/cups/cups.sock //コメントアウト Port 631 //追加 <location /> Order allow,deny Allow localhost Allow @LOCAL //追加 </location> <location /admin> Order allow,deny Allow localhost Allow @LOCAL //追加 </location> <location /admin/conf> Order allow,deny Allow localhost Allow @LOCAL //追加 </location>最終行に以下を追加
ServerCertificate /etc/cups/ssl/server.crt ServerKey /etc/cups/ssl/server.key保存する。
https接続用の証明書を作成する。
# openssl req -new -nodes -x509 -keyout /etc/cups/ssl/server.key -out /etc/cups/ssl/server.crt -days 3650以下は参考。
Country Name (2 letter code) [XX]:JP State or Province Name (full name) []:Kumamoto Locality Name (eg, city) [Default City]:Kumamoto-shi Organization Name (eg, company) [Default Company Ltd]:Prioris.A.W. Organizational Unit Name (eg, section) []:Security Common Name (eg, your name or your server's hostname) []:SheevaPlug Email Address []:.
Epson Inkjet Printer Driver (ESC/P-R)のインストール
i386やx86_64などの一般的なアーキテクチャ以外は自分でドライバをソースからコンパイルする必要がある。
幸いにもEPSONはソースコードまで公開してくれているので、これを利用する。
# wget http://linux.avasys.jp/drivers/lsb/epson-inkjet/escpr/src/epson-inkjet-printer-escpr-1.1.1-1lsb3.2.tar.gz # tar zxvf epson-inkjet-printer-escpr-1.1.1-1lsb3.2.tar.gz # cd epson-inkjet-printer-escpr-1.1.1 # ./bootstrap && ./configure --prefix=/usr # make # make install途中で必要なものは最初にインストールしているが、もしエラー吐いて止まったら足りないものがあるのでyumでインストール。
特に、libtool→automakeの順でインストールしていない場合はautomakeをreinstallする。
CUPSにプリンタを認識させる
SheevaPlugにUSBケーブルでプリンタを接続した状態で
http://SheevaPlugのIPアドレス:631
にアクセスする。我が家の場合、http://192.168.24.63:631
次に、管理者向け->プリンターとクラスの追加を開き、プリンターの追加を選択。
しばらく待つとローカルプリンターの欄にUSBで接続したプリンタが現れるので、選択して「続ける」をクリック。
このプリンターを共有するにチェックを入れて「続ける」をクリック。
先ほどのEPSONドライバーがうまくインストールできていれば、後ろに「Epson Inkjet Printer Driver (ESC/P-R)〜」と付いている機種名がずらずらと表示される。
機種名を選択して「プリンタの追加」をクリック。
これでプリンターが追加される。
Avahi設定ファイルを書く
(参考:AirPrintをCUPSを使ったLinuxサーバーで実現してみた。)
vi /etc/avahi/services/printer.serviceほとんど参考にしたブログの通り。
<?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>EPSON PM-G4500</name> <service> <type>_ipp._tcp</type> <subtype>_universal._sub._ipp._tcp</subtype> <port>631</port> <txt-record>txtvers=1</txt-record> <txt-record>qtotal=1</txt-record> <txt-record>rp=printers/EPSON_PM-G4500</txt-record> <txt-record>ty=EPSON_PM-G4500</txt-record> <txt-record>note=SheevaPlug</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>
これでMacのシステム環境設定からプリンタとスキャン→プリンタの追加で検索すると表示されるようになる。
Macからは正常に印刷できるが、このままではiPhoneやiPadから印刷したときに日本語が印刷されなかった。
yum -y install poppler-dataこれで日本語が印刷される。
ちなみに、これはiPhone/iPadがPDFを生成してCUPSに送りつけていることが原因。
ページのサイズが大きいと印刷(開始)までに時間がかかるけど、これはiPhone/iPadがPDF生成に時間を要しているからと思われる。(要するにiPhone/iPad側の問題)
というわけで、無事、AirPrintアダプタを作るという目標は達成。
実際に運用するのかという話は... iPadからの印刷はしないので自己満足ということで(*´▽`*)
というか、いい加減、AirMac ExtremeとかAirMac ExpressでAirPrintできるようにしてくれないかな...
ファームウェアで十分対応できることなんだけど、AirPrint対応プリンタを作らせるためにあえて対応しない感じなんだろう。
とりあえず、NASとして使うために、samba入れてハードウェアRAID1の外付けHDDを接続したり、Webサーバとして使うために、ApacheとPHPとMySQL入れて負荷を見てみたりしているところ。
0 件のコメント:
コメントを投稿
記事へのコメントはいつも確認している訳ではないので、お返事が遅れる場合があります。
ご質問やご意見は twitter@9SQ へお送り頂けると早くお返事できると思います。