I managed to make it run with ethernet network. I used this
link.
For the PS to Canon IJ filter
You must use here "Ports jail" konsole :
** ls /usr/ports/print | grep cups etc …
These ports are already installed on PC-BSD 8.1
print/cups
emulators/linux_base-fc4
graphics/linux-jpeg
graphics/linux-png
graphics/linux-tiff
archivers/rpm2cpio
For compiling the Canon CUPS filter
With "Ports jail" we see these ports are also already installed :
devel/autotools
devel/gmake
shells/bash
Read /usr/ports/print/cups-base/pkg-message, and set some necessary settings.
I do nothing here with pc-bsd 8.1
Set the following lines to /etc/rc.conf :
It is already good : Nothing to do
linux_enable="YES"
cupsd_enable="YES"
Download the IJ Printer Driver mp640series for Linux
The following two archives are required :
cnijfilter-mp640series-3.20-1-i386-rpm.tar.gz
cnijfilter-source-3.20-1.tar.gz
I do not download theses archives for the scanner, since I succeed without them (see later)
scangearmp-mp640series-1.40-1-i386-rpm.tar.gz
scangearmp-source-1.40-1.tar.gz
These archives are available at the following sites:
Canon Australia - Drivers
http://www.canon.com.au/drivers/ (I found my archives here)
Canon Singapore - Support & Download Search
http://support-asia.canon-asia.com/
Canon in Japan - "Software Download - Other OSes" (in Japanese)
http://cweb.canon.jp/drv-upd/bj/other.html#linux
I move these archives in /MyPath/rpmLinux
I make an other folder : /MyPath/mp640
Of course we could do without this last folder mp640 ...
Installing the binary package for mp640
Install
I clic (or double-clic)on these two "cnijfilter-*.tar.gz" archives and I have now two folders "cnijfilter-mp640series-3.20-1-i386-rpm" and "cnijfilter-source-3.20-1"
I open the konsole (shell)
$ cd /MyPath/mp640 # working directory
$ rpm2cpio ../rpmLinux/cnijfilter-mp640series-3.20-1-i386-rpm/packages/cnijfilter-mp640series-3.20-1.i386.rpm | cpio -ivd
This give a /MyPath/mp640/usr folder
$ su
Password:
# cp -Ri ./usr /compat/linux/
# /compat/linux/sbin/ldconfig -r /compat/linux
Compiling the Canon CUPS filter, and a printing test
Compile
Extract the common source archive, and apply a patch:
ctrl-d to quit root rights
With shell konsole we are in /MyPath/mp640
$ mkdir common
Download this following file in "common" folder :
http://homepage2.nifty.com/dumb_show...0-freebsd.diff
and rename cnijfilter-common-2.80-freebsd.diff with the new name cnijfilter-source-3.20-1.diff. Edit this file and substitute "cnijfilter-common-2.80" string by "cnijfilter-source-3.20-1"
copy /MyPath/rpmLinux/cnijfilter-source-3.20-1 in /MyPath/mp640/common
Then compile and install.
$ cd common
$ patch < ./cnijfilter-source-3.20-1.diff
I have something like this :
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- ./cnijfilter-source-3.20-1/pstocanonij/filter/Makefile.am.orig Thu May 10 15:28:03 2007
|+++ ./cnijfilter-source-3.20-1/pstocanonij/filter/Makefile.am Wed Jan 2 22:35:11 2008
etc ..
Now use "Ports jail" konsole
% cd /MyPath/mp640/common/cnijfilter-source-3.20-1/libs
% ./autogen.sh
% gmake
% cd ../pstocanonij
% ./autogen.sh
% gmake
% cd ../
Now use the “standard" konsole
% su
Password:
# cd /MyPath/mp640/common/cnijfilter-source-3.20-1
# cp -i pstocanonij/filter/pstocanonij /usr/local/libexec/cups/filter/
# cp -i ppd/*.ppd /usr/local/share/cups/model/
Register the printer. (super user)
# /usr/local/etc/rc.d/cupsd restart
The graphical menu sytemsettings > printer allows to setup a new printer : choose lpd/lpr. I gave the ip adress of my printer mp640 and the ppd file /MyPath/mp640/common/cnijfilter-source-3.20-1/ppd/canonmp640.ppd
Visit
http://localhost:631/ with a web browser, and click "Printers" -> "Print Test Page".
Now the scanner
(super user) In file /usr/local/etc/sane.d/pixma.conf I add bjnp://192.168.1.25 which is my MP640 device address.
% scanimage -L
device `pixma:MP640_192.168.1.25' is a CANON Canon PIXMA MP640 multi-function peripheral
The frontend Xsane doesn't find the scanner ! But with skanlite it is good !!