Canon LBB5100 Capt Driver x86_64

I’m adding this post here, because I’ve spent ages trying to get 64bit drivers or drivers compiled for this printer.

It may be obvious how to do this to the opensuse community (couldn’t find much out there), but just in case this helps anyone.

1st. I still haven’t got a reliable working printer driver direct on linux.

2nd. I am currently using the driver via smb to a windows box. :frowning: But it’s better than throwing away the stupid box.

Okay there is no x86_64 driver for the capt drivers, that I could find. But you can download the standard linux drivers, which also contain the source.

The easiest way to get a 64bit driver is to unpack the drivers.
You will find a directory Src. In there are two source packages.
Copy both to /usr/src/packages/SOURCE

unpack both in a temporary directory.

Enter the common one first.
run rpmbuild --bb cndrvcups-common.spec
this will build a 64bit rpm in the /usr/src/packages/RPMS/x86_64 directory
rpm -ivh [new.rpm] replace with correct name, the one you created

Enter the capt directory now (where you unpacked the source code)
run rpmbuild --bb cndrvcapt-cups.spec
this will build another 64bit rpm in the /usr/src/packages/RPMS/x86_64 directory
rpm -ivh (new2.rpm) replace with correct name, the second one created

I can’t say which other packages you need to compile and build all of this, but you will need the c++ compilers, and various -devel packages. I would just add them via yast as you go along.

Anyway off to work out how to get this working directly on linux reliably.

you write

Canon LBB5100

but you actually mean

Canon LBP5100
?

If I can make some suggestions?

I would recommend you go to this page

Canon CAPT Printer Driver for Linux

and download, from near the bottom of the page

Manual guide-capt-1.8xE.tar.gz 271.19 Kb.

I downloaded it to my desktop; right clicked and used the offer of “file roller” to unpackage; that created a directory called guide-capt-1.8xE and when I open that there is a manual_contents.html and if you click on that, you get a marvellous howto from Canon;

one thing you will note is you need ghostscript installed before installing any Canon printers;

I would urge you to do the above, and read it carefully; it looks like once one has that mastered, one works through the steps they advise; and by copying and pasting the commands, into a terminal, things should work; after making symbolic links: see below;

also read a thread that reports a successful install of the LBP2900

Canon lbp 2900 - openSUSE Forums

nag3gul also used a 64 bit system, and created symbolic links to his 64bit libraries;

as you will note Canon says its drivers are designed for 32 bit systems; so the symbolic links tell the system, that is looking in the 32bit, to go look in the 64 bit;

let us know how you get along

Okay yes I meant the Canon LBP5100 Colour Laser Printer.

My point of posting was - you can’t get the x86_64 bit drivers to download for linux for this printer.

I have downloaded the source code. I have tried to compile it.
I have installed the 32bit versions, and done all the lib linking.

BUT All I wanted to say somewhat unclearly was you can build your own 64bit drivers very easily. The output 2 64bit RPMS install all the required drivers and bin files in the right places. And it works. You just need to run the rpmbuild command against the two source trees, to generate two x86_64 bit drivers in rpm form for installation. 1.80.

This was a tip for people like me, who have read the ubuntu forums, and the LBP2900 posts. No one mentioned just rpmbuild the source!

The next part I can’t get working is having the Canon on a USB network hub. I can print to it via a windows SMB share.

Canon laser LBP5100 on OpenSuse 11.1. Pulled information from ubuntu forums and from here for canon machines. I’ve summarised my steps and also how to build the 64bit drivers if you want.


Download from Canon
Canon Europe - i-SENSYS Linux Support

for the LBP5100
LBP5100

Download the 1.80 Driver

[important disclaimer - through laziness I just used the root command, and just added sudo below - apologies if I get it wrong]

gunzip CAPTDRV180.tar.gz
tar xvf CAPTDRV180.tar

You will have a CANON_UK folder
sub folder Driver, Doc, Src

For 32bit users

cd CANON_UK/Driver/RPM

**sudo rpm -ivh *.rpm **

For 64bit users
**cd CANON_UK/Src

cp cndrvcups-capt-1.80-1.tar.gz /usr/src/packages/SOURCES
cp cndrvcups-common-1.80-1.tar.gz /usr/src/packages/SOURCES
gunzip cndrvcups-capt-1.80-1.tar.gz
tar xvf cndrvcups-capt-1.80-1.tar
gunzip cndrvcups-common-1.80-1.tar.gz
tar xvf cndrvcups-common-1.80-1.tar**

The next part, I can’t tell what you have on your system. So you may need to add bits until it compiles. Basically you need the C compilers. Various -devel packages. I think a list of these can be found in the canon docs. I added some via YAST->Software Management

cd cndrvcups-common-1.80
rpmbuild -bb cndrvcups-common.spec
assuming you have the required libs, you will get in
/usr/src/packages/RPMS/x86_64
cndrvcups-common-1.80-1.x86_64.rpm

**
sudo rpm -ivh /usr/src/packages/RPMS/x86_64/cndrvcups-common-1.80-1.x86_64.rpm**

**cd …/cndrvcups-capt-1.80
rpmbuild --bb cndrvcups-capt.spec
once again in /usr/src/packages/RPMS/x86_64
cndrvcups-capt-1.80-1.x86_64.rpm
**
sudo rpm -ivh /usr/src/packages/RPMS/x86_64/cndrvcups-capt-1.80-1.x86_64.rpm

You now have the drivers installed.


Adding a printer

sudo /etc/init.d/ccpd restart

  • Goto CUPS printer management
  • Add printer
  • Give it a name, location, description. (Remember the name)
  • Next select the protocol.

If installed you should get a list of Canon Priter Daemon (yes Priter) #1 to #8

  • select one of these
  • Select canon for manufacturer
  • Select Canon LBP5100 CAPT (UK) (en) for model. (Note the new ones have no dash LBP-Xxxx and are grouped below the LBP-Xxxx ones)
  • add printer

Some posts say you need to do this
where LBP5100 is the name given to the printer above

***sudo /usr/sbin/lpadmin -p LBP5100 -m CNCUPSLBP5100CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E


But I think you can skip that

next

sudo /usr/sbin/ccpdadmin -p [name above] -o /dev/usb/lp0

e.g.
so if you named you printer LBP5100 then
sudo /usr/sbin/ccpdadmin -p LBP5100 -o /dev/usb/lp0

The /dev/usb/lp0 assumes you have only connected one usb printer to the system. You can check /var/log/messages to see which usb port is connected to the canon. Look for the canon printer being recognised. Suse adds it to the /dev/usblp0 device, which is linked to the /dev/usb/lp0.

sudo /etc/init.d/ccpd restart

ps ax | grep cap
you should see a capmon program with fifo0 to lp0 parameters

Try a test page, should work

thanks very much for this; sorry if I misread your first post; the key phrase in your post #3 was

And it works
!!

so if you have the 64bit system printing to your LBP, well done;and thanks very much for the big contribution of your posting;
everyone will appreciate the very nice layout of your howto; you seem to have a fair bit of acquired linux knowledge behind your post; welcome to the forum

Sorry all, for adding to this, I wanted to correct and add some more to this, and couldn’t edit it. Also although the post is long it is a relatively straightforward procedure.

Specifically for a Canon laser LBP5100 on OpenSuse 11.1. Pulled information from ubuntu forums and from here for canon machines. I’ve summarised my steps and also how to build the 64bit drivers if you want.

However you can replace 5100 with some of the other lasershot capt printers and should get the same result. LBP5000 LBP3600 LBP3500 LBP3310 LBP3100 LBP2900 LBP1120 LBP1210 to name a few.


Download from Canon
Canon Europe - i-SENSYS Linux Support

for the LBP5100
LBP5100

Download the 1.80 Driver

[important disclaimer - through laziness I just used the root command, and just added sudo below - apologies if I get it wrong]

gunzip CAPTDRV180.tar.gz
tar xvf CAPTDRV180.tar

You will have a CANON_UK folder
sub folder Driver, Doc, Src

For 32bit users

cd CANON_UK/Driver/RPM

**sudo rpm -ivh *.rpm **

For 64bit users
**cd CANON_UK/Src

cp cndrvcups-capt-1.80-1.tar.gz /usr/src/packages/SOURCES
cp cndrvcups-common-1.80-1.tar.gz /usr/src/packages/SOURCES
gunzip cndrvcups-capt-1.80-1.tar.gz
tar xvf cndrvcups-capt-1.80-1.tar
gunzip cndrvcups-common-1.80-1.tar.gz
tar xvf cndrvcups-common-1.80-1.tar**

The next part, I can’t tell what you have on your system. So you may need to add bits until it compiles. Basically you need the C compilers. Various -devel packages. I think a list of these can be found in the canon docs. I added some via YAST->Software Management

cd cndrvcups-common-1.80
rpmbuild -bb cndrvcups-common.spec

assuming you have the required libs, you will find
** l /usr/src/packages/RPMS/x86_64
cndrvcups-common-1.80-1.x86_64.rpm**
**
sudo rpm -ivh /usr/src/packages/RPMS/x86_64/cndrvcups-common-1.80-1.x86_64.rpm**

cd …/cndrvcups-capt-1.80
rpmbuild --bb cndrvcups-capt.spec

once again
**l /usr/src/packages/RPMS/x86_64
cndrvcups-capt-1.80-1.x86_64.rpm
**
sudo rpm -ivh /usr/src/packages/RPMS/x86_64/cndrvcups-capt-1.80-1.x86_64.rpm

You now have the drivers installed.


Adding a printer

sudo /etc/init.d/ccpd restart

  • Goto CUPS printer management
  • Add printer
  • Give it a name, location, description. (Remember the name)
  • Next select the protocol.

If installed you should get a list of Canon Priter Daemon (yes spelled Priter) #1 to #8

  • select one of these
  • Select canon for manufacturer
  • Select Canon LBP5100 CAPT (UK) (en) for model. (Note the new ones have no dash LBP-Xxxx and are grouped below the LBP-Xxxx ones)
  • add printer

Some posts say you need to do this
where LBP5100 is the name given to the printer above

***sudo /usr/sbin/lpadmin -p LBP5100 -m CNCUPSLBP5100CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E


But I think you can skip that, however if you did chose the step above note that the fif0 part corresponds to the Canon Printer Daemon #1.

fifo0…fifo7 = Daemon #1 to #8

next

sudo /usr/sbin/ccpdadmin -p [name above] -o /dev/usb/lp0

e.g.
so if you named you printer LBP5100 then
sudo /usr/sbin/ccpdadmin -p LBP5100 -o /dev/usb/lp0

The /dev/usb/lp0 assumes you have only connected one usb printer to the system. You can check /var/log/messages to see which usb port is connected to the canon. Look for the canon printer being recognised. Suse adds it to the /dev/usblp0 device, which is linked to the /dev/usb/lp0.

sudo /etc/init.d/ccpd restart

ps ax | grep cap
you should see a capmon program with fifo0 to lp0 parameters

Try a test page, should work

==================================

Autostart

Now the following is new to me.
Previously on Suse all I had to do was create a symbolic link S99Name in the /etc/init.d/rc5.d directory to have a script startup on boot.

e.g. I would have done
cd /etc/init.d/rc5.d
ln -s …/ccpd S99ccpd
ln -s …/ccpd K99ccpd

Now I have been trying to do so, no luck. The only way I got it to run was to edit /etc/init.d/ccpd

and add a header (below) to the top of the file
I use nano, but use any editor you wish

sudo nano /etc/init.d/ccpd
or sudo gedit /etc/init.d/ccpd
or sudo kate /etc/init.d/ccpd

copy paste and add

**#! /bin/sh

Author :

/etc/init.d/ccpd

startup script for Canon Printer Daemon for CUPS (ccpd)

BEGIN INIT INFO

Provides: ccpd

Required-Start: $local_fs $remote_fs $syslog cupsd

Required-Stop:

Should-Start:

Should-Stop:

Default-Start: 3 5

Default-Stop: 1 6

Short-Description: ccpd printer daemon

Description: Start ccpd to provide spooling and printing files

functionality for local and remote printers. Even required if

printers are broadcasted (“Browsing”) into (sub)nets.

END INIT INFO

**

end of section

save the file

next have suse insert the service

cd /etc/init.d
sudo insserv -v ccpd

You should see a list of services. Scroll the list to check that ccpd was added and no errors.

That should be it, on a reboot you can check
ps ax | grep cap
you should see a capmon program with fifo0 to lp0 parameters

tremendous; you have laid it out very well for others to follow; not only have you given the howto for the 64bit, but you have added the howto for repeated use: should be very helpful for others; many thanks; you seem very knowledgable and hopefully will have the time to give advice to others on printers;

can I ask you one thing:

you say

You can check /var/log/messages to see which usb port is connected to the canon

on our system I get

Could not open the file /var/log/messages.You do not have permission to open this file

Would you advise a newbie to enter either

gnomesu gedit /var/log/messages

or

kdesu gedit /var/log/messages
?

:slight_smile: You caught me. I am someone that on the console, takes the shortcut and is on root.

Your comments above are spot on and apply to the editing of the /etc/init.d/ccpd file also.

sudo nano /var/log/messages
(use CTRL-W to search)

kdesu kate /var/log/messages
(use CTRL-F to search)

gnomesu gedit /var/log/messages
(use CTRL-F to search)

look for canon

example
Mar 11 22:14:26 linux-qusm kernel: usb 2-1: Product: Canon CAPT USB Device
Mar 11 22:14:26 linux-qusm kernel: usb 2-1: Manufacturer: Canon
Mar 11 22:14:26 linux-qusm kernel: usb 2-1: SerialNumber: 0000198ADCab
Mar 11 22:14:26 linux-qusm kernel: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04A9 pid 0x26A4
Mar 11 22:14:26 linux-qusm kernel: usbcore: registered new interface driver usblp

it is the usblp0 that tells you which port. In my experience it is likely to be usblp0 if you only have one usb printer attached at one time.


As an aside, I’ve been using linux for quite a few years now, and almost converted all of my own systems to non-windows (1 left). But the knowledge has been gained from various information on the net. I thought it’s about time I joined in too.

that’s great; excellent to have you on the forum; thanks very much; I have been intrigued by the LBP printers for a while; trying to help others on them; I saw a very good price on one, and as our printer is starting to fade, I am tempted to get one, and try to install; I may run it in tandem with an inkjet, so I am well seek your advice configuring it if I get into usb1 or other problems !!

thanks God, I found this tread, and it looks like it helps me…
but I successfully build cndrvcups-common
and start to build cndrvcups-capt

but i have error that i could not solve

gcc -O2 -Wall -fPIC -g -O2 -o pstocapt pstocapt.o paramlist.o -lbuftool -lcups -lcups
/usr/lib64/gcc/x86_64-suse-linux/4.4/…/…/…/…/x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libbuftool.a when searching for -lbuftool
/usr/lib64/gcc/x86_64-suse-linux/4.4/…/…/…/…/x86_64-suse-linux/bin/ld: cannot find -lbuftool
collect2: ld returned 1 exit status
make[3]: *** [pstocapt] Error 1
make[3]: Leaving directory /usr/src/packages/BUILD/cndrvcups-capt-1.80/pstocapt/filter' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory /usr/src/packages/BUILD/cndrvcups-capt-1.80/pstocapt’
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/packages/BUILD/cndrvcups-capt-1.80/pstocapt’
make: *** [all] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.tmOuZD (%build

So the question is
Wha package I need to make past dependancy “lbuftool”
what package contained it?

the last problem was
It was needed to install just compilled
cndrvcups-common-1.80-1.x86_64.rpm
before start building cndrvcups-capt

Eeeeeeeeeeeha !!!
finally it works :slight_smile:

sorry for triple posting, but it really works in x86-64 opensuse 11.2 RC2 :slight_smile:


uname -r
2.6.31.5-0.1-desktop

almost all the day, but the problem is SOLVED for me!!!
PS: thank you people!!!
special thanks to oldcraft for solution
and pdc_2

this package produced for 64-bit architecture
http://blog.itnotes.info/wp-content/uploads/2010/03/Canon_LBP-x86_64.tar

Hi Every one, thanks very much about “oldcraft” perfect explanation.
I produced 64 bit rpm packages for my OpenSUSE 11.2 and I used them about 6 month.
But in openSUSE 11.3 they are not working anymore !
I built packages again in the openSUSE 11.3 but I can’t register PPD file and I get error : **" Bad URI device : ccp " **
I was getting this error when CAPT drivers not installed correctly ( like installing i386 packages on x86_64 ). but I compiled and Installed Driver without any errors and I’m really confused !!
any suggestion for this problem ?!!

myproblem solved !
You need just to copy contents of /usr/lib64/cups to /usr/lib/cups . that’s all !!

Thanks to all the helpful input above, and from other sources, I’ve been able to get my Canon LBP6300dn printer working well as a network printer in OpenSuSE 11.3 64-bit.

In case it’s helpful to others, here’s the steps it took to achieve this:

First, install packages autoconf, automake, gcc, gcc-c++, libtool, glib2-devel, gtk2-devel, make, cups-devel, libxml2-devel.

Obtain driver rpms (capt and common) from Canon website, and download to some folder (say FooBar). Then:

cd FooBar
cp cndrvcups-capt-1.80-1.tar.gz [substitute actual name of driver tarball] /usr/src/packages/SOURCES 
cp cndrvcups-common-1.80-1.tar.gz /usr/src/packages/SOURCES
cd /usr/src/packages/SOURCES
tar -xzf cndrvcups-capt-1.80-1.tar.gz
tar -xzf cndrvcups-common-1.80-1.tar.gz
cd  cndrvcups-common-1.80-1
sudo rpmbuild -bb cndrvcups-common.spec [if this fails, you might need to install more packages]
cd /usr/src/packages/RPMS/x86_64
sudo rpm -ivh cndrvcups-common-2.00-2.x86_64.rpm
cd /usr/src/packages/SOURCES
cd  cndrvcups-capt-1.80-1
sudo rpmbuild -bb cndrvcups-capt.spec
cd /usr/src/packages/RPMS/x86_64
sudo rpm -ivh cndrvcups-capt-2.00-2.x86_64.rpm


Now the drivers are successfully installed. Continuing:

cd /etc/init.d
sudo chmod +x ccpd
sudo cp /usr/lib64/cups/filter/* /usr/lib/cups/filter/
sudo cp /usr/lib64/cups/backend/* /usr/lib/cups/backend/


Make sure printer is switched off. Then:

sudo /etc/init.d/cups restart
[next line up to -E is one long line]
sudo /usr/sbin/lpadmin -p LBP6300 -P /usr/share/cups/model/CNCUPSLBP6300CAPTK.ppd -v ccp://localhost:59687 -E
sudo /usr/sbin/ccpdadmin -p LBP6300 -o "net:192.168.0.215" [or whatever IP address is set for your printer]

Now open /etc/init.d/ccpd for editing (e.g. sudo nano /etc/init.d/ccpd). After the first 2 introductory lines, paste the lines beginning with # in post #6 of this forum. Save and exit.

cd /etc/init.d
(The following command might also insert ccpd* scripts, e.g. ccpd-old if you have one.  Maybe better to remove/hide them first.)  
sudo /sbin/insserv -v ccpd

Now reboot. You should be able to set up the printer correctly in the system manager (e.g. from Gnome menu: System - hardware - printing). If the test page works, you’re done.