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 numberssudo /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 use
sudo /etc/init.d/cupsys restart
orsudo 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 daemonsudo /etc/init.d/ccpd status
to see the 2 numbersWhen you only get one number, try
sudo /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.