My gratitudes to all people of free software community who studied how these drivers work and got a way to handle them. You can see the following as summary of their efforts from nearly last 10 years. This driver was a daunting thing for me.
Before going further let me share one line from my experience, "Do not buy any printers without checking whether it is supported by either Foomatic or Gutenprint".
Installing Canon CAPT printer driver for LBP2900 by scratch:
Download Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz distributed by Canon Inc.
Unpack it to get RMP packages for 64-bit. In it they are located at Linux_CAPT_PrinterDriver_V260_uk_EN/64-bit_Driver/RPM/.
cd into the directory where the 64-bit RPMs are.
Install the CAPT printer driver module:
Code: Select all
# rpm -ivh --nodeps cndrvcups-common-2.60-1.x86_64.rpm
# rpm -ivh --nodeps cndrvcups-capt-2.60-1.x86_64.rpm
Code: Select all
# ln -s /usr/lib64/cups/backend/ccp /usr/libexec/cups/backend/ccp
# ln -s /usr/lib64/cups/filter/pstocapt /usr/libexec/cups/filter/pstocapt
# ln -s /usr/lib64/cups/filter/pstocapt2 /usr/libexec/cups/filter/pstocapt2
# ln -s /usr/lib64/cups/filter/pstocapt3 /usr/libexec/cups/filter/pstocapt3
Code: Select all
$ ldd * | grep -i 'not found'
Along with I have also listed the Gentoo atoms which gives these libraries.
Let us install the missing dependencies:* 64 bits: captstatusui (Canon printer status monitor ui) requires this following library,
libpangox-1.0.so.0 -- x11-libs/pangox-compat
* 32 bits: (To be installed with abi_x86_32 use flag enabled.)
libpopt.so.0 -- dev-libs/popt
libxml2.so.2 -- dev-libs/libxml2
libz.so.1 -- sys-libs/zlib
Code: Select all
# emerge --ask x11-libs/pangox-compat
# echo "dev-libs/popt abi_x86_32" >>/etc/portage/package.use
# emerge --ask dev-libs/popt
# echo "dev-libs/libxml2 abi_x86_32" >>/etc/portage/package.use
# emerge --ask dev-libs/libxml2 ## <-- It also pulls sys-libs/zlib with abi_x86_32 use flag.
Starting CUPS:
Code: Select all
# /etc/init.d/cupsd start
Code: Select all
# mkdir /var/ccpd
# mkfifo /var/ccpd/fifo0
# chown lp:lp /var/ccpd/fifo0
# ls -l /var/ccpd/fifo0
# cat /etc/group | grep "lp" ## <-- Don't forget that the user should be in 'lp' group. If not add him.
# gpasswd -a root lp ## <-- Even you can add root to 'lp' group so that he can print.
Do not use ccp://localhost:59687 as the device URI as suggested by Canon CAPT installation guide. It will not work. Instead of it use the above created fifo in the following command. Use the appropriate ppd file name for your printer. They can be found in /usr/share/cups/model/.
Code: Select all
# /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
It can be obtained by connecting the printer to your computer and issuing,
Code: Select all
# ls /dev/usb
hiddev0 lp1
Now register the printer in the ccpd daemon setup file:
Code: Select all
# /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp1
Code: Select all
# ccpdadmin
Usage:
ccpdadmin [-p Printer-name -o Printer-dev-path]
ccpdadmin [-x Remove-Printer-name]
CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 59787
Entry Num : Spooler : Backend : FIFO path : Device Path : Status
----------------------------------------------------------------------------
[0] : LBP2900 : ccp : /var/ccpd/fifo0 : /dev/usb/lp1 :
Code: Select all
# /etc/init.d/ccpd start
Death is so terribly final, but Gentoo is full of possibilities.



