2017/02/27

64bit Plamo LinuxでMultiwriter 5750Cを使用しAirPrintサーバにする

64bit Plamo LinuxでMultiwriter 5750Cを使用しAirPrintサーバにした際のメモです。
記憶を頼りに記述しています。

・Multiwriter 5750C用ドライバをインストール

 下記の場所からプリンタドライバ (RPMパッケージ)をダウンロードします。
http://jpn.nec.com/printer/laser/support/os/linux/download/mw5750c.html

$ wget http://jpn.nec.com/printer/laser/support/os/linux/download/data/xrc-driver/mw5750c/NEC-MultiWriter_5750C-1.0-1.i386.rpm
$ mkdir tmp
$ cd tmp
$ sudo -s
# rpm2tgz ../NEC-MultiWriter_5750C-1.0-1.i386.rpm 
# tar xzvf NEC-MultiWriter_5750C-1.0-1.i386.tgz 
# cd NEC-MultiWriter_5750C-1.0-1.i386
# makepkg nec_multiwriter_5750c-1.0.1-x86_64-P1.txz 
# installpkg nec_multiwriter_5750c-1.0.1-x86_64-P1.txz 
# exit 


・Plamo LinuxのFTPサーバの下記の場所で公開されているprint32-compatをインストール

ftp://plamo.linet.gr.jp/pub/Plamo-test/for-6.x/x86_64/print32-comp
$ sudo installpkg cups_compat32-2.0.0-x86_64-P1.txz
$ sudo installpkg cups_filters_compat32-1.0.61-x86_64-P1.txz
$ sudo installpkg print_compat_lib32-6.1-x86_64-P1.txz

/etc/ld.so.confに/usr/heimdal/libを追加します。
$ sudo vi /etc/ld.so.conf
$ tail -n1 /etc/ld.so.conf
/usr/heimdal/lib
$ sudo ldconfig

このままだとhttp://localhost:631/admin等にアクセスした際にサーバー内部エラーになってしまうので、下記からcupsを再度取得してインストールしました。
ftp://plamo.linet.gr.jp/pub/Plamo-6.x/x86_64/plamo/04_xapps/print.txz/cups-2.0.0-x86_64-P1.txz

$ sudo updatepkg -f cups-2.0.0-x86_64-P1.txz


・32bitパッケージからcompat32パッケージを作成し、インストールする

依存関係を満たすため、下記のパッケージを作成してインストールしました。
bzip2_compat32-1.0.6-x86_64-P4.txz
libjpeg_turbo_compat32-1.5.0-x86_64-P2.txz
libpng_compat32-1.6.28-x86_64-P3.txz    
pcre_compat32-8.39-x86_64-P1.txz
qpdf_compat32-4.0.1-x86_64-P1.txz
tiff_compat32-4.0.6-x86_64-P3.txz
xz_compat32-5.2.2-x86_64-P2.txz

例えばlibpng_compat32-1.6.28-x86_64-P3.txzは下記の手順で作成しました。
$ wget ftp://plamo.linet.gr.jp/pub/Plamo-6.x/x86/plamo/02_x11/libpng-1.6.28-i686-P3.txz
$ mkdir tmp
$ cd tmp
$ sudo -s
# tar xJvf ../libpng-1.6.28-i686-P3.txz
# mkdir usr/bin/32
# cd usr/bin
# mv libpng14-config libpng16-config png-fix-itxt pngfix 32/
# cd ../../

install/doinst.shを編集し、usr/binをusr/bin/32に変更します。
# vi install/doinst.sh

libpng_compat32-1.6.28-x86_64-P3.txzを作成し、インストールします。
# makepkg libpng_compat32-1.6.28-x86_64-P3.txz
# installpkg libpng_compat32-1.6.28-x86_64-P3.txz
# exit


・cupsの設定

/etc/cups/cupsd.confの下記の点を修正します。

(1) Listen localhost:631をListen 631に変更


(2) <Location />、<Location /admin>、<Location /admin/conf>を下記のように変更
(ローカルネットワークが192.168.1.0/24の場合)

<Location />
  Order allow,deny
  Allow localhost
  Allow 192.168.1.0/24
</Location>

<Location /admin>
  Encryption Required
  Order allow,deny
  Allow localhost
  Allow 192.168.1.0/24
</Location>

<Location /admin/conf>
  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow localhost
  Allow 192.168.1.0/24
</Location>

(3) cupsを再起動する

$ sudo /etc/rc.d/init.d/cups restart


・プリンタを追加する

http://IPアドレス:631/adminにアクセスし、プリンタ(Multiwriter 5750C)を追加します。
その際、「このシステムに接続されているプリンターを共有」と「インターネットからの印刷を許可」をチェックします。


・AirPrintサーバにする

/etc/rc.d/rc.localに下記の記述を追加します。
# Start avahi.
if [ -x /etc/rc.d/rc.avahidaemon ]; then
    echo "start avahi daemon"
    /etc/rc.d/rc.avahidaemon start
fi
$ sudo vi /etc/rc.d/rc.local
$ tail -n5 /etc/rc.d/rc.local
# Start avahi.
if [ -x /etc/rc.d/rc.avahidaemon ]; then
    echo "start avahi daemon"
    /etc/rc.d/rc.avahidaemon start
fi

airprint-generate.pyをダウンロードして実行し、作成されたAirPrint-NEC_MultiWriter_5750C.serviceを/etc/avahi/services/へコピーします。
その後、rc.avahidaemonを起動します。
$ wget https://raw.githubusercontent.com/tjfontaine/airprint-generate/master/airprint-generate.py
$ python airprint-generate.py
$ sudo cp AirPrint-NEC_MultiWriter_5750C.service /etc/avahi/services/
$ sudo /etc/rc.d/rc.avahidaemon start


このままではiOSの印刷プレビューがグレーになってしまいますが、実際に印刷してみるとカラーになります。
AirPrint-NEC_MultiWriter_5750C.serviceに<txt-record>Color=T</txt-record>を追加してrc.avahidaemonをrestartしたところ、iOSの印刷プレビューがカラーになりました。
# cat /etc/avahi/services/AirPrint-NEC_MultiWriter_5750C.service 
<?xml version="1.0" ?><!DOCTYPE service-group  SYSTEM 'avahi-service.dtd'><service-group><name replace-wildcards="yes">AirPrint NEC_MultiWriter_5750C @ %h</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>Transparent=T</txt-record><txt-record>URF=none</txt-record><txt-record>rp=printers/NEC_MultiWriter_5750C</txt-record><txt-record>note=NEC MultiWriter 5750C</txt-record><txt-record>product=(GPL Ghostscript)</txt-record><txt-record>printer-state=3</txt-record><txt-record>printer-type=0x8010dc</txt-record><txt-record>Color=T</txt-record><txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-command</txt-record></service></service-group>

0 件のコメント: