HAYAGUI

MacOS X 10.4 + 1.2 系 CUPS (1.2.1)

はじめに

www.cups.org に、1.2 系の CUPS 1.2.1 の dmg ファイルがあったので、インストールして動作を確認してみました。2006/06/18現在 MacOSX 10.4.6 にインストールされているCUPSは、1.1系です。 1.2.1 をインストールすることで、既存の 1.1 は上書きされますので、そのつもりで。

インストールされるファイル

CUPSインストーラの中身を見てみます。
ibg4:~/Desktop/cups.pkg/Contents kenz$ ls
Archive.bom     Archive.pax.gz  Info.plist      PkgInfo         Resources
ibg4:~/Desktop/cups.pkg/Contents kenz$ tree
.
|-- Archive.bom
|-- Archive.pax.gz
|-- Info.plist
|-- PkgInfo
`-- Resources
    |-- BundleVersions.plist
    |-- English.lproj
    |   |-- Description.plist
    |   `-- cups.info
    |-- ReadMe.rtf
    |-- Welcome.rtf
    |-- background.tif
    |-- cups.bom -> ../Archive.bom
    |-- cups.pax.gz -> ../Archive.pax.gz
    |-- cups.sizes
    |-- package_version
    |-- postflight
    `-- preflight

2 directories, 16 files
ibg4:~/Desktop/cups.pkg/Contents kenz$ cat Resources/postflight 
#!/bin/sh

# Remove old startup item, we use launchd now...
rm -f /System/Library/StartupItems/PrintingServices/PrintingServices

# Tell launchd to reload cupsd...
launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist || exit 0
launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist
ibg4:~/Desktop/cups.pkg/Contents kenz$ cat Resources/preflight 
#!/bin/sh
# Stop any running cupsd processes...
killall cupsd || exit 0
ibg4:~/Desktop/cups.pkg/Contents kenz$ 
CUPSの再起動を launchd でやっているけど、launchd って、MacOSX 10.4(Tiger) からじゃなかったっけ?

Archive.pax.gz を、引き出して、何をインストールするか見てみます。

ibg4:~ kenz$ pwd
/Users/kenz
ibg4:~ kenz$ mkdir cups
ibg4:~ kenz$ cp ./Desktop/cups.pkg/Contents/Archive.pax.gz cups
ibg4:~ kenz$ cd cups/
ibg4:~/cups kenz$ ls
Archive.pax.gz
ibg4:~/cups kenz$ gunzip -dc Archive.pax.gz > Archive.pax    
ibg4:~/cups kenz$ pax -r -f Archive.pax
ibg4:~/cups kenz$ rm -f Archive.pax*
ibg4:~/cups kenz$ ls
System  private usr
ibg4:~/cups kenz$ 
ibg4:~/cups kenz$ tree > ../tree.txt
ibg4:~/cups kenz$ 
で、tree を見る。
.
|-- System
|   `-- Library
|       `-- LaunchDaemons
|           `-- org.cups.cupsd.plist
|-- private
|   |-- etc
|   |   |-- cups
|   |   |   |-- cupsd.conf
|   |   |   |-- cupsd.conf.default
|   |   |   |-- interfaces
|   |   |   |-- mime.convs
|   |   |   |-- mime.types
|   |   |   `-- ppd
|   |   |-- pam.d
|   |   |   `-- cups
|   |   `-- xinetd.d
|   |       `-- cups-lpd
|   `-- var
|       |-- log
|       |   `-- cups
|       |-- run
|       |   `-- cups
|       |       `-- certs
|       |-- spool
|       |   `-- cups
|       |       `-- tmp
|       `-- tmp
|           `-- cups
`-- usr
    |-- bin
    |   |-- cancel
    |   |-- cups-config
    |   |-- cupstestdsc
    |   |-- cupstestppd
    |   |-- lp
    |   |-- lpoptions
    |   |-- lppasswd
    |   |-- lpq
    |   |-- lpr
    |   |-- lprm
    |   `-- lpstat
    |-- include
    |   `-- cups
            省略
    |-- lib
    |   |-- libcups.2.dylib
    |   |-- libcups.a
    |   |-- libcups.dylib -> libcups.2.dylib
    |   |-- libcupsimage.2.dylib
    |   |-- libcupsimage.a
    |   |-- libcupsimage.dylib -> libcupsimage.2.dylib
    |   `-- php
    |       `-- extensions
    |           `-- no-debug-non-zts-20020429
    |               `-- phpcups.so
    |-- libexec
    |   `-- cups
    |       |-- backend
    |       |   |-- http -> ipp
    |       |   |-- ipp
    |       |   |-- lpd
    |       |   |-- pap
    |       |   |-- parallel
    |       |   |-- scsi
    |       |   |-- serial
    |       |   |-- snmp
    |       |   |-- socket
    |       |   `-- usb
    |       |-- cgi-bin
    |       |   |-- admin.cgi
    |       |   |-- classes.cgi
    |       |   |-- help.cgi
    |       |   |-- jobs.cgi
    |       |   `-- printers.cgi
    |       |-- daemon
    |       |   |-- cups-deviced
    |       |   |-- cups-driverd
    |       |   |-- cups-lpd
    |       |   `-- cups-polld
    |       |-- driver
    |       |-- filter
    |       |   |-- gziptoany
    |       |   |-- hpgltops
    |       |   |-- pstops
    |       |   |-- rastertodymo -> rastertolabel
    |       |   |-- rastertoepson
    |       |   |-- rastertohp
    |       |   |-- rastertolabel
    |       |   `-- texttops
    |       |-- monitor
    |       |   |-- bcp
    |       |   `-- tbcp
    |       `-- notifier
    |           |-- mailto
    |           `-- testnotify
    |-- sbin
    |   |-- accept
    |   |-- cupsaddsmb
    |   |-- cupsd
    |   |-- cupsdisable -> accept
    |   |-- cupsenable -> accept
    |   |-- lpadmin
    |   |-- lpc
    |   |-- lpinfo
    |   |-- lpmove
    |   `-- reject -> accept
    `-- share
        |-- cups
        |   |-- banners
                 省略
        |   |-- charmaps
                 省略
        |   |-- charsets
                 省略
        |   |-- data
                 省略
        |   |-- fonts
                 省略
        |   |-- model
        |   |   |-- deskjet.ppd
        |   |   |-- deskjet2.ppd
        |   |   |-- dymo.ppd
        |   |   |-- epson24.ppd
        |   |   |-- epson9.ppd
        |   |   |-- laserjet.ppd
        |   |   |-- okidat24.ppd
        |   |   |-- okidata9.ppd
        |   |   |-- stcolor.ppd
        |   |   |-- stcolor2.ppd
        |   |   |-- stphoto.ppd
        |   |   |-- stphoto2.ppd
        |   |   |-- zebra.ppd
        |   |   |-- zebraep1.ppd
        |   |   `-- zebraep2.ppd
        |   |-- profiles
        |   `-- templates
                 省略
        |       |-- es
                 省略
        |-- doc
        |   `-- cups
                 省略
        |-- locale
                 省略
        `-- man
                 省略

75 directories, 862 files

Webインターフェイス

1.2系になって、設定画面が大きく変わったことがわかります。以下は、ほんの一部。

サーバの設定画面とログ参照が追加されました。

EPSON PM-760C を、USBケーブルで接続すると、以下のように認識します。プリンタドライバは、GIMPです。
プリンタに対する設定も増えました。

テストページを印刷

「プリンタオプションの設定」ボタンをクリックして、用紙を A4 に設定して「テストページの印刷」ボタンをクリックすると、1.1系のテストページの外枠に寸法がついたテストページを印刷しました。

Windowsからネットワーク印刷

Windowsから、IPP , LPR , RAW で印刷してみます。
共通な設定として以下をやります。
  • Web設定の管理タブにある「このシステムに接続されている公開済みプリンタを共有。」をチェックして、「設定の変更」をクリックします。
  • Web設定のプリンタタブにある「デフォルトに設定」をクリックします。
  • mime を raw に対応させます。terminal を開いて、mime.convs を変更します。mime.types は最初から対応済み。変更したら、cupsd を HUP します。
    ibg4:~ kenz$ cd /etc/cups/
    ibg4:/etc/cups kenz$ tail mime.*     
    ==> mime.convs <==
    #
    # Uncomment the following filter to allow printing of arbitrary files
    # without the -oraw option.
    #
    
    #application/octet-stream       application/vnd.cups-raw        0       -
    
    #
    # End of "$Id: mime.convs 5402 2006-04-14 19:21:03Z mike $".
    #
    
    ==> mime.types <==
    # Raw print file support...
    #
    # Comment the following type to prevent raw file printing.
    #
    
    application/octet-stream
    
    #
    # End of "$Id: mime.types 5402 2006-04-14 19:21:03Z mike $".
    #
    ibg4:/etc/cups kenz$ 
    ibg4:/etc/cups kenz$ sudo vi mime.convs 
    ibg4:/etc/cups kenz$ tail mime.convs 
    #
    # Uncomment the following filter to allow printing of arbitrary files
    # without the -oraw option.
    #
    
    application/octet-stream        application/vnd.cups-raw        0       -
    
    #
    # End of "$Id: mime.convs 5402 2006-04-14 19:21:03Z mike $".
    #
    ibg4:/etc/cups kenz$ 
    ibg4:/etc/cups kenz$ ps -ax | grep cupsd
      456  ??  Ss     0:01.30 /usr/sbin/cupsd -l
      498  p1  S+     0:00.01 grep cupsd
    ibg4:/etc/cups kenz$ sudo kill -HUP 456
    ibg4:/etc/cups kenz$ 
    
この状態で、Windows2000からIPP印刷可能です。

次に、LPR印刷。

cups-lpd は、MacOSX 10.4 から LaunchDaemons で動かしているのですが、 CUPS 1.2.1 は、xinetd から動かすようになっているようです。なので、 xinetd の cups-lpd を止めて、LaunchDaemons から動くようにします。

ibg4:/etc/cups kenz$ cd /System/Library/LaunchDaemons/
ibg4:/System/Library/LaunchDaemons kenz$ ls
bootps.plist                            finger.plist
com.apple.KernelEventAgent.plist        ftp.plist
com.apple.atrun.plist                   login.plist
com.apple.mDNSResponder.plist           nmbd.plist
com.apple.nibindd.plist                 ntalk.plist
com.apple.periodic-daily.plist          org.cups.cupsd.plist
com.apple.periodic-monthly.plist        org.isc.named.plist
com.apple.periodic-weekly.plist         org.postfix.master.plist
com.apple.portmap.plist                 org.xinetd.xinetd.plist
com.apple.syslogd.plist                 printer.plist
com.apple.xgridagentd.plist             shell.plist
com.apple.xgridcontrollerd.plist        smbd.plist
com.vix.cron.plist                      ssh.plist
comsat.plist                            swat.plist
eppc.plist                              telnet.plist
exec.plist                              tftp.plist
ibg4:/System/Library/LaunchDaemons kenz$ 
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl list
com.apple.KernelEventAgent
com.apple.mDNSResponder
com.apple.nibindd
com.apple.periodic-daily
com.apple.periodic-monthly
com.apple.periodic-weekly
com.apple.portmap
com.apple.syslogd
com.vix.cron
org.postfix.master
org.xinetd.xinetd
org.cups.cupsd
ibg4:/System/Library/LaunchDaemons kenz$ 
LaunchDaemons に printer.plist はありますが、動いていません。 代わりに、xinetd の方が有効になっています。

xinetd の cups-lpd を削除します。

ibg4:/etc/cups kenz$ cd /etc/xinetd.d/
ibg4:/etc/xinetd.d kenz$ ls -la
total 8
drwxr-xr-x    3 root  wheel   102 Jun 18 09:53 .
drwxr-xr-x   85 root  wheel  2890 Jun 18 09:16 ..
-rw-r--r--    1 root  wheel   206 May 23 04:17 cups-lpd
ibg4:/etc/xinetd.d kenz$ 
ibg4:/etc/xinetd.d kenz$ sudo rm -f cups-lpd 
ibg4:/etc/xinetd.d kenz$ ls
ibg4:/etc/xinetd.d kenz$ 
ibg4:/etc/xinetd.d kenz$ ps -ax | grep xinet 
  344  ??  Ss     0:00.04 xinetd -dontfork -stayalive -inetd_compat -pidfile /va
  525  p1  R+     0:00.01 grep xinet
ibg4:/etc/xinetd.d kenz$ sudo kill -HUP 344
これで xinetd からの cups-lpd が止まります。

次に LaunchDaemons の方を起動させます。

ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl load -w /System/Library/LaunchDaemons/printer.plist 
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl listcom.apple.KernelEventAgent
com.apple.mDNSResponder
com.apple.nibindd
com.apple.periodic-daily
com.apple.periodic-monthly
com.apple.periodic-weekly
com.apple.portmap
com.apple.syslogd
com.vix.cron
org.postfix.master
org.xinetd.xinetd
org.cups.cupsd
com.apple.cups-lpd
ibg4:/System/Library/LaunchDaemons kenz$ 
これで 515/TCP が開きます。いづれかのプリンタがデフォルトのプリンタになっていないと印刷できません。

同じように、RAW(JetDirect) も設定します。

ibg4:/System/Library/LaunchDaemons kenz$ cat jetdirect.plist 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Disabled</key>
        <true/>
        <key>Label</key>
        <string>com.apple.jetdirect</string>
        <key>Program</key>
        <string>/usr/bin/lpr</string>
        <key>ProgramArguments</key>
        <array>
                <string>lpr</string>
        </array>
        <key>Sockets</key>
        <dict>
                <key>Listeners</key>
                <dict>
                        <key>SockServiceName</key>
                        <integer>9100</integer>
                        <key>SockType</key>
                        <string>stream</string>
                </dict>
        </dict>
        <key>inetdCompatibility</key>
        <dict>
                <key>Wait</key>
                <false/>
        </dict>
</dict>
</plist>
ibg4:/System/Library/LaunchDaemons kenz$ 
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl load -w /System/Library/LaunchDaemons/jetdirect.plist
ibg4:/System/Library/LaunchDaemons kenz$ sudo launchctl list | grep -i jetdirect
com.apple.jetdirect
ibg4:/System/Library/LaunchDaemons kenz$ 
これで、RAW印刷できます。

CUPS 1.1系のプリンタドライバを使ってみる

EPSON PM-760Cのプリンタドライバは、CUPSパッケージ内の GIMP でしたので、 Canon iP4100 のプリンタドライバをダウンロードしてきてインストールしました。 問題なく印刷できるようです。


戻る



(C)1999 - 2006 Kenji Ito All rights reserved.