2009年1月23日金曜日

Ubuntu8.04 amd64版にCanon MP600 Printerドライバーとユーティリティーを入れる

32bitバージョンのドライバーとユーティリティーを入れるわけですから、素直には行きませんでした。
おさらい。
CanonのドライバーダウンロードページからMP600用の共通パッケージと機種別パッケージをダウンロードしますが、両方共にrpmパッケージです。
僕の場合は、cnijfilter-common-2.70-1.i386.rpm cnijfilter-mp600-2.70-2.i386.rpmの二つでした。
まず、alienパッケージとプリンタードライバーを動作させるために必要なライブラリーをインストールしておきます。
gnome-terminalから、

$> sudo apt-get install alien libxml1 libpng12-0 libpng12-dev libgtk1.2 libgtk1.2-common

そしてCanonからダウンロードしたrpmパッケージに変更を加えるための作業ディレクトリーを作成して、そこへファイルを移動します。
(以下の作業を行わないと、alienでパッケージを作成する時に「アーキテクチャーが違うぞ!」と怒られます。)
僕は自分のホームディレクトリーの中にworkと云うディレクトリーを作成して、そこで作業を進めました。
まずCanonからダウンロードしてきたrpmパッケージを展開します。
gnome-terminalから

$> sudo alien -g --scripts cnijfilter-common-2.70-1.i386.rpm

展開されて出来たディレクトリー cnijfilter-common-2.70/debian の中に有る control と云うファイルを編集します。
管理者権限でgeditなりを起動してcontrolを読み込みます。
gnome-terminalから

$> cd cnijfilter-common-2.70
$> sudo gedit debian/control

7行目に有る Architecture: i386 を Architecture: amd64 に変更して上書き保存します。
cnijfilter-common-2.70ディレクトリーに居ることを前提として、そのままgnome-terminalから

$> sudo debian/rules binary

を実行してパッケージ作成。
直上のディレクトリーに cnijfilter-common-2.70-2_amd64.deb が出来上がっています。
cnijfilter-mp600-2.70-2.i386.rpm に対しても同様の作業を行います。
ここを参照。
出来上がった二つの deb パッケージをインストールします。

$> cd ../
$> sudo dpkg -i *.deb

すると、/usr/share/cups/model/cononmp600.ppd と云うファイルが出来上がります。
解像度や印刷の品質が設定出来るように、このファイルを編集します。
尚、この時点でPCに接続されているプリンターの電源を入れると、新しいプリンターが登録される筈です。
次に、プリンターユーティリティーの為に各ライブラリーへのシンボリックリンクも設定しておきます。
ここまでの作業が終わったら、試しにgnome-terminalからプリンターユーティリティーを起動してみます。

$> cngpij -P MP600

すると、gnome-terminal画面に以下のようなエラーメッセージが表示されました。
printuimp600: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory
まずこのエラーから ctrl+c で抜けだします。
エラーメッセージの内容を google 先生の助けを借りて検索してみると、こちらのページに辿り着きました。
つまり、最初に alien と一緒にインストールした libxml1 libpng12-0 libpng12-dev libgtk1.2 libgtk1.2-common は全て64bitライブラリーだから、32bitアプリケーションには何の役にも立たないよ。
と云うことらしいのです。
では、先ほどのUbuntu Forumsに書いてある内容を実行します。
まずUbuntu8.04 i386版の libglib1.2ldbl_1.2.10-19build1_i386.deb libgtk1.2_1.2.10-18_i386.deb libxml1_1.8.17-14.1_i386.deb (何回かエラーメッセージを出して一つづつ確認していったら、これらのライブラリーを揃えれば良いと思えました。)をこちらのページの旧式ライブラリーやライブラリーのページで検索してダウンロードします。(バージョンナンバーは、この時点での最新ナンバーです。)
これらのライブラリーパッケージを展開するために、自分のホームディレクトリーの中にライブラリー専用のディレクトリーを作り、そこにライブラリーファイルを展開します。
僕はライブラリー専用のディレクトリーを canonlibs と云う名前で作成しました。
パッケージの展開は書庫マネージャーで出来ますが、gnome-terminalから以下の方法でも出来ます。
ライブラリーや実行ファイルその物(data.tar.gz)を展開するには、

$> dpkg-deb -x パッケージファイル名.deb

コントロールファイル(control.tar.gz)を展開するには、

$> dpkg-deb -e パッケージファイル名.deb

と、すれば良いようです。
次に、以下の内容のテキストを printui.sh と云う名前でホームディレクトリーに保存します。
===== 次の行から =====
#!/bin/bash

canon_dir=/自分のホームディレクトリーの絶対パス/canonlibs
export LD_LIBRARY_PATH=$canon_dir:$LD_LIBRARY_PATH
exec cngpij -P MP600
===== 上の行まで =====
「自分のホームディレクトリーの絶対パス」は、例えばユーザー名がtigerならば、/home/tiger になります。
そして、このファイルにプログラムとしての実行権限を与えます。
gnome-terminalからなら、

$> chmod +x ./printui.sh

ファイルマネージャー上でなら、ファイルを右クリックしたメニューの中のプロパティーと云う項目から行えます。
以上で、Canon純正のプリンターユーティリティーを起動する準備は整いました。
gnome-terminalから、

$> ~/printui.sh

古めかしいウィンドウが起動した?

** Scangearユーティリティーは今回はインストールしていません。

0 件のコメント: