How to make LBP-1120 Canon printer work?

Initially this question was limited to 11.10. Now I am in (Lubuntu) 12.10. (On the changes in the question see this meta question).

Considering 11.10

I have tried different (or not so different) approaches - that also other users commented here. My main references were:

  • the ubuntu official documentation website on the LBP Canon driver package,
  • this Unixmen solution which partly refers to Radu Cotescu script that aims at providing a near-automated install, and
  • an updated by Unixmen version of that very script (download here).

None worked for me.


In time this answer became very long and cluttered as far as Ubuntu 12.04 - 13.10 are concerned. Below is an answer that presents the same solution but is much clearer.

Considering 12.04

It should work in the same way as for 12.10 below.

But trying that in the 12.04 Ubuntu-based eOS Luna, I was not able to make it work. In fact my answers here for 12.04 and 12.10 stopped working after a while in Xubuntu and Lubuntu too, but I let those here because they seem useful to others that voted this up.

I have a new solution (tested in eOS and with 2.6 driver) - presented here.

Considering 12.10, 13.04

I have followed the steps from Ubuntu Documentation page and the driver manual that comes with the driver:

(v.2.4 is not available anymore at that link. I have uploaded it here. 2,5 version here.)

  • Installing the common and the capt deb (v.2.4) [step 2 and 3 in manual]
  • Entering the terminal as root
  • Step 4: ["Restart CUPS. For rpm packages: Enter the following command:

    /etc/init.d/cups restart

For deb packages: Enter the following command:

/etc/init.d/cupsys restart

NOTE Do not register the printer using the "lpadmin" command before restarting CUPS. Depending on the distribution you are using, the "For deb packages" command may not be entered. In this case, enter the "For rpm packages" command."]

It was my case: So, I had to run :

/etc/init.d/cups restart

(i got a terminal message saying that i could just as well use service cups restart)

got this result:

cups stop/waiting
cups start/running, process 2758
  • Step 5 in the manual ("Register the printer (PPD) with the print spooler.") is amended by the Ubuntu documentation page

["making sure that you change this line accordingly: sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp://localhost:59787 -E The manual says ccp://localhost:59687 but Ubuntu by default is using 59787. This will give you a headache if you do not change it. (The file /etc/ccpd.conf defines UI_Port 59787 and PDATA_Port 59687. So, both these ports need to be open in the firewall setting.)"]

Accordingly, I had to enter

sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E

Ubuntu documentation says: "* Note: Ubuntu 12.04 has again blacklisted the usblp module which creates the /dev/usb/lp0 device link. To solve this problem do this sudo nano /etc/modprobe.d/blacklist-cups-usblp.conf

Then comment the file to look like this, canons driver does not talk to the printer through cups:

# cups talks to the raw USB devices, so we need to blacklist usblp to avoid
# grabbing them
# blacklist usblp

So, as I am lost using nano, i tried

sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf

and added the above (blacklist-cups-usblp.conf was an empy file and i just pasted those lines)

(At this point, verify in main menu, under System/Printers, that the name of the printer recorded there is exactly LBP1120).

  • Step 6. "Register the printer in the ccpd daemon setup file."
sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0

You should get something similar to this:

CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787

 Entry Num  : Spooler   : Backend   : FIFO path     : Device Path   : Status 
 ----------------------------------------------------------------------------
     [0]    : LBP1120   : ccp       : //localhost:59787     : /dev/usb/lp0 : Modified
  • Step 7 in manual:

"Start ccpd daemon. Enter the following command.

sudo /etc/init.d/ccpd start

NOTE It would be convenient to set ccpd daemon to start automatically when Linux starts up."

After that, entering sudo /etc/init.d/ccpd status to see if I can see the 2 numbers (familiar from installation in previous versions): yes, there were 2 numbers. But no printing until logging out and connecting the printer after logging in.

I guess these rules have to be considered if printing doesn't work:

  • connect/start printer after login

  • /etc/init.d/ccpd status to see the 2 numbers

  • sudo /etc/init.d/ccpd start to Start ccpd daemon

What will most probably happen is that you will need to restart ccpd daemon after each reboot in order to print: unless you set ccpd daemon to start automatically when Linux starts up - as the manual suggest. To do that add the following command to the startup-applications (as in the answers under here):

sudo update-rc.d ccpd defaults

NOTE: On 12.10 this method worked for me on one computer, but failed on another. On 13.04 it didn't work at all. I succeeded to autostart ccpd deamon on 13.04 by adding sudo /etc/init.d/ccpd start to the startup-applications.

To see status by just double clicking an executable script file, make this executable:

#!/bin/bash

gnome-terminal -e "/etc/init.d/ccpd status"

Considering 13.10

Idem, but I had to install the portreserve package for this method to work.


Considering installation in Ubuntu 10.10

This really works!

The Ubuntu Documentation website mentions that this printer was tested with Ubuntu 10.10. Although I currently use 12.10, I thought giving it a try. So, I have installed 10.10 as persistent live usb and followed the procedures under "Package Repository (before 11.10)".

Finally I was successful - following these steps:

Add the PPA to your system and install the packages:

sudo add-apt-repository ppa:michael-gruz/canon
sudo apt-get update
sudo apt-get install cndrvcups-capt cndrvcups-common

System->Administration->Printing add printer. Choose "Add printer". Do not choose USB Printer found by Ubuntu here. Select "CAPT Printer". You should see "ccp" in URI. Change it so URI should become "ccp:/var/ccpd/fifo0". Click "next", find your model and add your printer. Choose English variant if you see Japanese and English variants.

Instead of GUI actions, you may try this:

sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E

Then:

sudo /etc/init.d/ccpd restart
sudo /etc/init.d/ccpd status

You should get 2 numbers there, but I got just one.

So, in this case:

Check in /etc/ccpd.conf (gksudo gedit /etc/ccpd.conf) that you have this:

<Printer  LBP1120>
DevicePath  /dev/usb/lp0
</Printer>

To get it:

sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0

Also, in /etc/udev/rules.d/85-canon-capt.rules you should have this:

KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="add", SYSFS{idVendor}=="04a9", RUN+="/bin/bash /etc/init.d/ccpd start"
KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/bash /etc/init.d/ccpd stop"

(to add it

gksudo gedit /etc/udev/rules.d/85-canon-capt.rules)

and then enable rules:

sudo udevadm control --reload-rules

Then try again:

sudo /etc/init.d/ccpd restart
sudo /etc/init.d/ccpd status

If you get the two numbers, try to print. And then restart computer.

Test the 2 numbers stuff

sudo /etc/init.d/ccpd status

If you run into problems try turning your printer off, restart your computer and only turn your printer on, after you have logged in.


Considering installation in 11.10

I went back to the Ubuntu official documentation website on the LBP Canon driver package and after reinstalling version 2.3 of the driver from debian packages (using Gdebi), I followed the instructions from the section "Adding a printer" - without success. That despite the fact that I got the "two numbers" mentioned there (I quote: "You should see two numbers at the end. If you do, you are lucky :) etc").

I continued then with the commands under "Starting/stopping on USB add/Remove" but could not obtain the diagnostics cited there, nor print a test page as specified at that stage. When I followed commands under "Restart and Verify" I did not get "the two numbers" but just one.

I added the commands from the "Troubleshooting" section (in fact I stumbled over those here) - although I hadn't noticed the Status monitor reports error: I just didn't knew what to do anymore. That is:

lsmod | grep usblp
sudo modprobe usblp
ls -l /dev/usb/lp0
sudo /etc/init.d/ccpd restart

Well, that did the trick!

Upon plugging in my USB printer I got the message that the printer was seen by the system and then I was able to print perfectly.

But, according to the following note ("Note: As of Ubuntu 11.10 (Oneiric Ocelot), usblp has been deprecated and will not be automatically loaded when you connect your USB printer") after restarting my computer cannot print. This is related seemingly to the bug #842823. At the address where the bug is discussed by Till Kamppeter I found and followed these instructions and been able to print a test page - but NOTHING ELSE. And the adventure continues: those instructions WORKED when I followed them again after following again the stages "Starting/stopping on USB add/Remove", "Restart and Verify" and "Status Monitor" from the official Ubuntu documentation page.

But I fear it is still a temporary solution.

EDIT: For me this was a solution just as far as it's the best i could achieve but would not work after reboot and it's cumbersome to use. I keep it just for reference. If others find it useful or amendable, please edit this to make it work.


Considering Ubuntu 12.04, 12.10, 13.04 & 13.10

For 12.04 and 13.04 there are some additional steps. For all other releases, skip those.

For Ubuntu 12.04, do this first:

Ubuntu 12.04 has again blacklisted the usblp module which creates the /dev/usb/lp0 device link. To solve this problem edit /etc/modprobe.d/blacklist-cups-usblp.conf

Enter in terminal:

sudo gedit /etc/modprobe.d/blacklist-cups-usblp.conf

Then comment the file to look like this,canons driver does not talk to the printer through cups:

# cups talks to the raw USB devices, so we need to blacklist usblp to avoid
# grabbing them
# blacklist usblp

For Ubuntu 13.10, do this first:

  • Install the portreserve package:

    sudo apt-get install portreserve

For all other versions of Ubuntu, start here

  • Download the common and the capt .deb

    • 2.4 version
    • 2.5 version
    • 2.6 version
  • Install the common and the capt .deb

  • Restart CUPS:

    sudo /etc/init.d/cups restart

Depending on the distribution you are using you may need to usesudo /etc/init.d/cupsys restart or sudo service cups restart to restart CUPS. You should get some kind of verification that cups indeed restarted

  • Register the printer (PPD) with the print spooler:

    sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E

  • Register the printer in the ccpd daemon setup file:

    sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0

You should get something similar to this:

CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787

 Entry Num  : Spooler   : Backend   : FIFO path     : Device Path   : Status 
 ----------------------------------------------------------------------------
     [0]    : LBP1120   : ccp       : //localhost:59787     : /dev/usb/lp0 : Modified
  • Start ccpd daemon.

    sudo /etc/init.d/ccpd start

  • Test if ccpd deamon is running correcttly:

Enter sudo /etc/init.d/ccpd status to see if you can see 2 numbers. One ore no numbers means somthing's wrong. Two numbers means all should be working, but no printing until logging out and connecting the printer after logging in.

I guess these rules have to be considered if printing doesn't work:

  • connect/start printer after login

  • sudo /etc/init.d/ccpd start to Start ccpd daemon

  • sudo /etc/init.d/ccpd status to see the 2 numbers

  • When you only get one number, trysudo /etc/init.d/ccpd restart

What will most probably happen is that you will need to restart ccpd daemon after each reboot in order to print: unless you set ccpd daemon to start automatically when Linux starts up. You'll find lots of ways to do that in the answers under here):

If things still don't work

Here is another, quite similar, method. Tested on Elementary OS Luna (based on Ubuntu 12.04). This method contains a lot of useful troubleshooting tips.