
Step 1:
Go to the following web page and download the Canon LBP 2900 Driver.tar.gz:
http://software.canon-europe.com/products/0010177.asp
Step 2:
Extract Driver.tar.gz either by right-clicking on the file and selecting “Extract Here”, or in the Terminal in the directory you downloaded it into and entering the following command:
$ tar -xvf Driver.tar.gz
This should create a new directory called Driver which contains two files: cndrvcups-capt-1.30-1.i386.rpm and cndrvcups-common-1.30-1.i386.rpm.
Note that the latest version of the drivers contain .deb packages, which you can use instead of the above procedure to convert RPMs. These rpms need to be converted into debs so that we can install them, and to do that we need to install alien. You can do that with Synaptic (System > Administration > Synaptic) or in the Terminal:
$ sudo aptitude install alien
Then, you convert the files using alien in the Terminal:
$ sudo alien -c cndrvcups-capt-1.30-1.i386.rpm
$ sudo alien -c cndrvcups-common-1.30-1.i386.rpm
Install the debs you have just created by double clicking on the files or using the Terminal:
$ sudo dpkg -i cndrvcups-common_1.30-2_i386.deb cndrvcups-capt_1.30-2_i386.deb
Step 3:
In order to load the new drivers we have installed we need to stop and restart CUPS. Firstly we stop CUPS:
$ sudo /etc/init.d/cupsys stop
Note: if youre using ubuntu 8.10 & dont have this file in this path, just run:
$ sudo /etc/init.d/cups stop
Check that it is stopped. All the times I have done this, CUPS had stopped first time but apparently this may not always be the case due to the installation of ccp:
$ sudo ps ax | grep cupsd
Which will give you something like this:
cupsys 24897 0.0 0.1 4336 1976 ? SNs 07:35 0:04 /usr/sbin/cupsd
username 24738 0.0 0.0 2896 836 pts/0 S+ 21:21 0:00 grep cupsd
If you only get a line that ends with “grep cupsd” CUPS has stopped and you can carry on. If you also get a line that ends with “/usr/sbin/cupsd”, as shown above, CUPS has not stopped and you will have to try the following method to stop it:
$ sudo killall -9 cupsd
The aliened debs are not perfect so we have to do some of their the work for them. Create two directories:
$ sudo mkdir /var/ccpd
$ sudo mkdir /var/captmon
And a fifo:
$ sudo mkfifo /var/ccpd/fifo0
Make fifo0 accessable to everyone:
$ sudo chmod 777 /var/ccpd/fifo0
In Ubuntu Edgy and Feisty, change the owner of fifo0 into root (failing to do so gives you an error: Unable to copy PPD file in step 4):
$ sudo chown root /var/ccpd/fifo0
You may need to make the permissions of the /usr/share/cups/model
directory more permissive.
$ sudo chmod -R a+rX /usr/share/cups/model
Once you have done this, start CUPS again:
$ sudo /etc/init.d/cupsys start
Step 4:
Register the printer driver with the print spooler with the following command, replacing [printer model] with your printer model and [printer driver file] with your driver file:
$ sudo /usr/sbin/lpadmin -p [printer model] -m [printer driver file] -v ccp:/var/ccpd/fifo0 -E
For example, the command for the Canon LBP 2900 would be:
$ sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E
Note: If you get the error lpadmin: Unable to copy PPD file!, try substituting -P for -m above.
If you are unsure of what your driver file is called you can get a list of the available drivers:
$ ls /usr/share/cups/model/ | grep CNCUPS
Look for the one that matches your model number. Some of them end with “K.ppd” and some end with “J.ppd”. I have no idea what difference is, the K ones have worked fine for me so far.
Added 2007-12-09: under Ubuntu 7.10, the K ones constantly use about 75% CPU, while the J ones don’t. I did not find any problems with the J file so far.
Ubuntu Edgy and Feisty are searching the driver in /usr/share/ppd/ so I created a link:
$ cd /usr/share/ppd/
$ sudo ln -s /usr/share/cups/model/CNCUPSLBP2900CAPTK.ppd
Once registered your printer should appear in the System > Administration > Printing dialog. For 8.10 users: first be sure to delete old printer which was “installed” before the driver installation.
Register the Canon LBP 2900 printer with ccpd daemon, once again replace [printer model] with your printer model:
$ sudo /usr/sbin/ccpdadmin -p [printer model] -o /dev/usb/lp0
For example, the command for the Canon LBP 2900 would be:
$ sudo /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0
Step 5:
Replace /etc/init.d/ccpd with the script below (originally taken from http://rdoursenaud.free.fr/debian/capt.html):
#
# ccpd startup script for Canon Printer Daemon for CUPS
#
# Modified for Debian GNU/Linux
# by Raphael Doursenaud <rdoursenaud@free.fr>
# and Markovtsev Vadim <markhor@mail.ru>
DAEMON=/usr/sbin/ccpd
LOCKFILE=/var/lock/subsys/ccpd
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=ccpd
DESC=”Canon Printer Daemon for CUPS”
test -f $DAEMON || exit 0
. /lib/lsb/init-functions
case $1 in
start)
log_begin_msg “Starting $DESC: $NAME”
start-stop-daemon –start –quiet –exec $DAEMON
log_end_msg $?
;;
stop)
log_begin_msg “Stopping $DESC: $NAME”
start-stop-daemon –stop –quiet –oknodo –exec $DAEMON
log_end_msg $?
;;
status)
echo “$DESC: $NAME:” `pidof $NAME`
;;
restart)
log_begin_msg “Restarting $DESC: $NAME”
start-stop-daemon –stop –quiet –oknodo –exec $DAEMON
sleep 1
start-stop-daemon –start –quiet –exec $DAEMON
log_end_msg $?
;;
*)
echo “Usage: ccpd {start|stop|restart|status}”
exit 1
;;
esac
exit 0
Copy and paste the above script into a new text file, then backup and replace the old version:
$ sudo mv /etc/init.d/ccpd ccpdold
$ sudo cp [text file you created] /etc/init.d/ccpd
Give everyone execution rights to the new file:
$ sudo chmod a+x /etc/init.d/ccpd
Step 6:
Start the ccpd daemon of Canon LBP 2900 Printer:
$ sudo /etc/init.d/ccpd start
Step 7:
Set ccpd to start when you startup your computer (must be greater than CUPS runlevel):
$ sudo update-rc.d ccpd defaults 60
Step 8:
Switch off the printer and reboot your computer. Once you have logged in, switch on the printer again.
Step 9:
Test your installation of Canon LBP 2900 Printer.
First test:
$ sudo ccpdadmin
Which should output this:
Usage:
ccpdadmin [-p Printer-name -o Printer-dev-path]
ccpdadmin [-x Remove-Printer-name]
CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 39787
Entry Num : Spooler : Backend : FIFO path : Device Path : Status
—————————————————————————-
[0] : LBP2900 : ccp : /var/ccpd/fifo0 : /dev/usblp0 :
Second test, replace [printer model] with your printer model
$ captstatusui -P [printer model]
For example, the command for the Canon LBP 2900 would be:
$ captstatusui -P LBP2900
This will launch a window that after a bit should say “ready to print”.
Finally open a file and try to print it from Canon LBP 2900 Printer.
Visit the blog for HP 1020 Printer installation In Ubuntu
Pingback: How to Manually Install HP 1020 Printer on Ubuntu - henyhely.in