Printing to Canon MX860 wirelessly from Arch Linux

Posted on 2015-01-25 22:56

I've been using Arch more often than the Ubuntu machine lately and since I know that my Canon printer is not well supported under Linux I was putting off trying to get it going under Arch. In Ubuntu I was able to use some .deb packages that were hosted on a European Canon website to get the various Ubuntu boxes printing to it, but it wasn't pretty and once they were set up, I've pretty well left them alone. These are my notes on what I did to get it working in Arch. Yet again the Arch Linux wiki made all the difference.


First I had to get cups installed which required a bunch of packages: pacman -S libcups cups ghostscript gsfonts Then I enabled and started the cups service which has a cryptic name: systemctl enable org.cups.cupsd.service systemctl start org.cups.cupsd.service (and restart will come in handy) Then I needed the drivers for my Canon printer. The gutenprint driver package has them, although they are marked as Experimental which is better than nothing: pacman -S gutenprint I navigated to the CUPS admin page: http://localhost:631 ...and proceeded to futily try a million different connection settings starting with (ipp://, http://, socket://, etc.) pointing to the IP I knew was my printer with "Canon MX860 series - CUPS+Gutenprint v5.2.10" selected as the driver, but nothing worked.

Finally I stumbled onto the cause of the trouble - my older Canon printer relies on a proprietary printing protocol called bjnp. Without this installed the printer will never respond. I've read that the newer Canons no longer use this protocol, but I'm not going to throw out a perfectly good printer! Unfortunately bjnp isn't in the main repos, but it is in the AUR: (this package has dependancy on cups and libcups) after I unzipped and ran makepkg on that, I installed the resulting package: pacman -U cups-bjnp-2.0-1-i686.pkg.tar.xz ...then when I went into Cups administration to modify the printer settings I could see the Canon driver I had selected before now was available with a new connection type: bjnp (in my case it looked like bjnp://myCanonIP:8611) I selected the radio button to choose that connection and was able to print over the wireless network to the Canon immediately.

update 160726: for Linux Mint install cups-backend-bjnp