Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I had previously created this question + answer, but that would not work for me after a while.

I am looking for an alternative.

share|improve this question

2 Answers 2

up vote 0 down vote accepted

As eOS Luna is based on Ubuntu 12.04 LTS, I have followed the method presented here (most below is just a translation from French).

So, download 2.6 driver from here and install the deb files.

Then, run these commands:

sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp://localhost:59787 -E

sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0

sudo service ccpd start

sudo service ccpd status

You should get two numbers.


If you do not get two numbers:

-edit with administrative rights /etc/ccpd.conf

(gedit text editor in this case)

sudo gedit /etc/ccpd.conf

and add this:

<Printer LBP1120>

DevicePath / dev/usb/lp0

</ Printer>

Then restart the daemon and check the status:

sudo service ccpd restart

sudo service ccpd status

restart and try again


Finally set the system so that the demon ccpd starts correctly when turning on the printer; this requires two conditions: that the ccpd is started or restarted at each operation of the printer, and that the CUPS service is active when starting ccpd.

Start or restart ccpd with the printer; this can be automated using udev:

Open or create with administrative rights the file: /etc/udev/rules.d/85-canon-capt.rules

sudo gedit /etc/udev/rules.d/85-canon-capt.rules

and add these lines:

KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="04a9", RUN+="/etc/init.d/ccpd start"

KERNEL=="lp*", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/etc/init.d/ccpd stop"

Finish by saving the file.

UDEV automatically detect this new rule, it is not necessary to restart.


If you used the automated installation using a BASH script (or you had already automated at startup as indicated in my askubuntu answer linked above), the ccpd daemon will not take into account the two above conditions, it is simply launched every time with the PC.

It is therefore necessary to cancel this systematic action so that it would not interfere with the new udev rule.

Type the following command in a terminal:

sudo update-rc.d-f remove ccpd


Automatic detection of printers defined in the file system /lib/udev/rules.d/70-printers.rules may come against the udev rule you just created.

Open with administrative rights the file: /lib/udev/rules.d/70-printers.rules

sudo gedit /lib/udev/rules.d/70-printers.rules

and comment all lines:

# Low-level USB device add trigger
#ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="07", ATTR{bInterfaceSubClass}=="01", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p"
# usblp device add trigger (needed when usblp is already loaded)
#ACTION=="add", KERNEL=="lp*", TAG+="udev-configure-printer", RUN+="udev-configure-printer add %p"

# Low-level USB device remove trigger
#ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"

If the ccpd daemon is running before CUPS at the first print request it will be stuck with no error message. It will may then take 100 % of the CPU and may need to be stopped by "kill -9" or by going to console - ctrl-alt-f1 - and force logout: after user name and password: pkill -KILL -u *username*.

This situation can occur if the printer is on and connected before the PC is started (the sequence of Ubuntu boot UDEV starts before CUPS. So UDEV rule we just created will detect the printer and launch ccpd before CUPS) or in the case of an update of CUPS : the service is stopped and then restarted while ccpd remains active.

To overcome these specific problems you need to generate an Upstart job, in addition to the UDEV rule created earlier. It will restart ccpd to ensure correct operation when the printer is detected on the USB bus.

Create with administrative rights the file: /etc/init/ccpd-restart.conf

sudo gedit /etc/init/ccpd-restart.conf

and insert this:

# ccpd-restart - Relance ccpd si l'imprimante est allumée avant le PC.

description    "restart daemon ccpd for Canon printer LBP-serie"

start on started cups
stop on runlevel [016]

script
    if [ -e /dev/usb/lp* ]; then
                /etc/init.d/ccpd stop
        sleep 5
        /etc/init.d/ccpd start
    fi
end script

Save and close.

Restart computer.


Solutions to problems:

If just 2 numbers after service ccpd status - restart cups: sudo service ccpd restart. Possibly logout or restart.

If the 2 numbers are there but it will not print (the print job is in the print queue):

  • check under Printing, right click the printer and 'View print queue', select the job, right click and click 'Release' if active
  • run captstatusui -P LBP1120 and check 'Resume job' if active
  • restart the printer from its power button
  • possibly restart the computer – try with printer connected and then disconnected.
share|improve this answer

In the following link, I found an interesting solution for a problem in print:

It is useful for me:

lsmod | grep usblp
sudo modprobe usblp
ls -l /dev/usb/lp0
sudo /etc/init.d/ccpd restart

I hope that is useful for something else.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.