渡辺一寛です。 スキャナ・プリンタ複合機の Canon PIXUS MP810 の動作報告です。
先に動作状況を書くと、プリンタは他機種用プリントフィルタを流用して動作 し、メモリカードスロットは認識状況からすると恐らく動作可能、スキャナは 対応ソフトウェアが開発中で現在動作せず、といったところです。なおテスト は 6.2-RELEASE で行いました。 USB デバイス動作報告としては、これとは別に投稿します。 1. プリンタ 次のように認識されます。 | ulpt0: Canon MP810, rev 2.00/1.04, addr 3, iclass 255/0 | ulpt0: using bi-directional mode キヤノンからは MP810 に正式に対応したプリントフィルタがまだ提供されて いませんが、PIXUS MP600 用のフィルタで動作しました。ただし厳密にはプリ ンタヘッドのノズル数が異なるので、何らかの不具合が出る可能性はあるかも しれません。 # PIXUS iP4200 用でも動くらしいです。 以下はその導入手順ですが、基本的には Canon PIXUS iP3100 を CUPS 経由で使う http://tabochan.f2g.net/pixus.html と同じ (有用な情報に感謝します!) なので、なるべく簡潔に書きます。 1.1. 準備 以下のソフトウェアを ports からインストールしておきます (依存関係で他に色々インストールされますが省略)。 print/cups japanese/ghostscript-gnu-jpnfont emulators/linux_base-fc4 graphics/linux-jpeg graphics/linux-png graphics/linux-tiff archivers/rpm2cpio また CUPS 用フィルタのコンパイルのために、以下のソフトウェアも ports からインストールしておきます。 devel/autotools devel/gmake shells/bash そして /usr/ports/print/cups-base/pkg-message に従って設定し、 さらに /etc/rc.conf に以下の 2 行を追加しておきます。 linux_enable="YES" cupsd_enable="YES" 1.2. プリントフィルタのインストールと動作テスト 次に、 キヤノン:サポート|ソフトウエアダウンロード http://cweb.canon.jp/drv-upd/bj/other.html#linux にある「IJ Printer Driver Ver.2.70 for Linux」へのリンクを辿り、 以下のファイルをダウンロードします。 * 「全機種共通で使用するファイル」から「ソースファイル」 * 「PIXUS MP600 用ファイル」から「PIXUS MP600 用機種別パッケージ」と、 「PIXUS MP600 用操作説明書 (HTML)」 * 「FAQ」 上記「PIXUS MP600 用機種別パッケージ」を展開し、/compat/linux 以下に コピーします。 $ mkdir mp600 # 作業ディレクトリ。 $ cd mp600 $ rpm2cpio /PATH/TO/cnijfilter-mp600-2.70-1.i386.rpm | cpio -ivd $ find ./usr -type d | xargs chmod 755 # 何故か 700 になっているので。 $ su Password: # cp -Ri ./usr /compat/linux/ ここでテスト印刷をします。印刷用の PostScript ファイルが必要ですが、 私は適当な日本語テキストファイルを ports/japanese/a2ps で PostScript 形式に変換して使用しました。 $ su # /dev/ulpt0 の書き込み権限が必要。 Password: # a2ps-j -nh -nt -ns -p nihongo.txt | \ gs -q -r600 -dSAFER -dNOPAUSE -dBATCH -sDEVICE=ppmraw -sOutputFile=- - | \ /compat/linux/usr/local/bin/cifmp600 --imageres 600 --media plain > \ /dev/ulpt0 1.3. CUPS 用フィルタのインストールとテスト 次は CUPS 用フィルタのコンパイルです。まず前述の「ソースファイル」を 展開し、以下のパッチを当てます。 http://homepage2.nifty.com/dumb_show/unix/cnijfilter-common-2.70-freebsd.diff 次に必要なものだけをコンパイルします。 $ mkdir common # 作業ディレクトリ。 $ cd common $ rpm2cpio /PATH/TO/cnijfilter-common-2.70-1.src.rpm | cpio -ivd $ tar zxvf cnijfilter-common-2.70-1.tar.gz $ patch < /PATH/TO/cnijfilter-common-2.70-freebsd.diff $ cd cnijfilter-common-2.70/libs $ ./autogen.sh $ gmake $ cd ../pstocanonij $ ./autogen.sh $ gmake 必要なファイルだけをコピーします。 $ su Password: # cd common # cd cnijfilter-common-2.70 # cp -i pstocanonij/filter/pstocanonij /usr/local/libexec/cups/filter/ # cp -i ppd/*.ppd /usr/local/share/cups/model/ ここで cupsd を再起動 (/usr/local/etc/rc.d/cupsd restart) した後、 プリンタを登録します。 $ su Password: # lpadmin -p PIXUSMP600 -m canonmp600.ppd -v usb:/dev/ulpt0 -E 続いて http://localhost:631/ に Web ブラウザでアクセスし、テストページ の印刷が行えることを確認できれば成功です。 2. メモリカードスロット 以下のように umass デバイスとして認識されており、恐らく動作するとは思 いますが、未確認です。 | umass0: Canon MP810, rev 2.00/1.04, addr 3 | da0 at umass-sim0 bus 0 target 0 lun 0 | da0: <Canon MP810Storage 0104> Removable Direct Access SCSI-2 device | da0: 1.000MB/s transfers | da0: Attempt to query device size failed: NOT READY, Medium not present 3. スキャナ uscanner(4) のソースに MP810 の ID を追加します。 --- sys/dev/usb/usbdevs.releng62 Tue Nov 14 21:54:38 2006 +++ sys/dev/usb/usbdevs Wed Aug 29 16:32:01 2007 @@ -737,6 +737,7 @@ product CANON N676U 0x220d CanoScan N676U product CANON N1240U 0x220e CanoScan N1240U product CANON LIDE25 0x2220 CanoScan LIDE 25 +product CANON MP810 0x171a Canon PIXUS MP810 product CANON S10 0x3041 PowerShot S10 product CANON S100 0x3045 PowerShot S100 product CANON S200 0x3065 PowerShot S200 --- sys/dev/usb/uscanner.c.releng62 Tue Nov 14 21:54:38 2006 +++ sys/dev/usb/uscanner.c Thu Aug 30 17:52:47 2007 @@ -128,6 +128,7 @@ {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_D660U }, 0 }, {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N1240U }, 0 }, {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_LIDE25 }, 0 }, + {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_MP810 }, 0 }, /* Kye */ {{ USB_VENDOR_KYE, USB_PRODUCT_KYE_VIVIDPRO }, 0 }, これによって uscanner デバイスとして認識することができます。 | uscanner0: Canon MP810, rev 2.00/1.04, addr 4 ただしこのようにすると、MP810 のプリンタとメモリカードスロットが認識さ れなくなります。これは uscanner(4) の制限によるものだと思うのですが、 詳細はよくわかりません。同じ現象はエプソンの複合機でも起こるようです。 usb/92462: [patch] Add support for Epson CX3500/3600/3650 scanners. http://www.freebsd.org/cgi/query-pr.cgi?pr=92462 そして SANE (ports/graphics/sane, http://www.sane-project.org/) の開発 版に、MP810 を含む Canon MP シリーズに対応するライブラリが含まれている とのことなので試してみました。開発版は anonymous CVS またはデイリース ナップショットのどちらかで入手できます。 # 私が試した時 (2007-08-31) は、SANE バックエンドの lexmark # ライブラリがコンパイルできずに gmake が中断する状況でした。 # これは configure の引数 BACKENDS で lexmark ドライバ *以外* を # 指定することで回避しました (configure.in 参照)。 しかし残念ながら、スキャナは認識されるものの動作しません。MP810 の液晶 パネルを眺めていると、いったん「読み取っています」と表示するのですが、 すぐに「操作を中止しています」と表示 (メカは動かない) して中断するとい う状況です。上級機でスキャナ部分の仕様が似ている MP960 はまがりなりに も動作しているようなので期待したのですが。 # 各種メッセージとソースをちょろっと読んだ限りでは、 # スキャナから全然データがきていないようです。 以下はその pixma ライブラリの開発を行っている方の Web ページです。開発 に必要なドキュメントが全然無く、USB トラフィックをスニファで横取りした ものを解析しているそうです。 Scanner utility and SANE backend for Canon PIXMA MP series http://home.arcor.de/wittawat/pixma/ --- Watanabe Kazuhiro ([メールアドレス保護])