Debian printer driver installation


by - posted

Debian printer driver installationThe Debian printer driver installation article shows you the basic steps of a printer driver installation. Additionally, it explains some details and describes a real installation of a Canon Pixma ip 3600 printer on a Debian 8 machine.

The basic steps

Install additional packages (dependencies) if you know them already at this point

Download the driver

You will get one of the following files : *.deb or *.tar or *.deb.tar.gz

Extract the tar file

# tar -xzvf
eventually create a  /driver_directory

If you get a tar file with rpm drivers inside : Convert rpm to deb using “alien”

Check for missing dependencies

if there are missing dependencies :
– install them
or
– change the control file, then install the modified deb file(s)
or
– install a pseudo package (if available)

Install the deb file(s)

# dpkg -i

Create symlinks if necessary

Add quality and dpi options if you like

Restart CUPS, then turn the printer on

Add the printer to CUPS

Download the driver – details

You can get your printer driver from various sources like :
OPEN Printing
ZEDOnet
foomatic database
a generic driver showed up in CUPS
the manufacturer of the printer

You can also use Google cloud print for printing or CUPS cloud print

Think about using the multiarch Debian in order to install a 32 bit printer driver on a 64 bit system !

Check for missing dependencies – details

Case 1 – the missing package is available and can be installed

The control file (example for Canon Pixma iP3600)

unpack the deb file : # ar -x cnijfilter-common_3.00-1_i386.deb
unpack the control file : # tar -xzf control.tar.gz
look for dependencies : # nano control
result : libc6 (>= 2.3.4-1), libcupsys2 (>= 1.2.1), libpopt0 (>= 1.7)

Check the available dependencies on your system

$ cd /usr/lib
OR
$ cd /lib

$ ls -l libc* libcups* libpop*

Install the missing dependencies – if necessary

# apt-get install libc6 libcupsys2 libpopt0

Case 2 – the missing package is outdated and a new one is used instead

You can replace the “ar” and “tar” commands by the “dpkg-deb” command.

Unpack the deb file (example for Canon Pixma iP3600)

# ar -x cnijfilter-common_3.00-1_i386.deb

Unpack the control.tar.gz file

# tar -xzf control.tar.gz

Edit the control file

replace the old package “libcupsys2” by the new package “libcups2”

Repack what you have unpacked before

# tar -czf control.tar.gz control md5sums
# ar -r cnijfilter-common_3.00-1_i386.deb debian-binary control.tar.gz data.tar.gz


Repeat the 4 steps above for all deb files !

Create symlinks – details

Look for the filter (driver) – example for Canon Pixma iP1500

$ cd /usr/local/bin
$ ls -l  bjfilter*

result : $ bjfilterpixmaip1500

OR for newer ones

$ cd /usr/bin
$ ls -l cif*

Check for the necessary libraries

$ cd /usr/local/bin
$ ldd bjfilterpixmaip1500

If the result is :  $ libpng.so.2 => not found

Check for available libraries on your system
$ cd /usr/lib
$ ls -l libpng*

result :  $ libpng12.so.0.15.0

For newer ones : $ cd /lib

Create the symlink, then update the link cache

$ ln -s libpng12.so.0.15.0 libpng.so.2
$ ldconfig

Check the result

$ cd /usr/local/bin
$ ldd bjfilterpixmaip1500

result :  $ libpng.so.2 => /usr/lib/libpng.so.2 (0xb7ee5000)
libpng.so.2 is now linked

Installation example of a Canon Pixma IP 3600 on Debian 8

Download the driver from Canon

http://www.canon-europe.com/printers/home-and-photo-printers/
You will get : ip3600_debian_printer.tar

Move the file to /your home/ip3600 then extract it

Create the /ip3600
Put the tar file in  /ip3600
# tar -xvvf /your home/iP3600/ip3600_debian_printer.tar

Resolve missing dependencies

– Unpack the deb file

# ar -x cnijfilter-common_3.00-1_i386.deb

– Unpack the control.tar.gz file

# tar -xzf control.tar.gz

– Edit the control file

replace the old package “libcupsys2” by the new package “libcups2”

– Repack what you have unpacked before

# tar -czf control.tar.gz control md5sums
# ar -r cnijfilter-common_3.00-1_i386.deb debian-binary control.tar.gz data.tar.gz

– Do the above for all necessary deb files !

Install the (modified) deb files

# dpkg -i  cnijfilter-common_3.00-1_i386.deb cnijfilter-ip3600series_3.00-1_i386.deb

Create symlinks

not necessary here

Add quality and dpi options (if you like)

– During the driver installation process

edit the *.pdd file in  /usr/share/cups/model/
# cd /usr/share/cups/model
# cp canonip3600.ppd canonip3600.ppd.bak  (create a backup for “security”)
# nano canonip3600.ppd

– Or after the driver installation

edit the *.pdd file in  /etc/cups/ppd/
# cd /etc/cups/ppd
# nano iP3600-series.ppd

– Changes to make

– Add the following lines:

*OpenUI *CNQuality/Quality: PickOne
*DefaultCNQuality: 3
*CNQuality 2/High: “2”
*CNQuality 3/Normal: “3”
*CNQuality 4/Standard: “4”
*CNQuality 5/Economy: “5”
*CloseUI: *CNQuality

– Then replace this:

*OpenUI *Resolution/Output Resolution: PickOne
*DefaultResolution: 600 dpi
*Resolution 600/600 dpi: “<</HWResolution[600 600]>>setpagedevice”
*CloseUI: *Resolution

– By the following:

*OpenUI *Resolution/Output Resolution: PickOne
*DefaultResolution: 600
*Resolution 300/300 dpi: “<</HWResolution[300 300]>>setpagedevice”
*Resolution 600/600 dpi: “<</HWResolution[600 600]>>setpagedevice”
*Resolution 1200/1200 dpi: “<</HWResolution[1200 1200]>>setpagedevice”
*CloseUI: *Resolution

Restart CUPS, then turn the printer on

# /etc/init.d/cups restart

Add the printer to CUPS

go to the CUPS Web interface : http://localhost:631/
CUPS admin section :
– Printers : add printer
– User = root
– Password = your root password
– Add Printer / Local Printers :  select yours : Canon iP3600 series (Canon iP3600 series) / click : continue
– next page / click : continue
– Add Printer / Model : select Canon iP3600 series Ver.3.00 (en) / click : Add Printer
– Set Default Options :     quality = economy
output resolution = 300 dpi
paper source = cassette
click : Set Default Options
– done

Happy printing !

If you enjoyed this article, you can :
– get post updates by connecting to our RSS feed
– get post updates by subscribing to our e-mail list
– share on social media :