この半年ほどデスクトップ用途で FMV-BIBLO NB8/90DR というノート PC 上で Debian GNU/Linux 3.1 (sarge) を動かしています。
今週末の空いた時間を利用して、このマシンに USB で接続した Canon PIXUS iP3100 で印刷できるように設定しました。
マシン自体の発売が2001年10月と比較的古いのに対し、PIXUS は2004年10月発売と比較的新しいので、1つの事例として参考になるかと思い以下に手順を記載します。
実際の作業に計4時間程度かかったことに注意してください。
まず USB 接続が有効になっているかどうかを確認します。そのためには
$ lspci -v
というコマンドを実行します。出力される内容から、USB 接続に必要なモジュールとして USB-OHCI が必要になることが分かります。
しかしデフォルトの状態ではこのモジュールは組み込まれていません。
モジュールを組み込んで USB 接続を有効にするためにカーネルを再コンパイルします。
まず次のようにしてパッケージになっているソースを取得します:
$ sudo apt-get install kernel-source-2.6.8
これでソースが /usr/src 以下に kernel-source-2.6.8.tar.bz2 というファイルとして取得できます。別途モジュールのソースなどは特に必要ありません。
コンパイル作業に利用するコマンドをパッケージとして取得します:
$ sudo apt-get install fakeroot kernel-package
以下 root 権限で作業します:
# cd /usr/src
# tar jxf kernel-source-2.6.8.tar.bz2
# cd kernel-source-2.6.8
# make menuconfig
ここで適切なモジュールを選択することになります。たくさんのオプションについて判断を求められますが、結果として /usr/src/kernel-source-2.6.8/.config が次のような行を含むようにします:
# grep 'CONFIG_USB\(=\|_OHCI\)' .config
CONFIG_USB=m
CONFIG_USB_OHCI_HCD=m
そしてコンパイルを行います。途中、重複するバージョンのカーネルイメージや initrd に関する警告が出るかもしれません。revision として任意で biblo.0.0 を指定しています。
# make-kpkg clean
# fakeroot make-kpkg --initrd --revision=biblo.0.0 kernel_image
# dpkg -i ../kernel-image-2.6.8_biblo.0.0_i386.deb
ここまでで /boot 以下に新規に System.map-2.6.8、config-2.6.8、initrd-2.6.8、vmlinuz-2.6.8 ができており、/boot/grub/menu.lst が更新されていることを確認します。
新しいカーネルで再起動します。起動時に kernel-2.6.8 が選択されているかどうか確認し、されていない場合は明示的に指定してください。
詳細な起動メッセージを後から確認するためには
$ dmesg
を利用します。
素晴らしいことに PIXUS のドライバーが Debian パッケージとして公開されています:
上のサイトの説明に従って apt の source.list を更新します。そして
$ sudo apt-get install libcnbj-2.5 bjfilter-2.5 pstocanonbj
を実行するとインストールできます。
cupsd が動作していれば、ブラウザから http://localhost:631/ というアドレスでプリンタの設定を行うことができます。電源の入っている PIXUS が USB 接続されていれば、ローカルプリンタとして PIXUS が選択肢に出てくるでしょう。
最後に実際の印刷を試すために、A4 のテストページを印刷します。各プリンタのページからテストページの印刷が可能です。
手順は以上です。非常に参考になったページを以下に挙げます: