Here are the steps I followed to set up my printer (Canon Pixma MX870) on a machine running Debian Jessie.
Setup details:
My printer is connected wirelessly to the router which in turn is connected to the internet. The desktop machine running Debian Jessie is connected to the same router via ethernet cable.
1) Find out the IP address of the printer.
root@hogwarts:~# arp-scan --interface=eth1 --localnet
Interface: eth1, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.0.1 20:e5:64:57:f1:12 (Unknown)
192.168.0.4 e8:99:c4:4c:d0:26 (Unknown)
192.168.0.8 00:1e:8f:97:25:3d CANON INC.
3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.380 seconds (185.51 hosts/sec). 3 responded
This shows that the printer's IP address is 192.168.0.8
2) Install and start the cups service
apt-get update
apt-get install cups
/etc/init.d/cups start
I have the following packages installed but it is possible that not all of them are necessary.
root@hogwarts:~# dpkg -l cups\* | grep ^ii
ii cups 1.7.1-12 amd64 Common UNIX Printing System(tm) - PPD/driver support, web interface
ii cups-bsd 1.7.1-12 amd64 Common UNIX Printing System(tm) - BSD commands
ii cups-client 1.7.1-12 amd64 Common UNIX Printing System(tm) - client programs (SysV)
ii cups-common 1.7.1-12 all Common UNIX Printing System(tm) - common files
ii cups-core-drivers 1.7.1-12 amd64 Common UNIX Printing System(tm) - PPD-less printing
ii cups-daemon 1.7.1-12 amd64 Common UNIX Printing System(tm) - daemon
ii cups-filters 1.0.50-1 amd64 OpenPrinting CUPS Filters - Main Package
ii cups-filters-core-drivers 1.0.50-1 amd64 OpenPrinting CUPS Filters - PPD-less printing
ii cups-pdf 2.6.1-9 amd64 PDF writer backend for CUPS
ii cups-pk-helper 0.2.5-2 amd64 PolicyKit helper to configure cups with fine-grained privileges
ii cups-ppdc 1.7.1-12 amd64 Common UNIX Printing System(tm) - PPD manipulation utilities
ii cups-server-common 1.7.1-12 all Common UNIX Printing System(tm) - server common files
3) Add the printer
Add a user to the lpadmin group. For example, this is what I have
rajulocal@hogwarts:~$ id
uid=1000(rajulocal) gid=1000(rajulocal) groups=1000(rajulocal),24(cdrom),25(floppy),
29(audio),30(dip),44(video),46(plugdev),104(scanner),107(bluetooth),
109(netdev),122(lpadmin)
Go to http://localhost:631/ in your local browser.
Click on "Adding Printers and Classes"
Click on "Add Printer"
For some reason, "Find New Printers" did not detect the printer.
So I used "Add Printer" to add the printer manually.
If prompted, provide the user login and password details of
the account which you added to the lpadmin group.
In "Other Network Printers" section, select "
LPD/LPR Host or Printer" and click continue
In the connection field, enter
lpd://192.168.0.8/queue
and hit continue. Replace 192.168.0.8 with your printer's IP address.
In the next screen, provide a Name, Description and Location for the printer and hit continue. I have
Name: CanonPixmaMX870
Description: Canon Pixma MX870 Color Printer with Duplexer, scanner, fax
Location: Home
In the next screen, choose
Make = Canon
hit continue
Model = Canon PIXMA MX870 - Cups+Gutenprint v5.2.9 (en)
click "Add Printer"
In the next screen, I have set 2-Sided Printing = Long Edge (Standard) and left all other options as-is. Click "Set Default Options" when finished.
4) Test the printer setup
Print a test file using lpr.
rajulocal@hogwarts:~/x$ lpr -P CanonPixmaMX870 santhi.txt
Useful links:
- https://wiki.debian.org/SystemPrinting
- http://www.usa.canon.com/cusa/support/consumer/printers_multifunction/pixma_mx_series/pixma_mx870#DriversAndSoftware
- https://lists.debian.org/debian-user/2014/06/msg00318.html