mieki256's diary



2023/01/30(月) [n年前の日記]

#1 [debian][linux] Linux用のプリンタドライバ gutenprint について調べてる

Linux Mint 21.1、もしくは、Debian Linux 11 bullseye からプリンタ印刷する件について、まだちょっと調べてる。Windows10 x64 22H2 に USB接続された Canon iP4600 に対して、samba 経由(smb://)で印刷させると色がおかしくなるのだけれど、解決方法は無いのかなと…。

gutenprintは色がおかしくなるのがデフォルトらしい :

Canonのサイトで配布されている iP4600 の Linux用ドライバは Ubuntu 8.04 用なので、Linux Mint 21.1 や Debian 11 bullseye はOS側が新し過ぎてインストールすることができない。

件のドライバは、libcupsys2、libpng12-0、libtiff4 というパッケージに依存しているのだけど、それらのパッケージは昔は存在してたものの今のOSバージョンでは消滅しているので、ドライバインストール時に依存関係でエラーが出てしまう。

ちなみに、libcupsys2 は libcups2 に統合されたそうだし、libpng12-0 はおそらく libpng16-16 になってるし、libtiff4 は libtiff5 か libtiff6 になってるのだと思うけど…。たぶん。

公式ドライバはインストールできないので、今回は gutenprint (printer-driver-gutenprint) というドライバを入れて iP4600 から印刷しようとしている状態で…。

_Gutenprint Features

この gutenprint、膨大な数のプリンタに対応してる。スゴイ。

_Gutenprint Supported Printers

しかし、gutenprint で印刷すると、色がおかしくなる…。全体的に色が黒くなるというか…。

ググった感じでは、iP4600 に限らず、他のプリンタでも色がおかしくなることが多いらしい。

_1118446 - wrong colour, instead of turquoise printing blue
_#787709 - cups: wrong default "Color Model" setting for Canon Pixma MG2250 - Debian Bug report logs
_Bug #1181884 “Canon MG6200 printer driver has incorrect default ...” : Bugs : cups package : Ubuntu
_Gutenprint - Top Quality Printer Drivers / Bugs / #688 Wrong default colour model for Canon PIXMA MG5350 (and probably/apparently other PIXMAs)
_Gutenprint - Top Quality Printer Drivers / Bugs / #652 Wrong default color model for printer
_drivers - Canon printer color printing too dark - Ask Ubuntu
_[SOLVED] Gutenprint Canon iP4600 driver will not print CMYK

これらのやり取りを眺めると、プリンタのプロパティで Color Model を RGB Color から CMYK に変えたらそれらしい色になったという報告が多数なのだけど…。自分の環境、Linux Mint 21.1 → Windows10 x64 22H2 + Canon iP4600 では、Color Model を CMYK にするとモノクロ印刷になってしまう…。

もしかして、Windows10 に対して samba経由で印刷データを送っているからそういう不具合が起きるのだろうか…? Linux機とiP4600を直接USB接続したら結果が変わってきたりするのかな。それともそのあたりは関係ないのかな。

何にせよ、gutenprint を使うと色がおかしくなるので公式ドライバをインストールできるならそっちを使ったほうがいい、と思っておいたほうがいいのだろうなと。まあ、自分の環境では公式ドライバをインストールできないのだけど。ギャフン。

Debian + gutenprintはCMYKが使えた :

Linux Mint 21.1 上では、Color Model を RGB Color から CMYK にしても白黒印刷にしかならなかったのだけど。Debian 11 bullseye上で試してみたら違う結果になった。白黒印刷にはならず、それらしい色が出てくれた。

Linux Mint 21.1 も Debian系(Ubuntu系)ディストリのはずだけど、Debian と Linux Mint で動作が変わってくるのか…。何故。

テスト印刷結果には、以下が記述されてる。
  • Driver: STP00115.PPD
  • Driver Version: 5.3.3
  • Make and Model: Canon PIXMA iP4600 - CUPS+Gutenprint v5.3.3

また、Debian 上で動作確認した時は、CMYK に変更した後、いきなりテスト印刷しないで、一旦OSを再起動してからテスト印刷してみた。Linux Mint で動作確認した際は、設定変更後にいきなりテスト印刷してしまったのだけど…。そこらへんも関係してたりするのだろうか。それとも無関係なのだろうか。

一応、テスト印刷の結果をスマホで撮影してみた。

debian11_gutenprint_ip4600.jpg

Color Model: RGB Color と CMYK で、全然色が違う。

ただ、前述のリンク先のやり取りによると、CMYK にした場合も正確な色が出ているわけではないらしい。それでもまあ、RGB Color と比べたら全然見れる色になってる気もする。

インストールしてあるパッケージのバージョンも一応メモ。
  • printer-driver-gutenprint : 5.3.3-5
  • gutenprint-locales : 5.3.3-5
  • samba : 2:4.13.13+dfsg-1~deb11u5
  • cups : 2.3.3op2-3+deb11u2

依存パッケージをどうにかできないか少し調べた :

Canon iP4600 の公式ドライバ、cnijfilter-common_3.00-1_i386.deb と cnijfilter-ip4600series_3.00-1_i386.deb は、前述したとおり、libcupsys2、libpng12-0、libtiff4 というパッケージに依存してるので、現行のDebian系OSではインストールできない。そのあたりどうにかできないのかなと少し調べてみた。

まず、libcupsys2 は libcups2 に統合されたらしいので、そこはどうにかなりそう。
sudo apt install libcups2 libcups2-dev

dpkg に --ignore-depends=xxxx オプションを渡せば、そのパッケージについては依存関係の問題が出ても無視する、という指定になるそうで…。
sudo dpkg -i --ignore-depends=libcupsys2 --force-architecture cnijfilter-common_3.00-1_i386.deb
sudo dpkg -i --ignore-depends=libcupsys2 --force-architecture cnijfilter-ip4600series_3.00-1_i386.deb

問題は、libpng12-0 と libtiff4 だなと…。

libpng12-0 は .deb が存在するらしいので、もしかするとソレをDLしてインストールすればどうにかなるのかもしれない。試してないけど。

_Index of /debian/pool/main/libp/libpng
_Debian buster - libpng12 - Debian User Forums
_ apt - Cannot Install libpng12-0 on Debian - Unix & Linux Stack Exchange
_ubuntu 20.04 での Canon MG6130 のセットアップ - Qiita

ただ、Debian 7 wheezy の .deb ならインストールできたけど、Debian 9 stretch の .deb は上手く行かなかったという話も出ているなと…。

libtiff4 は…これはちょっと分からない。入手先が見つからなかった。

_Install Scribus on Debian Jessie / Sid [Error libtiff4] | From Linux

ダミーパッケージを作って依存関係を誤魔化すとか、.deb を展開して依存関係の記述を書き換えてしまう方法もあるようだけど…。

_libtiff4の依存関係エラーを回避する: ガンダムモデル館
_xltHelpCard - print-driver-canon

ソースからビルドできないか :

Canonのサイトでは、公式ドライバのソースファイル、cnijfilter-common-3.00-1.tar.gz も配布されているので、知識のある人ならビルドできるのかもしれない。

解凍してみたら、中には Makefile が入ってた。引用してみるけど…。
#dirs = libs cngpij cngpijmon ppd pstocanonij 
dirs = libs cngpij pstocanonij backend

scripts=for dir in $(dirs); do\
			(cd $$dir; make $$target)|| exit 1;\
		done

all :
	$(scripts)

clean :
	target=clean; $(scripts)

install :
	target=install; $(scripts)

libs, cngpij, pstocanonij, backend というディレクトリに入って make を実行する処理内容のようだなと。

ただ、それらのディレクトリの中には、Makefile は存在しない。代わりに、INSTALL, autogen.sh, configure.in, Makefile.am といったファイルが入ってる。

INSTALL の中を覗くと、そのディレクトリ内でのビルド手順がメモしてあるように見える。例えば、cngpij/INSTALL には、以下が記述されていた。
To build and install cngpij:

  1) Building misc libraries.
        cd ../libs
        ./autogen.sh
        make
        cd ../cngpij


  2) Building "cngpij".
        ./autogen.sh
        make
        make install

     Appendix:
        * You can also set the following options.
           --prefix

           --enable-progpath
                printui(ex.printuiip4600)

     Example:
           ./autogen.sh --prefix=/usr/local --enable-progpath=/usr/local/bin
           make
           make install

要するに、./autogen.sh を実行すると Makefile が生成されるのだろうなと…。Makefile ができてしまえば、make を実行することもできるはず。

ディレクトリによっては、ip4600 等の型番名を指定して ./autogen.sh を実行する場合もあるっぽい。例えば cnijfilter/INSTALL にはそのような記述があった。

そんなわけで、この手のビルド手順に慣れてる人なら、たぶんドライバをビルドできてしまうのだろうなと…。

ちなみに、libs/ に入って ./autoge.sh を実行したら、autoconf, libtool, automake が見つからないと言われた。また、この手のビルドをするために、build-essential も必要だろうし、以下のパッケージのインストールも必要ということかなと…。
sudo apt install build-essential autoconf libtool libtool-bin automake

余談。 :

親父さんが使ってる複合機、Canon MG3630 の公式ドライバなら、Linux Mint 21.1、Debian 11 bullseye、どちらもすんなりとインストールできたし、テスト印刷してみたら色も正常に出てるっぽいので、どうしても Linux から印刷したい時は、そっちのプリンタを使わせてもらえば済んでしまうのだけど…。

そもそも、何かを印刷したい時は Windows10機から印刷するので、Linuxから印刷したい場面は皆無なのだけど…。

Canon iP4600 は、Windows10用ドライバが無くて、Windows8用ドライバをインストールしているぐらいに古いプリンタなので、何か不具合が発生しても、それはまあ仕方ない気もしているのだけど…。

そんなわけで、仮にiP4600から印刷できなかったとしても、途方に暮れてしまう状況ではないのですが。

とりあえず、条件さえ整っていれば Linux からプリンタ印刷するのは全然難しくないのだなと分かってきたので、今回はこれで良しとする。公式ドライバをインストールする方法を見つけられなかったあたりはちょっと残念だけど。

以上、1 日分です。

過去ログ表示

Prev - 2023/01 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project