I’ve resisted getting an all-in-one printer / scanner / copier device in the past, largely due to worrying about the driver situation on Linux, but when I found out that my scanner hadn’t survived the trip to Zürich and we were also without a printer, we risked it and bought a Canon PIXMA MP560.
I say “risked”, because the noise levels in the search results when trying to find out whether this printer would actually work were very high. In the hope that it will be of use to anyone similarly searching in the future, I thought it might be useful to add the following notes about things that definitely work for us. (There are lots of things that we haven’t simply tried yet, e.g. printing via USB or scanning via USB, so I can’t comment on what’s involved in getting those to work.)
Update: with these drivers the printer does seem to have trouble printing more complex pages – it’ll only print out the top eighth of the page and then give up. e.g. as an example, try printing out the English rules for Tobago (PDF linked from that page). Rather annoying, and I haven’t had time to report it to Canon yet.
Obviously I can’t provide support if you’re having problems with this printer, so this is just to describe what worked for us on Ubuntu 9.04 (Jaunty Jackalope) and 9.10 (Lucid Lynx). I’m pretty happy with this printer, and it’s great to see that Canon are supporting Linux users by providing drivers.
Printing over Wireless
The instructions supplied with the printer explain how to get it to connect to your wireless network, which worked fine with WPA2 (AES).
Then you need to go to the drivers page for the PIXMA MP560 on Canon’s website, select “Linux” and “English”, and download “Debian Linux Print Drivers (3.2)”. That’ll give you a tar file, which you should unpack in a new directory. This in turn contains a tar.gz archive called cnijfilter-mp560series-3.20-1-i386-deb.tar.gz. Unpack that and you’ll get the following:
cnijfilter-mp560series-3.20-1-i386-deb/ cnijfilter-mp560series-3.20-1-i386-deb/packages/ cnijfilter-mp560series-3.20-1-i386-deb/packages/cnijfilter-common_3.20-1_i386.deb cnijfilter-mp560series-3.20-1-i386-deb/packages/cnijfilter-mp560series_3.20-1_i386.deb cnijfilter-mp560series-3.20-1-i386-deb/install.sh
The “install.sh” script will fail if your setup is like either of ours, with the error message:
================================================== Canon Inkjet Printer Driver Ver.3.20-1 for Linux Copyright CANON INC. 2001-2009 All Rights Reserved. ================================================== Error! Cannot specify package management system.
This error arises when both “dpkg” and “rpm” exist in your path, so you need to edit install.sh to cause the test for “rpm” to fail – find these lines:
## Judge is the distribution supporting rpm? ## rpm --version 1> /dev/null 2>&1 c_system_rpm=$?
… and change “rpm –version” to “rpm-no-thanks –version”, or something. If you re-run ./install.sh then it should all work OK. (I’ve put in bold the bits where you need user interaction.
: mark@cava:~/Desktop/canon-drivers/cnijfilter-mp560series-3.20-1-i386-deb (master) ./install.sh ================================================== Canon Inkjet Printer Driver Ver.3.20-1 for Linux Copyright CANON INC. 2001-2009 All Rights Reserved. ================================================== Execution command = sudo dpkg -iG ./packages/cnijfilter-common_3.20-1_i386.deb [sudo] password for mark: (Reading database ... 490522 files and directories currently installed.) Preparing to replace cnijfilter-common 3.20-1 (using .../cnijfilter-common_3.20-1_i386.deb) ... Unpacking replacement cnijfilter-common ... Setting up cnijfilter-common (3.20-1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place/sbin/ldconfig.real: /usr/local/lib/ is not a symbolic link Execution command = sudo dpkg -iG ./packages/cnijfilter-mp560series_3.20-1_i386.deb (Reading database ... 490522 files and directories currently installed.) Preparing to replace cnijfilter-mp560series 3.20-1 (using .../cnijfilter-mp560series_3.20-1_i386.deb) ... Unpacking replacement cnijfilter-mp560series ... Setting up cnijfilter-mp560series (3.20-1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place /sbin/ldconfig.real: /usr/local/lib/ is not a symbolic link ## Driver packages installed. ## #=========================================================# # Register Printer #=========================================================# Next, register the printer to the computer. Connect the printer, and then turn on the power. To use the printer on the network, connect the printer to the network. When the printer is ready, press the Enter key. > #=========================================================# # Connection Method #=========================================================# 1) USB 2) Network Select the connection method.[1]2 Searching for printers... #=========================================================# # Select Printer #=========================================================# Select the printer. If the printer you want to use is not listed, select Update [0] to search again. To cancel the process, enter [Q]. ----------------------------------------------------------- 0) Update ----------------------------------------------------------- Could not detect the target printer. ----------------------------------------------------------- (Currently selected:[0](Update) ) [At this point I remembered to turn on the printer...] Enter the value. [0]0 Connect the printer, and then turn on the power. To use the printer on the network, connect the printer to the network. When the printer is ready, press the Enter key. > Searching for printers.. #=========================================================# # Select Printer #=========================================================# Select the printer. If the printer you want to use is not listed, select Update [0] to search again. To cancel the process, enter [Q]. ----------------------------------------------------------- 0) Update ----------------------------------------------------------- Target printers detected (MAC address IP address) 1) Canon MP560 series (00-1E-8F-64-60-96 192.168.1.5) ----------------------------------------------------------- (Currently selected:[1]Canon MP560 series (00-1E-8F-64-60-96 192.168.1.5)) Enter the value. [1] #=========================================================# # Printer Name #=========================================================# Enter the printer name.[MP560LAN]mp560-again Execution command = sudo /usr/sbin/lpadmin -p mp560-again -m canonmp560.ppd -v cnijnet:/00-1E-8F-64-60-96 -E #=========================================================# # Set as Default Printer #=========================================================# Do you want to set this printer as the default printer? (yes/no) [yes]no #=========================================================# Installation has been completed. Printer Name : mp560-again Select this printer name for printing. #=========================================================#
Then the printer should be set up correctly, and you can test it by going to System -> Administration -> Printing, right clicking on the new printer, selecting “Properties” and clicking on “Print Test Page”.
Scanning to a USB stick
This has turned out to be convenient enough that I haven’t bothered to get scanning over USB from my netbook to work yet, and of course it works fine – just follow the prompts on the display. It only offers scanning to PDF or JPEG, unfortunately – it would be nice if PNG was another option available when scanning to a USB mass storage device.
Thanks for this guide. I got to the point where my printer is supposed to be detected, but I keep getting the message “could not detect the target printer.” Any thoughts about what I might try would be appreciated!
Nix that. I got it working!
Great, I’m glad to hear it. On another occasion (with the printer on!) I had to try the step where it searches for the printer a couple of times before it found it.
When I try to type in the password in terminal, it wont let me?
I don’t think the script displays the password when you type it, in case it’s that simple…
Thanks for the scanning to USB stick section.
Was having fun trying to get it working wirelessly with Ubuntu
Thanks, Mark, for the great instructions. The bold bits for user interaction were very helpful.
The instructions worked out for me on 10.04. I first did a ‘which dpkg’ and a ‘which rpm’ to see if the update.sh would have a conflict, and since rpm wasn’t found the script just worked without any modification.
Thanks! I just had to download, unpack and run ./install.sh – now I can print wireless from laptop running 10.04.
Thanks. I’ve just move to ubuntu, so I was worried about coundn’t get my printer to work.
I’m on 10.04, and I get the following error when I try to run install.sh:
Error: Dependency is not satisfiable: cnijfilter-common (>= 3.20)
I tried the rpm-no-thanks edit, but that didn’t work, either.
Thanks!
Thanks for this tutorial, it worked like a charm. Printing wirelessly in 10.04. Still haven’t figured out how to scan yet, but will try that next.
thanks for the link and info!!!
went to the website and downloaded the driver using Linux mint 9. went without a hitch and am using it wirelessly as well. amazing!
thanks again
Dan