How to install Canon LBP printers in Ubuntu

Saturday, March 20th 2010, 11:06

UPDATE 4: Version 2.4 added support for printer models LBP6000 and LBP6018 and provides a better dependency handling. Please test it on older Ubuntu versions as it works perfectly on Ubuntu 11.04.

UPDATE 3: Version 2.3 added support for Ubuntu 11.04.

UPDATE 2: Due to popular demand version 2.2 now supports Ubuntu 10.10. Use the exact same instructions to install and please leave a comment if anything fails.

UPDATE 1: The currently used CAPT driver since version 2.0 is 2.00 which adds support for Canon LBP6300dn and Canon LBP9100Cdn. Also a new script has been added to the archive to handle the driver uninstall process.

After I bought Riker , when it came to installing Ubuntu I had two options: either install the i386 version but with a PAE aware kernel, either go for the amd64 release. Considering the advantages and disadvantages of both of my options, I decided to go for the 64bit version (although the last time I did this I wasn’t quite happy – back in the 7.10 days). Anyway, Riker is extremely happy about it and I haven’t experienced any problems so far (I’m even running the 64-bit beta flash plugin which works great).

But let’s get back to the main point: Canon printers on 64bit Linux. While Canon does provide a Linux driver (both *.deb and *.rpm files), they are compiled to work only on a 32bit OS (which is like ½ Linux support). Therefore the only solution for the geeky misfortunate fellows like me is to compile their own drivers using Canon’s sources, but not following Canon’s instructions (which seem to be written by an unlucky lad who works at Microsoft but on UNIX services [this is a good joke if you are a geek]). While the process of compiling your own stuff is not very hard to accomplish (when you do have the proper instructions), trying to do this without knowing the exact dependencies is a major pain in the ass.

Fortunately, one guy on Ubuntu forums managed to create a proper set of steps to follow in order to do the job right. If you followed my blog, there’s a slight chance you might have noticed that I like to build BASH scripts to automate tedious Linux things. Since that post helped me to create the two *.deb files needed for the job, I decided to build a script just for the install part, using the packages I compiled and created on my 64bit machine. Also, because I really like geeking around, I made the script to install the correct drivers both on 32bit and 64bit (this is automatically handled by the script).

The current supported printer models for the 1.90 release of the driver are: LBP-1120, LBP-1210, LBP2900, LBP3000, LBP3010, LBP3018, LBP3050, LBP3100, LBP3108, LBP3150, LBP3200, LBP3210, LBP3250, LBP3300, LBP3310, LBP3500, LBP5000, LBP5050, LBP5100, LBP5300, LBP7200C.

You can download the script from here (right click, save as, extract archive). Running the script is pretty easy:

sudo ./canonLBP_install.sh PRINTER_MODEL

where PRINTER_MODEL is one from the above. Any other printer model you would try to use will give you an error message and the script will exit.

Please tell me how it worked. Have fun! :)

You might also like:

394 Comments

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
  • Just used your script – it worked great. Thanks a million – I have pulled my hair out trying to get this working (LBP-1210 on Ubuntu 9.1 32 bit). I am not an ubuntu head.

    Here is one for you, would you now tell me how to get the same printer working as a network printer with Win 7 64bit. Drivers are a real problem with WIN 7 64 bit. Is there anyway that a printer can be setup so that it uses local printers ?

    Thanks again.
    Sean.

    • Sean, I’m glad everything worked okay. Maybe you can write on Ubuntu’s wiki about this (that your model worked okay with the script and with the drivers). The Windows 7 driver for your printer is located here but I don’t know how well it works. Sharing your printer with Windows is easy. Assuming that I got this right, you want to connect your printer to your Ubuntu machine and access it from Windows. For this you have a great guide on Ubuntu’s wiki. The parts that are of interest for you are this one for the printer server and this one for your Windows client. I have used those guides too for sharing a printer between my computers at home and everything is working dandy :D .

    • nice script.. printer install in Ubuntu now more easy.. I am using canon LBP3000.. Thanks a lot…

  • Thank you very much Radu. I had tried a lot of ways from Google to make my LBP1120 printing anything. None of them worked for me. But your script is just the miracle. And now my Canon LBP1120 PRINTS on Ubuntu 9.10 amd64!
    Thank you very much!

  • hello
    I’ve executed this script on ubuntu lucid beta2
    the system has displayed lbp3010
    but as I give the order to print nothing happens not

  • @lm: Have you followed the instructions written by the script in your terminal precisely? Because I did that on Ubuntu Lucid on my laptop and everything worked well. Of course, I own an LBP2900 but the driver supports your printer model as well.

    To check that there isn’t a driver problem open your terminal and follow this:

    radu@data:~$ sudo /etc/init.d/ccpd status
    Canon Printer Daemon for CUPS: ccpd: 1335 1184
    

    If you don’t see two PIDs there’s something wrong. In that case delete your previously installed printer, re-run the script and follow those instructions displayed at the end. Don’t forget to reboot your machine before printing the test page.

    • Hi Radu,

      I have used your script but I still cannot print. the output of this command: sudo /etc/init.d/ccpd status
      gives:
      Canon Printer Daemon for CUPS: ccpd: 1133
      can you advise a solution.

      Many thanks

      Paul

  • Hello
    thank you for your reply

    in the terminal I typed: sudo ./canonLBP_install.sh LBP3010

    here is what I see in the terminal

    I find no problem to install my printer on karmic manually because I downloaded the drivers from the official site, but I would like use your script because I love the automatic setup.

  • Install libstdc++6. You should have no problems afterwards.

  • thank you again
    the problem of dependent package is resolved
    this problem remains:

    sudo /etc/init.d/ccpd status
    Canon Printer Daemon for CUPS: ccpd: 977
    captstatusui -P LBP3010
    [1] 1844
    sudo /etc/init.d/ccpd status
    Canon Printer Daemon for CUPS: ccpd: 977
    

    after restart the pc my printer works
    and i see

    Canon Printer Daemon for CUPS: ccpd: 1178 972
    

    Therefore it works but how to do everything by the script without adding manual…

  • The script does everything. You should just restart your machine after installing your printer and setting it as default. I’ve told you before that I’ve tested the script on my laptop which runs Lucid right after you have posted your first comment.

  • Again thank you
    but before using the script I’ve manually installed libstdc + +6
    I Prefair, do everything by the script
    even for libstdc + +6
    is it possible to integrated libstdc + +6 in the script

  • I guess I can add that too. But the problem is that on some systems (I think prior to 9.10) that package should be libstdc++5. Maybe I’ll add an if there… I wanted to add an uninstaller too.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


CODE EXAMPLES: When you want to include source code or terminal output, please use the the following tags like in the next example:

    [language]
    code lines
    [/language]
	

where you substitute language with the programming laguage used throught the code example (for terminal output that would be bash), e.g:

    [bash]
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    [/bash]
	

To see a list of all the supported languages, please check this page.

If you want to include code bits inline, please use the code tags like in the following example:

    The <code>$USER</code> variable holds the current logged in username.
	

Projects that I support

Recent Comments

  • nope said:
    yeah that was my first thought too, but: mount: warning: seems to be mounted read-write. too bad, would have been just perfect. more»
  • Klaus Deiss said:
    Dear Radu, I tried it on Ubuntu 10.0.4.2 and 10.0.4.3 with different kernel versions (amd64 server 2.6.32 kernel). No... more»
  • scompo said:
    Nope.. Now it’s not working again.. This printer it’s a real pain in the butt.. The other hp printer I had... more»
  • Dmitrij said:
    Thank you Peter and Patrice. Could you please post the updated script? more»
  • hd_flash_pains said:
    didn’t work for me more»

Recent Tweets

Bear