I installed a Canon LBP2900B printer and discovered that the drivers are not included in Fedora. It was easy to get them from
http://support-asia.canon-asia.com/contents/ASIA/EN/0900772407.html.
The printer worked but after a reboot, the printer did not seem to work. CUPS insisted on creating an additional LBP2900-2 printer for device usb://Canon/LBP2900, while the correct LBP2900 was on device ccp://localhost:59687.
Ignoring all the false steps, the problem would be overcome by stopping the ccpd server and restarting it.
It took a number of reboots and installing it on Ubuntu 11.04 as well to identify that while the additional entry for the same printer by CUPS was confusing, it was harmless.
The real problem was that /etc/init.d/ccpd service should have two processes. On Fedora 15, it was having only one. However, when I stopped the service and restarted it, it would start correctly with two processes:
$ sudo systemctl status ccpd.service
ccpd.service - LSB: Start Canon Printer Daemon for CUPS
Loaded: loaded (/etc/rc.d/init.d/ccpd)
Active: active (running) since Fri, 03 Jun 2011 09:56:52 +0530; 11min ago
Process: 5681 ExecStop=/etc/rc.d/init.d/ccpd stop (code=exited, status=0/SUCCESS)
Process: 5693 ExecStart=/etc/rc.d/init.d/ccpd start (code=exited, status=0/SUCCESS)
Main PID: 5698 (ccpd)
CGroup: name=systemd:/system/ccpd.service
├ 5698 /usr/sbin/ccpd
├ 5702 /usr/sbin/ccpd
└ 5703 captmon2 --data-write-fd=8 --data-read-fd=12 --cmd...
The issue appears to be somehow related to systemd starting services in parallel. The ccpd server probably expects some service to be running which has not yet started.