HowTo: Canon MP640 on LMDE AMD64

Archived topics about LMDE 1 and LMDE 2
Locked
GregE

HowTo: Canon MP640 on LMDE AMD64

Post by GregE »

I have a Canon MP640 Multifunction Inkjet working happily across my network, both printing and scanning, running under LMDE 64bit edition. For the 32bit version installation is simple - as root just run install.sh from the unzipped files. This basic procedure should work for all Canon drivers, which are only supplied as 32bit.

Firstly install 32bit support. Install the package ia32-libs through synaptic or apt-get

Secondly download the driver from the Asia or Europe Canon pages
cnijfilter-mp640series-3.20-1-i386-deb.tar.gz
It is not a simple deb, it uses an install script.

http://support-asia.canon-asia.com/cont ... 36602.html

After unzipping and untarring you end up with a folder called cnijfilter-mp640series-3.20-1-i386-deb

Now change into the folder and edit the file "install.sh" with you favourite text editor.

Look for this section and add "--force-architecture" as shown here (line 1354 in this version and printer)

C_FUNC_deb_install_process()
{
local c_fpath_pkg_name=$1

## result -> 0:Install process complete, 1:Install process depend error ##
C_FUNC_show_and_exec "sudo dpkg -iG --force-architecture $c_fpath_pkg_name"
if [ $? != 0 ]; then
return $C_ERR_CODE
fi

return 0
}

Save your changes.

Then from a terminal run "sudo ./install.sh" and follow the prompts. The install script will find the networked printer and install it in your system, set it up and make it the default if you want.

The scanner is supported directly by newer versions of Sane, so the Canon scanner program and driver are not necessary.

This printer has a very neat CD printing system, but as you would expect no Linux software. But despair not. The printer comes with a CD label copying function built into the printer. You can chuck a CD anywhere on the scanner surface and put in a blank CD and it will copy the label. To print a custom label just print your label to a sheet of paper, put it face down in the scanner and then use the CD Label Copy function to print. There is no need to specially position the label, the CD label copier is smart enough to work out what you want as long as there is a circular label somewhere on the scanner bed. A two step process for sure, but one that is fool proof.

Hopefully this will help someone.
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
dencar

Re: HowTo: Canon MP640 on LMDE AMD64

Post by dencar »

Thanks, GregE, just brilliant. You have helped solve just about the last issue I have using linux. I have switched from LMDE to Fedora 15 to use Gnome 3, but will be back if Clem decides to go with the flow.
GregE

Re: HowTo: Canon MP640 on LMDE AMD64

Post by GregE »

This fix will not work with 64bit Ubuntu 11.10 or Linuxmint 12 due to an insurmountable dependency problem with libpopt. So fair warning if you have an older Canon with 32bit drivers you will have to stick with 32bit OS. It still installs OK in LMDE 64bit, but for how much longer it is hard to tell. I think it is all to do with Multiarch, which in this case kills the 32bit driver rather than make it easy to install.

HoHum.
dencar

Re: HowTo: Canon MP640 on LMDE AMD64

Post by dencar »

I'm back and thanks again, GregE.
omarberg

Re: HowTo: Canon MP640 on LMDE AMD64

Post by omarberg »

Hi All

I have a problem with getting my Canon MP640 printer to work with linux mint 12, 64 bit. I am able to scan using xsane but my problem is not being able to print. I have installed the printer drivers successfully using --force-architecture and when I print I see that my printer starts processing but then stops. I get a error on my system when trying this and when I choose "Diagnose" to go to troubleshooting I get the message : Missing Printer Driver Printer MP640 requires the '/usr/lib/cups/filter/pstocanonij' program but it is not currently installed. Then when continuing with the diagnosis I am prompted to enable debugging to get logging of what is happening. Here is the Error log message that I get:

Error Message Log

D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 POST / HTTP/1.1
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdAuthorize: No authentication data provided.
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 1.1 Get-Jobs 1
D [05/Jan/2012:11:01:46 +0100] Get-Jobs ipp://localhost/printers/
D [05/Jan/2012:11:01:46 +0100] [Job 2] Loading attributes...
D [05/Jan/2012:11:01:46 +0100] [Job 3] Loading attributes...
D [05/Jan/2012:11:01:46 +0100] [Job 4] Loading attributes...
D [05/Jan/2012:11:01:46 +0100] [Job 5] Loading attributes...
D [05/Jan/2012:11:01:46 +0100] Returning IPP successful-ok for Get-Jobs (ipp://localhost/printers/) from localhost
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 POST / HTTP/1.1
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdAuthorize: No authentication data provided.
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 1.1 Get-Jobs 1
D [05/Jan/2012:11:01:46 +0100] Get-Jobs ipp://localhost/printers/
D [05/Jan/2012:11:01:46 +0100] [Job 1] Loading attributes...
D [05/Jan/2012:11:01:46 +0100] Returning IPP successful-ok for Get-Jobs (ipp://localhost/printers/) from localhost
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 GET /admin/conf/cupsd.conf HTTP/1.1
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdAuthorize: No authentication data provided.
D [05/Jan/2012:11:01:46 +0100] cupsdIsAuthorized: username=""
D [05/Jan/2012:11:01:46 +0100] cupsdSendHeader: 14 WWW-Authenticate: Basic realm="CUPS", trc="y"
D [05/Jan/2012:11:01:46 +0100] cupsdCloseClient: 14
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdAcceptClient: 14 from localhost (Domain)
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 GET /admin/conf/cupsd.conf HTTP/1.1
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdAuthorize: Authorized as omarberg using PeerCred
D [05/Jan/2012:11:01:46 +0100] cupsdIsAuthorized: username="omarberg"
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 GET /admin/conf/cupsd.conf HTTP/1.1
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdAuthorize: Authorized as omarberg using PeerCred
D [05/Jan/2012:11:01:46 +0100] cupsdIsAuthorized: username="omarberg"
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 GET /admin/conf/cupsd.conf HTTP/1.1
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdAuthorize: Authorized as omarberg using PeerCred
D [05/Jan/2012:11:01:46 +0100] cupsdIsAuthorized: username="omarberg"
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdReadClient: 14 PUT /admin/conf/cupsd.conf HTTP/1.1
D [05/Jan/2012:11:01:46 +0100] cupsdSetBusyState: newbusy="Active clients and dirty files", busy="Dirty files"
D [05/Jan/2012:11:01:46 +0100] cupsdAuthorize: Authorized as omarberg using PeerCred
D [05/Jan/2012:11:01:46 +0100] cupsdIsAuthorized: username="omarberg"
I [05/Jan/2012:11:01:46 +0100] Installing config file "/etc/cups/cupsd.conf"...
D [05/Jan/2012:11:01:47 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Active clients and dirty files"
D [05/Jan/2012:11:01:47 +0100] cupsdCloseClient: 14
D [05/Jan/2012:11:01:47 +0100] cupsdSetBusyState: newbusy="Dirty files", busy="Dirty files"
I [05/Jan/2012:11:01:47 +0100] Generating printcap /var/run/cups/printcap...
D [05/Jan/2012:11:01:47 +0100] cupsdSetBusyState: newbusy="Not busy", busy="Dirty files"
E [05/Jan/2012:11:01:47 +0100] Unknown directive JobPrivateAccess on line 88.
E [05/Jan/2012:11:01:47 +0100] Unknown directive JobPrivateValues on line 89.
E [05/Jan/2012:11:01:47 +0100] Unknown directive SubscriptionPrivateAccess on line 90.
E [05/Jan/2012:11:01:47 +0100] Unknown directive SubscriptionPrivateValues on line 91.
W [05/Jan/2012:11:01:47 +0100] failed to AddProfile: org.freedesktop.ColorManager.Failed:profile object path '/org/freedesktop/ColorManager/profiles/MP640LAN_Gray__' has already been added
W [05/Jan/2012:11:01:47 +0100] failed to AddProfile: org.freedesktop.ColorManager.Failed:profile object path '/org/freedesktop/ColorManager/profiles/MP640LAN_RGB__' has already been added
GregE

Re: HowTo: Canon MP640 on LMDE AMD64

Post by GregE »

I gave up on 64bit Ubuntu 11.10 and Mint 12. If you use the 32bit versions the driver installs and runs. For 64bit you must have ia32-libs installed, but I started to get dependency hell with the newest versions. I have it installed on 64bit LMDE and it works. I no longer have a 64bit Ubuntu based distro installed, but I suspect the move to multiarch is the killer.

If the install script runs and it installs without complaint then it should work. Sorry I cannot be of more help. I have installed my MP640 on 32bit Ubuntu 11.10 and 32bit Mint 12 and it worked fine.

You could try copying or symlinking the various Canon files between the usr/lib32 and usr/lib folders and see if that helps. You can identify the various files by using an archive manager to look at the structure inside of the debs. Having said that it never even looked like working for me.

The scanner works as it is using a FOSS Linux driver not a Canon driver.

The simple answer - run 32bit Mint 12, or chuck the printer. At least Canon now supply 64bit drivers for the new models.

EDIT: real desperation, install Mint 11, install driver and then do a dist-upgrade. A lot of work and it might not work.
Last edited by GregE on Fri Jan 06, 2012 8:16 am, edited 1 time in total.
GregE

Re: HowTo: Canon MP640 on LMDE AMD64

Post by GregE »

ps

you could also try FOSS linux drivers for other models and hope for a miracle. The scanner will work no matter what.

or

one other solution is to pay money and buy a Turboprint driver

Cost of replacement multifunction verses cost of Turboprint - not much in it these days.
dhimes

Re: HowTo: Canon MP640 on LMDE AMD64

Post by dhimes »

I am having the same problem (same diagnostic errors) on Lexmark (Pinnacle pro 901). I have a call in to their support. Their support guys set up a virtual machine with the distro you are running and replicate the error. The problem is they have few "Linux guys," so I'm waiting for a call back. Hopefully noon or 1:00 US eastern time today, but possibly Monday.

Right now my plan is to print to .pdf, then boot into windows and do my printing by bulk. I'm confident they'll fix this. The fact that we all get the same error (for different machines) gives me hope there is a common solution to our problems. And kudos to Lexmark for caring that much about Linux. I will let the board know what I find out.
GregE

Re: HowTo: Canon MP640 on LMDE AMD64

Post by GregE »

dhimes wrote:I am having the same problem (same diagnostic errors) on Lexmark (Pinnacle pro 901). I have a call in to their support. Their support guys set up a virtual machine with the distro you are running and replicate the error. The problem is they have few "Linux guys," so I'm waiting for a call back. Hopefully noon or 1:00 US eastern time today, but possibly Monday.

Right now my plan is to print to .pdf, then boot into windows and do my printing by bulk. I'm confident they'll fix this. The fact that we all get the same error (for different machines) gives me hope there is a common solution to our problems. And kudos to Lexmark for caring that much about Linux. I will let the board know what I find out.
This is starting to sound like a cups error and nothing to do with drivers. I am an LMDE user who has switched to Debian Sid as my base, so my Cups is a very different version to Mint 12 or standard LMDE.

Another source of error could be the USB subsytem. Are you using network printing or USB?


ps

I recently bought a Samsung color laser and Samsung provide 32 and 64bit drivers. The only hassle is the Samsung printing apps are Qt based so you need lots of KDE libs to make them work.
GregE

Re: HowTo: Canon MP640 on LMDE AMD64

Post by GregE »

Just for completeness.

I had to re-install from scratch and did a multi-arch Debian testing with an AMD64 kernel, then dist-upgraded to Sid. I then added ia32-libs and ia32-libs-gtk. The MP640 installed without any problems.

So the altered installer still works, and multi-arch is not a problem.

:)

EDIT: Move forward to July 2012 and I have completed my conversion to Multiarch. With the 32bit architecture added to my system re-installing the Canon drivers was no problem at all. There were two dependency issues that were easily remedied and the drivers installed and found the printer on the network.
Locked

Return to “LMDE Archive”